异构数据同步 datax (1)

阿里实现异构数据库之间的表数据集同步

Reader & Framework &  Writer

job

当然好用的框架,自然有很多优点

1)可靠的数据质量监控

2) 丰富的数据转换功能

DataX作为一个服务于大数据的ETL工具,除了提供数据快照搬迁功能之外,还提供了丰富数据转换的功能,让数据在传输过程中可以轻松完成数据脱敏,补全,过滤等数据转换功能,另外还提供了自动groovy函数,让用户自定义转换函数。详情请看DataX3的transformer详细介绍。

3) 精准的速度控制

"speed": {
   "channel": 5,
   "byte": 1048576,
   "record": 10000
}

4) 强劲的同步性能

DataX3.0每一种读插件都有一种或多种切分策略,都能将作业合理切分成多个Task并行执行,单机多线程执行模型可以让DataX速度随并发成线性增长。在源端和目的端性能都足够的情况下,单个作业一定可以打满网卡。另外,DataX团队对所有的已经接入的插件都做了极致的性能优化,并且做了完整的性能测试。性能测试相关详情可以参照每单个数据源的详细介绍:DataX数据源指南

5) 健壮的容错机制

6) 极简的使用体验

安装环境如下:(window下也可以)

已编译版本:

https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz

源码:

git clone git@github.com:alibaba/DataX.git

怎么玩?

直接体验:进入bin目录 

python datax.py 你的job配置文件路径/mysql_postgres_job.json

如果不懂这个job 文件怎么编写,可以直接看插件源码,里面有很详细的介绍。

mysql_postgres_job.json

{
    "job": {
        "setting": {
            "speed": {
                "channel": 5
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "***************",
                        "connection": [
                            {
                                "jdbcUrl": [
                                    "jdbc:mysql://192.168.5.180:3306/xxxx_cloud_20231026?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8"
                                ],
                                "querySql": [
                                    " SELECT * from  sys_test_copy1"
                                ]
                            }
                        ]
                    }
                },
                "writer": {
                    "name": "postgresqlwriter",
                    "parameter": {
                        "username": "postgres",
                        "password": "***************",
                        "column": [
                            "*"
                        ],
                        "preSql": [
                            "delete from sys_test_copy1"
                        ],
                        "connection": [
                            {
                                "table": [
                                    "sys_test_copy1"
                                ],
                                "jdbcUrl": "jdbc:postgresql://192.168.5.190:5432/xxx_cloud",
                            }
                        ]
                    }
                }
            }
        ]
    }
}

小结:

之前写过关于 canal相关的数据同步,基于mysql binlog增加同步,确实很好用,但如果需要进行异构数据库间同步,则无法进行,如果有这种进行配置就可以搞定的数据同步需求,当然是最好的解决方案了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值