Apache Flink - Tablo API ve SQL

Tablo API, SQL benzeri ifade diline sahip ilişkisel bir API'dir. Bu API hem toplu hem de akış işlemeyi yapabilir. Java ve Scala Veri Kümesi ve Veri Akışı API'leri ile gömülebilir. Mevcut Veri Kümeleri ve Veri Akışlarından veya harici veri kaynaklarından tablolar oluşturabilirsiniz. Bu ilişkisel API aracılığıyla birleştirme, toplama, seçme ve filtreleme gibi işlemleri gerçekleştirebilirsiniz. Giriş ister toplu iş ister akış olsun, sorgunun anlam bilgisi aynı kalır.

İşte örnek bir Tablo API programı -

// 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()