- Apache Flink 教程
- Apache Flink - 主页
- Apache Flink - 大数据平台
- 批处理对比实时处理
- Apache Flink - 介绍
- Apache Flink - 架构
- Apache Flink - 系统要求
- Apache Flink - 设置/安装
- Apache Flink - API 概念
- Apache Flink - 表格 API 和 SQL
- 创建一个 Flink 应用程序
- Apache Flink - 运行一个 Flink 程序
- Apache Flink - 库
- Apache Flink - 机器学习
- Apache Flink - 使用案例
- Apache Flink - Flink 对比 Spark 对比 Hadoop
- Apache Flink - 结论
- Apache Flink 资源
- Apache Flink - 快速指南
- Apache Flink - 有用资源
- Apache Flink - 讨论
Apache Flink - 表格 API 和 SQL
表格 API 是一个关系型 API,具有类似 SQL 的表达式语言。此 API 可以同时进行批处理和流处理。它可以嵌入 Java 和 Scala Dataset 和 Datastream API 中。您可以从现有的 Dataset 和 Datastream 或外部数据源创建表。通过此关系型 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()
广告