Flink SQL

Flink SQL을 사용하면 표준 SQL로 스트리밍 및 배치 애플리케이션을 개발할 수 있습니다. Flink의 SQL 지원은 SQL 표준을 구현한 Apache Calcite를 기반으로 합니다. 질의는 입력이 연속(스트리밍)이든 유계(배치)이든 동일한 의미론(semantics)을 갖고 동일한 결과를 생성합니다.

출처: 문서

본문

Flink SQL은 Table API 및 Flink의 DataStream API와 매끄럽게 통합됩니다. 모든 API와 그 위에 구축된 라이브러리 사이를 쉽게 전환할 수 있습니다. 예를 들어 MATCH_RECOGNIZE clause를 사용해 테이블에서 패턴을 감지한 뒤, 일치한 패턴을 기반으로 알림(alerting)을 구축하기 위해 DataStream API를 사용할 수 있습니다.

사용 사례에 따라 Flink SQL은 여러 인터페이스를 통해 사용할 수 있습니다:

Interface Description Use Case
SQL Client 대화형 커맨드라인 인터페이스 임시(ad-hoc) 질의, 개발, 디버깅
SQL Gateway REST 및 HiveServer2 엔드포인트 원격 SQL 제출, BI 도구 통합
JDBC Driver 표준 JDBC 연결 애플리케이션 통합, BI 도구 연결
Table API 프로그래밍 방식 SQL 실행 Java/Scala/Python 애플리케이션에 내장 SQL

핵심 개념 (Key Concepts)

Flink SQL은 유계(배치)와 무계(스트리밍) 데이터를 모두 나타내는 동적 테이블(dynamic tables) 개념 위에 구축됩니다. 동적 테이블에 대한 SQL 질의는 새 데이터가 도착함에 따라 계속해서 갱신되는 결과를 생성합니다.

Flink SQL이 스트리밍 데이터를 처리하는 방법을 더 깊이 이해하려면 다음을 참고하세요:

다음으로 갈 곳 (Where to Go Next)

  • SQL Client: 프로그래밍 없이 SQL 질의를 실행하는 대화형 CLI.
  • SQL Reference: 완전한 SQL 문법 참조(DDL, DML, 질의).
  • Built-in Functions: 데이터 변환에 사용 가능한 SQL 함수.
  • SQL Gateway: 원격 SQL 접근을 위한 REST 및 HiveServer2 서비스.
  • JDBC Driver: JDBC 호환 도구에서 Flink SQL에 연결.
  • Catalogs: 데이터베이스, 테이블, 함수의 메타데이터 관리.
  • Hive Compatibility: Apache Hive metastore 및 문법과의 통합.
  • Materialized Tables: 증분 유지되는 질의 결과.
  • Connect to External Systems: 데이터 읽기/쓰기에 사용 가능한 커넥터와 포맷.
  • Data Types: 사전 정의된 데이터 타입과 그 속성.
  • Time Zone: 시간대가 타임스탬프 처리에 미치는 영향.
  • Table API: 관계형 연산을 위한 프로그래밍 API.
  • OLAP Quickstart: 고처리량 SQL 질의를 위한 Flink OLAP 서비스 설정.

더 알아보기 (Learn more)