大数据之flink教程-TableAPI和SQL-Java版.pdfVIP

大数据之flink教程-TableAPI和SQL-Java版.pdf

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Table API 和 Flink SQL 第一章 整体介绍 1.1 什么是 Table API 和 Flink SQL Flink 本身是批流统一的处理框架,所以Table API 和SQL,就是批流统一的上层处理API 。 目前功能尚未完善,处于活跃的开发阶段。 Table API 是一套内嵌在Java 和Scala 语言中的查询API ,它允许我们以非常直观的方式, 组合来自一些关系运算符的查询(比如select、filter 和join )。而对于Flink SQL,就是直接可 以在代码中写SQL,来实现一些查询(Query )操作。Flink 的SQL 支持,基于实现了SQL 标 准的Apache Calcite (Apache 开源SQL 解析工具)。 无论输入是批输入还是流式输入,在这两套API 中,指定的查询都具有相同的语义,得 到相同的结果。 1.2 需要引入的依赖 Table API 和SQL 需要引入的依赖有两个:planner 和bridge。 <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-planner_2.12</artifactId> <version>1.10.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-api-java-bridge_2.12</artifactId> <version>1.10.1</version> </dependency> flink-table-planner:planner 计划器,是table API 最主要的部分,提供了运行时环境和生 成程序执行计划的planner; flink-table-api-java-bridge:bridge 桥接器,主要负责table API 和 DataStream/DataSet API 的连接支持,按照语言分java 和scala 。 这里的两个依赖,是 IDE 环境下运行需要添加的;如果是生产环境,lib 目录下默认已 经有了planner,就只需要有bridge 就可以了。 当然,如果想使用用户自定义函数,或是跟kafka 做连接,需要有一个SQL client,这个 包含在flink-table-common 里。 1.3 两种planner (old & blink )的区别 1. 批流统一:Blink 将批处理作业,视为流式处理的特殊情况。所以,blink 不支持表和 DataSet 之间的转换,批处理作业将不转换为 DataSet 应用程序,而是跟流处理一样,转换 为DataStream 程序来处理。 2. 因为批流统一,Blink planner 也不支持 BatchTableSource ,而使用有界的 StreamTableSource 代替。 3. Blink planner 只支持全新的目录,不支持已弃用的ExternalCatalog。 4. 旧planner 和 Blink planner 的FilterableTableSource 实现不兼容。旧的 planner 会把 PlannerExpressions 下推到filterableTableSource 中,而blink planner 则会把Expressions 下推。 5. 基于字符串的键值配置选项仅适用于Blink planner。 6. PlannerConfig 在两个planner 中的实现不同。 7. Blink planner 会将多个sink 优化在一个DAG 中(仅在TableEnvironment 上受支持,而 在StreamTableEnvironment 上不受支持)。而旧planner 的优化总是将每一个sink 放在一个新 的DAG 中,其中所有DAG 彼此独立。 8. 旧的planner 不支持目录统计,而Blink planner 支持。 第二章 API 调用 2.1 基本程序结构 Table API 和 SQL

文档评论(0)

朱宇强 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档

相关课程推荐