Apache SeaTunnel 自定义连接器适配华为大数据平台集成组件ClickHouse

技术背景

Apache SeaTunnel 作为一款开源的数据集成框架,支持多种数源的集成。根据我司的业务场景,需要将每日的流水数据从MySQL按日期归档到ClickHouse中。

用户可以通过ClickHouse实现在线分析处理查询(OLAP)和分析数据报告生成。通过Apache SeaTunnel实现每日增量流水数据从MySQL归档到ClickHouse

由于使用华为增强的ClickHouse版本,目前开源中的ClickHouse连接器无法直接使用,且需要经过Kerberos认证。

同时华为增强的ClickHouse版本是基于ELB(Elastic Load Balance)的HA部署架构,需要通过Https协议访问高可用的ELB节点。

支持华为增强的ClickHouse版本

基于通用性的考虑,采用增强Connector-JDBC的方式,使该连接器兼容华为增强的ClickHouse版本的JDBC连接方式。

目前Connector-JDBC模块支持了多种SQL方言,如MySQL,GBASE,DB2等。

Connector-JDBC模块使用自动服务加载器(ServiceLoader)实现方言组件的自动加载(目前大部分开源组件都会使用类似机制以提高程序的可扩展性)。

在Connector-JDBC模块增加对华为增强的ClickHouse版本支持分为如下步骤:

增加ClickHouse方言配置

1)ClickhouseDialect:定义方言名称等信息

2)ClickhouseFactory: ClickHouse方言定义工厂。

Source或者Sink组件启动时会根据URL开头匹配到实际的方言工厂类,并进行加载。

3)ClickHouseJdbcRowConverter:行转换器

4)ClickHouseTypeMapper:类型转换器

由于Apache SeaTunnel自定义了通用数据类型SeaTunnelRow,所有其他的数据类型都需要转化成SeaTunnel自身的数据类型。

例如: 将ClickHouse中的UINT16对应到LONG类型:

跟踪源码,Source在初始化时会进行转化操作。

新增华为ClickHouse的JDBC连接工具类。

该类参考华为官方给的ClickHouse示例代码。

扩展SimpleJdbcConnectionProvider,以支持ClickHouse的JDBC连接。

测试连接器

配置SeaTunnel脚本:使用Example模块进行单元测试

其中Source配置的是MYSQL的数据源

Sink配置ClickHouse的数据源

  • driver:clickhouse

  • url:jdbc:ch//IP:PORT,IP是ELB的IP,PORT是HTTPS的端口

  • user: kerberos认证用户

  • password: kerberos认证用户密码

运行成功,查看结果:

本文由 白鲸开源科技 提供发布支持!

相关推荐
不动明王198410 小时前
能力联邦:Presto 的一种可能演进方向
大数据·iceberg·presto·湖仓·lance·联邦查询引擎
Jelena1577958579211 小时前
电商运营分析数据比价接口实战:多平台价格监控与智能决策系统
java·大数据·数据库
AC赳赳老秦13 小时前
企业工商公开信息采集分析:OpenClaw 批量查询企业工商信息,生成企业画像报告
大数据·开发语言·python·自动化·php·deepseek·openclaw
BerryS3N14 小时前
Code Git 工作树:多分支开发的痛点与工作树的曙光
大数据·git·elasticsearch
小K漫剧创作笔记17 小时前
AI短剧出海从「选修课」变「必修课」:合规分发正在成为内容全球化的真正门槛
大数据·人工智能·ai·aigc·漫剧
samLi062017 小时前
【数据集】中国“千兆城市”关键指标数据(2021-2023年)
大数据
城数派17 小时前
1991-2100年中国1km分辨率逐月气候指标栅格数据集(28个气象指标)
大数据
AC赳赳老秦17 小时前
司法公开数据采集应用:OpenClaw 抓取裁判文书公开信息,批量整理同类参考案例
java·大数据·python·数据挖掘·数据分析·php·openclaw
yurenshi166819 小时前
自媒体多账号管理工具 4 款实测:聚媒通 / 融媒宝 / 新榜小豆芽 / 矩阵通横向对比,快速选型
大数据·矩阵·媒体
nVisual20 小时前
机柜PDU安装位置与空间建模方案
大数据·网络·数据库·信息可视化·数据中心基础设施管理