- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
基于SeaTunnel的Clickhouse bulk load实现-范佳
展开查看详情
1 .ClickhouseFile 基于SeaTunnel的Clickhouse bulk load 实现 Apache SeaTunnel Contributor 范佳 2022-04-16
2 . 01 Clickhouse Sink现状 02 Clickhouse Sink的弱场景 03 ClickhouseFile插件介绍 CONTENT 04 核心技术点 05 插件的实现解析 06 插件能力对比 07 Next Step
3 .标题 为什么要实现ClickhouseFile插件
4 .01 Clickhouse Sink现状
5 .标题 Clickhouse Sink现状 SeaTunnel基本流程 Source Transfrom Clickhouse Sink JDBC Clickhouse Server
6 .标题 Clickhouse Sink现状 Clickhouse Sink现状 通过JDBC接口写入,HTTP模式 有没有比HTTP更快的方式?TCP?Or else? 无法实现数据压缩 数据中重复数据多岂不是很浪费资源?为什么不能先压缩了再传输呢? 数据量过大容易导致OOM
7 .02 Clickhouse Sink 的弱场景
8 .标题 Clickhouse Sink的弱场景 数据量大,通过HTTP处理不过来 服务器压力大,太多的INSERT请求
9 .标题 Clickhouse Sink的弱场景 有没有一种方式能满足以下需求? 能在Spark端就能完成数据压缩 能在数据写入时不增加Server的资源负载 能快速写入海量数据
10 .03 ClickhouseFile 插件介绍
11 .标题 ClickhouseFile插件介绍 关键技术:Clickhouse-local clickhouse-local模式可以使您能够对本地文件执行 快速处理,而无需部署和配置ClickHouse服务器。 clickhouse-local使用与ClickHouse Server相同的核 心,因此它支持大多数功能以及相同的格式和表引 擎。
12 .标题 ClickhouseFile插件介绍 关键技术:Clickhouse-local 1 2 3 4 5 6 7 1. 将数据通过Linux管道传递给Clickhouse-local程序的test_table表 2-5. 创建一个result_table表用于接收数据 6. 将数据从test_table到result_table表 7. 定义数据处理的磁盘路径
13 .标题 ClickhouseFile插件介绍 实现原理 原来 Spark:来数据给你,你自己处理 Clickhouse:你要累死我呀,别人还要用呢 现在 Spark:数据帮你生成文件了,你接收一下就可以用了 Clickhouse:OK
14 .04 核心技术点
15 .标题 核心技术点 临时文件 Input Data 利用MMAP将数据写入临时文件 less Clickhouse-local Local File Temp File
16 .标题 核心技术点 分片支持 Input Data sharding_key分片(weight支持) Local File1 Local File2 Temp File3 Send Node1 Node2 Node3
17 .标题 核心技术点 文件传输 SCP RSYNC 安全 快速高效 通用 断点续传 无需额外配置
18 .05 插件实现解析
19 .标题 插件实现解析 • 缓存数据 • 调用本地的clickhouse-local生成 文件 • 将数据发送到服务端 • 执行ATTACH命令
20 .06 插件能力对比
21 .标题 插件能力对比 Feature Clickhouse ClickhouseFile 大量数据传输 环境复杂度 通用性 服务器压力
22 .07 Next Step
23 .标题 Next Step • Rsync 支持 • Exactly-Once 支持 • 支持Zero Copy传输数据文件 • 更多Engine的支持
24 .Thanks https://seatunnel.apache.org/