随手收集的一些资料、信息、图文等。

超级好用数据同步ETL工具

在当今这个“数据即资产”的时代,企业每天都在产生海量、多源、异构的数据——从用户行为日志、交易记录,到IoT设备流、社交媒体互动……然而,原始数据本身并不等于价值,真正驱动业务增长的,是那些被清洗、整合、标准化后的高质量数据。而这一切的背后,离不开一个关键角色:ETL工具。

图片

ETL(Extract-Transform-Load)不仅是数据进入分析世界的“第一道门”,更是企业实现数据可信、一致、可用的核心引擎。它像一位高明的“数据厨师”:从杂乱无章的“原材料”中精准提取所需信息,剔除噪声与冗余,再按照业务逻辑进行精妙转换,最终将干净、结构化的数据“端上桌”——供BI报表、AI模型、实时决策系统高效调用。

Part.1
工具描述
一句话,dbswitch工具提供源端数据库向目的端数据库的离线批量迁移同步功能,支持数据的全量/增量/变化量方式同步。包括:1、结构迁移

支持字段类型、主键信息、建表语句等的转换,并生成建表SQL语句。

支持基于正则表达式转换的表名与字段名映射转换。

2、数据同步

基于JDBC的分批次离线读取源端数据库数据,并基于insert/copy方式将数据分批次写入目的数据库。

支持指定增量标识字段的增量同步(适用于日志表等存在增量标识字段的同步场景)

3、支持有主键表的 变化量同步 (变化数据计算Change Data Calculate)功能(千万级以上数据量的性能尚需在生产环境验证)

Part.2
结构设计
图片
Part3
编译部署
编译打包本工具纯Java语言开发,代码中的依赖全部来自于开源项目。

1、编译打包

环境要求:

JDK:>=1.8 (建议用JDK 1.8)

maven:>=3.6

Maven 仓库默认在国外, 国内使用难免很慢,可以更换为阿里云的仓库。 参考教程: 配置阿里云的仓库教程

编译命令:

(1) windows下:

双击 build.cmd脚本文件即可编译打包

(2) Linux下:

git clone https://gitee.com/inrgihc/dbswitch.gitcd dbswitch/sh ./ build.sh

(3) Docker下:

git clone https://gitee.com/inrgihc/dbswitch.gitcd dbswitch/sh ./ docker-maven-build.sh

2、安装部署

(1) 当编译打包命令执行完成后,会在dbswitch/target/目录下生成 dbswitch-relase-x.x.x.tar.gz的打包文件,将文件拷贝到已安装JRE的部署机器上解压即可。

(2) docker容器方式部署:

H2做配置库部署

这里将宿主机的/tmp目录挂载到容器上:

docker run -d –name dbswitch  -e DBTYPE=h2  -v /tmp:/tmp  -p 9088:9088 \   registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest

MYSQL做配置库部署

假设已经部署好的MySQL(5.7+)数据库地址为192.168.31.57,端口为3306,账号为test,密码为123456

docker run -d –name dbswitch \ -e DBTYPE=mysql \ -e MYSQLDB_HOST=192.168.31.57 \

-e MYSQLDB_PORT=3306 \

-e MYSQLDB_USERNAME=test \

-e MYSQLDB_PASSWORD=’123456′ \

-e MYSQLDB_NAME=’dbswitch’ \ -v /tmp:/tmp \

-p 9088:9088 \

registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest

PostgreSQL/OpenGauss做配置库部署

假设已经部署好的PostgreSQL/OpenGauss数据库地址为192.168.31.57,端口为5432,账号为test,数据库为dbswitch(需先建好), 密码为123456

docker run -d –name dbswitch \

-e DBTYPE=postgres \

-e PGDB_HOST=192.168.31.57 \

-e PGDB_PORT=5432 \

-e PGDB_USERNAME=test \

-e PGDB_PASSWORD=’123456′ \

-e PGDB_NAME=’dbswitch’ \

-v /tmp:/tmp \

-p 9088:9088 \

registry.cn-hangzhou.aliyuncs.com/inrgihc/dbswitch:latest

(3) 基于docker-compose提供linux联网环境下的一键安装,x86的CentOS系统下安装命令如下:

curl -k -sSL https://gitee.com/dromara/dbswitch/attach_files/1946299/download -o /tmp/ dbs.sh && bash /tmp/db

Part.4
功能截图
dbswitch-admin的WEB端会根据用户的配置调用dbswitch-data模块执行数据迁移同步;dbswitch-admin服务启动时会基于flyway自动建库建表,需要保证配置的mysql连接账号具有建库建表等权限;

WEB系统的访问如下:

URL地址: http://127.0.0.1:9088 登陆账号:admin 登陆密码:123456

Swagger在线接口地址: http://127.0.0.1:9088/swagger-ui/

注意:如果为服务器部署时,需要将127.0.0.1替换为服务器的IP地址。

WEB系统的使用流程为:

建立源端数据库的连接 -> 建立目的断数据库的连接 -> 配置任务 -> 发布任务 -> 手动/系统调度执行任务 -> 查看监控调度日志 -> 数据目录查看数据结果

图片
图片
图片
图片
图片
图片
图片
赞(0)
个人小站,文章收集不易,转载请注明来源~!感谢!收集的一些乱七八糟的资料 » 超级好用数据同步ETL工具
分享到