Flink Table API & SQL 이란?
Flink에서 고수준 추상화 계층임.
DataStream API로도 다 할 수 있지만, 실무에선 대부분 Table API/SQL로 먼저 풀어보고, 안 되면 DataStream으로 내려가는 흐름이 일반적임.
정리
- “데이터베이스처럼 SQL로 스트림과 배치를 처리할 수 있게 해주는 레이어”
- 배치와 스트림을 같은 Table/SQL 모델로 다룸
- 내부적으로는 결국 DataStream으로 컴파일돼서 실행됨
Spark Structured Streaming이 있는 것처럼, Flink에선 Table API/SQL이 그 역할을 담당한다고 보면 됨.
핵심 구성 요소
TableEnvironment
Flink에서 Table/SQL을 다루는 엔트리 포인트임.
- Table 생성, DDL 실행, SQL 쿼리 실행 담당
- Connector를 DDL로 선언하고, Catalog/Database/Table을 관리
- 최종적으로 JobGraph를 만들어서 Flink 클러스터에 제출
보통 이런 흐름으로 씀:
- EnvironmentSettings 생성 (batch/stream 모드 지정)
- TableEnvironment.create(...) 호출
- tableEnv.executeSql("CREATE TABLE ...")