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的数据同步流程。

相关推荐
蚂蚁在飞-9 小时前
一个高度可扩展的 Golang ORM 库【GORM】
数据库·oracle·golang
TPCloud11 小时前
AIX下crs-5005 ip address is aready in use in the network的解决办法
数据库·oracle·crs-5005
安迁岚11 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验八 存储过程
数据库·sql·mysql·oracle
莳花微语15 小时前
Oracle RMAN克隆数据库(同主机)
数据库·oracle·克隆迁移
雅冰石16 小时前
oracle会话追踪
数据库·oracle
m0_7482329219 小时前
MySQL:基础操作(增删查改)
数据库·mysql·oracle
儿时可乖了1 天前
Linux 定时任务全解析
linux·oracle
halfbloodghost2 天前
【数据库】SQL语句简单运用
数据库·sql·oracle
ejinxian2 天前
SQLite 管理工具 SQLiteStudio 3.4.5 发布
数据库·oracle·sqlite
暴力的bug制造机2 天前
【MySQL】库的操作(增删查改 | 备份 | 恢复)
linux·数据库·mysql·oracle