"深入理解大数据之flink教程-TableAPI和SQL学习指南"

需积分: 15 10 下载量 159 浏览量 更新于2023-12-22 1 收藏 483KB DOCX 举报
The document "大数据之flink教程-TableAPI和SQL.docx" provides a comprehensive overview of Table API and Flink SQL, which are high-level processing APIs for batch and stream unified processing in Apache Flink. The Table API is an embedded query API in Java and Scala that allows users to intuitively combine relational operations such as select, filter, and join. On the other hand, Flink SQL allows users to write SQL directly into code to perform queries. Both Table API and Flink SQL have the same semantics and produce the same results, regardless of whether the input is in batch or stream format. As of now, the functionality of Table API and SQL is still under active development and is not yet fully mature. These APIs require two main dependencies for implementation: planner and bridge. The Apache Calcite, an open-source SQL parsing tool, is used as the basis for Flink's SQL support. Overall, Table API and Flink SQL provide a user-friendly and efficient way to perform queries and operations on data in Apache Flink, and are key components in leveraging the batch and stream unified processing capabilities of the framework. This document serves as a valuable resource for those looking to understand and utilize these APIs in their big data processing workflows.
2020-07-27 上传
第一章 整体介绍 2 1.1 什么是 Table API 和 Flink SQL 2 1.2 需要引入的依赖 2 1.3 两种 planner(old & blink)的区别 4 第二章 API 调用 5 2.1 基本程序结构 5 2.2 创建表环境 5 2.3 在 Catalog 中注册表 7 2.3.1 表(Table)的概念 7 2.3.2 连接到文件系统(Csv 格式) 7 2.3.3 连接到 Kafka 8 2.4 表的查询 9 2.4.1 Table API 的调用 9 2.4.2 SQL 查询 10 2.5 将 DataStream 转换成表 11 2.5.1 代码表达 11 2.5.2 数据类型与 Table schema 的对应 12 2.6. 创建临时视图(Temporary View) 12 2.7. 输出表 14 2.7.1 输出到文件 14 2.7.2 更新模式(Update Mode) 15 2.7.3 输出到 Kafka 16 2.7.4 输出到 ElasticSearch 16 2.7.5 输出到 MySql 17 2.8 将表转换成 DataStream 18 2.9 Query 的解释和执行 20 1. 优化查询计划 20 2. 解释成 DataStream 或者 DataSet 程序 20 第三章 流处理中的特殊概念 20 3.1 流处理和关系代数(表,及 SQL)的区别 21 3.2 动态表(Dynamic Tables) 21 3.3 流式持续查询的过程 21 3.3.1 将流转换成表(Table) 22 3.3.2 持续查询(Continuous Query) 23 3.3.3 将动态表转换成流 23 3.4 时间特性 25 3.4.1 处理时间(Processing Time) 25 3.4.2 事件时间(Event Time) 27 第四章 窗口(Windows) 30 4.1 分组窗口(Group Windows) 30 4.1.1 滚动窗口 31 4.1.2 滑动窗口 32 4.1.3 会话窗口 32 4.2 Over Windows 33 1) 无界的 over window 33 2) 有界的 over window 34 4.3 SQL 中窗口的定义 34 4.3.1 Group Windows 34 4.3.2 Over Windows 35 4.4 代码练习(以分组滚动窗口为例) 36 第五章 函数(Functions) 38 5.1 系统内置函数 38 5.2 UDF 40 5.2.1 注册用户自定义函数 UDF 40 5.2.2 标量函数(Scalar Functions) 40 5.2.3 表函数(Table Functions) 42 5.2.4 聚合函数(Aggregate Functions) 45 5.2.5 表聚合函数(Table Aggregate Functions) 47