SeaTunnel同步Oracle数据至ClickHouse

SeaTunnel是一个分布式、高性能、易扩展、用于海量数据同步和转化的数据集成平台。可以实现MySQL、Oracle、SQLServer、Postgresql、MongoDB、Db2、Redis等各种异构数据源之间稳定高效的数据同步功能。用户只需要配置作业信息,就能完成数据的同步。提交作业后,源连接器负责并行读取数据并将数据发送到下游转换或直接发送到接收器,接收器将数据写入目标。

SeaTunnle的特点:

  • **丰富且可扩展的连接器:**SeaTunnle提供了一个不依赖于特定执行引擎的连接器API。基于此API开发的连接器(源、转换、接收器)可以在许多不同的引擎上运行,例如当前支持的SeaTunnle引擎、Flink、Spark。
  • **连接器插件:**插件设计允许用户轻松开发自己的连接器并将其集成到SeaTunnle项目中。目前,SeaTunnle已经支持100多个连接器,而且数量还在激增。
  • **批量流集成:**基于SeaTunnle连接器API开发的连接器,完美兼容离线同步、实时同步、全同步、增量同步等场景。大大降低了管理数据集成任务的难度。
  • **多引擎支持:**SeaTunnle默认使用SeaTunnle引擎进行数据同步。同时,SeaTunnle还支持使用Flink或Spark作为连接器的执行引擎,以适应企业现有的技术组件。SeaTunnle支持多个版本的Spark和Flink。
  • **JDBC多路复用,数据库日志多表解析:**SeaTunnle支持多表或全数据库同步,解决了JDBC连接过多的问题;支持多表或全库日志读写解析,解决了CDC多表同步场景重复读取解析日志的问题。
  • **高吞吐、低时延:**SeaTunnle支持并行读写,提供稳定可靠的数据同步能力,高吞吐、低时延。
  • **完善的实时监控:**SeaTunnle支持数据同步过程中每个步骤的详细监控信息,让用户轻松了解同步任务读写的数据量、数据大小、QPS等信息。

ClickHouse是OLAP 在线分析领域的一颗冉冉新星,它拥有极其出众的查询性能,以及丰富的分析函数,可以助力分析师灵活而迅速地挖掘海量数据的价值。

从Oracle同步数据到ClickHouse,是目前最常见到的数据同步场景,将数据从Oracle同步到ClickHouse可以帮助提升数据处理速度和查询性能,提供更好的数据管理和分析能力,以及降低成本和提高经济效益。

本文将介绍如何借助SeaTunnle实现Oracle数据同步到ClickHouse数仓。

SeaTunnel任务配置及启动

本示例将Oracle的test表中的9999条数据,同步到ClickHouse数据库下default.test0中。

Oracle建表语句,如下:

CREATE TABLE test (ID INT,NAME VARCHAR(40),QUANTITY INT,PRIMARY KEY (ID) );

向Oracle中插入数据,格式如下:

insert into test (ID,NAME,QUANTITY) values(1,'banana',1);

ClickHouse建表语句,如下:

CREATE TABLE default.test0

(

`ID` Int32,

`NAME` String,

`QUANTITY` Int32

)

ENGINE = MergeTree

PRIMARY KEY ID

ORDER BY ID

1、下载jdbc

下载Oracle jdbc并放至 '$SEATNUNNEL_HOME/plugins/jdbc/'目录下

2、编写配置文件

在'$SEATNUNNEL_HOME/config'目录下,新建配置文件

配置文件内容示例如下:

env {

execution.parallelism = 1

job.mode = "BATCH"

}

source{

Jdbc {

url = "jdbc:oracle:thin:@localhost:1539/FREE"

driver = "oracle.jdbc.OracleDriver"

user = "system"

password = "123456"

query = "SELECT * FROM test"

}

}

sink {

Clickhouse {

host = "localhost:8123"

database = "default"

table = "test0"

username = "default"

password = "123456"

}

}

3、启动任务

在'$SEATNUNNEL_HOME'目录下,使用启动命令:

./bin/seatunnel.sh --config ./config/oracletock.template -e local

此命令将以 local (本地模式) 运行您的SeaTunnel作业。

当任务运行完毕,会出现本次任务的汇总信息:

进入ClickHouse,select count() from test0查看写入情况,可以看到9999条测试数据已经写入ClickHouse。

接下来我们将介绍更多数据库到ClickHouse的数据同步流程。

相关推荐
weixin_3077791310 小时前
Linux下GCC和C++实现统计Clickhouse数据仓库指定表中各字段的空值、空字符串或零值比例
linux·运维·c++·数据仓库·clickhouse
消失在人海中14 小时前
oracle sql 语句 优化方法
数据库·sql·oracle
Channing Lewis16 小时前
sql server如何创建表导入excel的数据
数据库·oracle·excel
远方160918 小时前
20-Oracle 23 ai free Database Sharding-特性验证
数据库·人工智能·oracle
Lx35219 小时前
LIKE查询中索引有效利用的前缀匹配策略
后端·sql·oracle
远方160920 小时前
0x-2-Oracle Linux 9上安装JDK配置环境变量
java·linux·oracle
陈丹阳(滁州学院)1 天前
若依添加添加监听容器配置(删除键,键过期)
数据库·oracle
远方16091 天前
14-Oracle 23ai Vector Search 向量索引和混合索引-实操
数据库·ai·oracle
GUIQU.1 天前
【Oracle】数据仓库
数据库·oracle
斯特凡今天也很帅1 天前
clickhouse常用语句汇总——持续更新中
数据库·sql·clickhouse