Apache-flink-table-api-sql

提供:Dev Guides
移動先:案内検索

Apache Flink-テーブルAPIとSQL

テーブルAPIは、式言語のようなSQLを備えたリレーショナルAPIです。 このAPIは、バッチ処理とストリーム処理の両方を実行できます。 JavaおよびScala DatasetおよびDatastream APIで埋め込むことができます。 既存のデータセットとデータストリームまたは外部データソースからテーブルを作成できます。 このリレーショナルAPIを使用して、結合、集約、選択、フィルタリングなどの操作を実行できます。 入力がバッチであろうとストリームであろうと、クエリのセマンティクスは変わりません。

ここにサンプルのテーブルAPIプログラムがあります-

//for batch programs use ExecutionEnvironment instead of StreamExecutionEnvironment
val env = StreamExecutionEnvironment.getExecutionEnvironment

//create a TableEnvironment
val tableEnv = TableEnvironment.getTableEnvironment(env)

//register a Table
tableEnv.registerTable("table1", ...)//or
tableEnv.registerTableSource("table2", ...)//or
tableEnv.registerExternalCatalog("extCat", ...)

//register an output Table
tableEnv.registerTableSink("outputTable", ...);
//create a Table from a Table API query
val tapiResult = tableEnv.scan("table1").select(...)
//Create a Table from a SQL query
val sqlResult = tableEnv.sqlQuery("SELECT ... FROM table2 ...")

//emit a Table API result Table to a TableSink, same for SQL result
tapiResult.insertInto("outputTable")

//execute
env.execute()