- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
如何给 Apache SeaTunnel 贡献自定义插件 - 金嘉怡
演讲主题:如何给 Apache SeaTunnel 贡献自定义插件
演讲概要:介绍如何从0到1地给 Apache SeaTunnel 贡献自定义插件,包括环境构建,代码编写,提交和 Review 等。
展开查看详情
1 .如何给 Apache SeaTunnel 贡献自定义插件 金嘉怡 2022-03-12
2 .关于我 About me 核心提交者 & 项目管理委员会成员 Committer & PMC 极客时间讲师 Geek Time Lecturer 个人博客:宇宙湾 Personal Blog: yuzhouwan.com
3 . 01 基本概念 02 主体流程 03 快速上手 CONTENT 04 插件自定义 05 功能验证 06 代码贡献 07 总结
4 .01 基本概念 Basic concept
5 .基本概念 Basic concept 海量数据同步和转换的数据集成平台 流式计算引擎 OLAP 引擎
6 .02 主体流程 Main process
7 .主体流程 Main process 普通用户启动主体流程 研发人员启动主体流程
8 .03 快速上手 Quick start
9 .快速上手 Quick start 01 克隆:完成代码克隆 02 编译:完成代码编译 03 执行:运行 LocalFlinkExample 检验环境 OK 04 流程:了解大致的运作流程 05 配置:通过 fake_to_console.conf 熟悉 HOCON 配置风格
10 .04 插件自定义 Plugin customization
11 .插件自定义 Plugin customization 01 数据源:确定数据源种类 02 计算引擎:确定 Spark 还是 Flink 类型的插件 03 插件类型:确定 Sink 还是 Source 类型的插件 04 子模块:在 seatunnel-connectors 模块中创建子模块 05 接口实现:实现 FlinkBatchSink 和 FlinkStreamSink 等接口
12 .插件自定义 Plugin customization 06 配置项:确定插件所需要的配置项(配置名称、数据类型、是否必须填写等) 07 类型映射:维护数据源中类型和 BasicTypeInfo 类型之间的映射 08 关闭流:确保在 close 方法中及时关闭打开的 Stream 流 09 SPI:将新插件的全限定名记录到 META-INF/services 中 10 文档:在 docs 目录中,创建插件对应的使用文档
13 .05 功能验证 Functional verification
14 .功能验证 Functional verification 01 启动 Druid:下载代码,Docker 启动 git clone --depth 1 --single-branch --branch master https://github.com/apache/druid.git cd druid docker-compose -f distribution/docker/docker-compose.yml up
15 .功能验证 Functional verification 02 修改配置:编辑 HOCON 文件 source { FakeSourceStream { result_table_name = "fake" field_name = "name,age" vim config/application.conf } } transform { } sink { DruidSink { coordinator_url = "http://localhost:8081/" datasource = ”yuzhouwan" } }
16 .功能验证 Functional verification 02 修改配置:编辑 HOCON 文件 source { FakeSourceStream { result_table_name = "fake" field_name = "name,age" vim config/application.conf } } transform { } sink { DruidSink { coordinator_url = "http://localhost:8081/" datasource = ”yuzhouwan" } }
17 .功能验证 Functional verification 02 修改配置:编辑 HOCON 文件 source { FakeSourceStream { result_table_name = "fake" field_name = "name,age" vim config/application.conf } } transform { } sink { DruidSink { coordinator_url = "http://localhost:8081/" datasource = ”yuzhouwan" } }
18 .功能验证 Functional verification 03 启动 SeaTunnel:运行 SeatunnelFlink 主类 java org.apache.seatunnel.SeatunnelFlink -c config/application.conf
19 .功能验证 Functional verification 04 校验数据:打开 Druid 自带的可视化页面,通过 SQL 查询 open 'http://localhost:8888'
20 .功能验证 Functional verification 04 校验数据:打开 Druid 自带的可视化页面,通过 SQL 查询 open 'http://localhost:8888'
21 .功能验证 Functional verification 04 校验数据:打开 Druid 自带的可视化页面,通过 SQL 查询 open 'http://localhost:8888'
22 .06 代码贡献 Code contribution
23 .代码贡献 Code contribution 01 Issues:创建 Feature request 类型的 issues 02 编译:完整地进行一次代码编译,确保代码风格和 LICENSE 正确无误 03 PR:提交 PR 并关联 issues 04 CI:观察 CI 任务是否均通过 05 改进:跟进后续 comment,并持续改进
24 .07 总结 Summarize
25 .总结 Summarize
26 .总结 Summarize
27 .总结 Summarize
28 .总结 Summarize
29 .总结 Summarize