前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FlinkSql源码调试环境&flink-table代码结构

FlinkSql源码调试环境&flink-table代码结构

作者头像
数据仓库践行者
发布2022-11-25 19:58:50
9360
发布2022-11-25 19:58:50
举报

这篇搭一下flink1.15的源码环境,看一下flink-table代码的结构,后面每周看一些代码,把flinksql玩好。

基础环境准备

安装IDE、jdk(1.8) 、maven(3.8.4)、IDE安装scala插件、IDE配制maven

这些都是之前装sparksql环境时已经装好的,可以直接用

flink源码导入IDE

git地址:https://github.com/apache/flink.git

切branch1.15

拉下来的是master的代码,我习惯看某个具体版本的源码,方便按版本定位问题,所以,需要切一下branch

编译源码

在刚拉好的源码包下执行:

mvn clean install -DskipTests

为项目配制一下jdk

运行测试类

经过上面的一波操作之后,环境就准备好了,接下来跑测试类试一把,如果没报错就算是ok了。

跑一下flink-sql-parser下的测试类,测试没有问题。

flink-table的代码结构

Common

flink-table-common:

这个包中主要是包含 Flink Planner和 Blink Planner一些共用的代码,比如:类型系统定义、UDF堆栈和内置函数定义、内部数据定义、catalogs, formats, connectors 的扩展点等等。

API

flink-table-api-java:

这部分是用户编程使用的 API,包含Table API and SQL 的Java API,是所有planner功能的入口点,比如TableEnvironmentImpl类。

flink-table-api-scala:

Table API and SQL 的Scala API。

flink-table-api-bridge-base:

bridge 桥接器,用于在Table API and DataStream API 之间连接的API的基类。

flink-table-api-java-bridge:

bridge 桥接器,用于在Table API and DataStream API 之间连接的Java API。

flink-table-api-scala-bridge:

bridge 桥接器,用于在Table API and DataStream API 之间连接的scala API。

flink-table-api-java-uber:

绑定flink-table-common和所有Java API模块,包括到数据流API和第三方依赖的桥接,该模块由flink dist使用,而不是直接由用户使用。

Runtime

flink-table-code-splitter:

用于拆分生成的Java代码的工具,以便每个方法不超过64KB的限制。

flink-table-runtime:

运行时核心代码,包含运算符实现、内置函数实现、类型系统实现,读写器、转换器等。

Parser and planner

flink-sql-parser:

默认ANSI sql解析器实现。

flink-sql-parser-hive:

hivesql方言解析器实现。

flink-table-planner:

planner 计划器,是 table API 最主要的部分,提供了运行时环境和生成程序执行计划的 planner,包含AST与语义树、SQL validator 、planner、优化器和规则实现、代码生成器等。

flink-table-planner-loader-bundle:

flink-table-planner的捆绑包。

flink-table-planner-loader:

flink-table-plannerr的加载器。

SQL client

flink-sql-client:

将查询提交到Flink群集的CLI工具。

Testing

flink-table-test-utils:

测试包,提供一些测试实用工具。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-24,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 数据仓库践行者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com