Apache Flink features two relational APIs - the Table API and SQL - for unified stream and batch processing. The Table API is a language-integrated query API for Java, Scala, and Python that allows the composition of queries from relational operators such as selection, filter, and join in a very intuitive way.
This documentation is intended for contributors of the table modules, and not for users. If you want to use Table API & SQL, check out the documentation.
flink-table-common:Schemaflink-table-api-java:org.apache.flink.table.delegation, which serves as entrypoint for all planner capabilitiesflink-table-api-scala: Scala APIs for Table API and SQLflink-table-api-bridge-base: Base classes for APIs to bridge between Table API and DataStream APIflink-table-api-java-bridge:flink-table-api-scala-bridge: Scala APIs to bridge between Table API and DataStream APIflink-table-api-java-uber:flink-table-common and all the Java API modules, including the bridging to DataStream API and 3rd party dependencies.flink-table-calcite-brdge: Calcite dependencies for writing planner plugins (e.g. SQL dialects) that interact with Calcite APIflink-table-code-splitter: Tool to split generated Java code so that each method does not exceed the limit of 64KB.flink-table-runtime:flink-table-code-splitter, including 3rd party dependenciesflink-sql-parser: Default ANSI SQL parser implementationflink-table-planner:flink-table-planner-loader-bundle Bundles flink-table-planner, including Scala dependencies.flink-table-planner-loader: Loader for flink-table-planner that loads the planner and it's Scala dependencies in a separate classpath using flink-table-planner-loader-bundle, isolating the Scala version used to compile the planner.flink-sql-client: CLI tool to submit queries to a Flink clusterflink-table-test-utils: Brings in transitively all the dependencies you need to execute Table pipelines and provides some test utilities such as assertions, mocks and test harnesses.No module except flink-table-planner should depend on flink-table-runtime in production classpath, no module except flink-table-planner-loader should depend on flink-table-planner-loader-bundle in production classpath, and similarly no module should depend on flink-table-planner or flink-table-planner-loader in production classpath. For testing, you should depend on flink-table-planner-loader and flink-table-runtime. These are already shipped by the Flink distribution.