DataX工具的基本使用

1.简介:

多种数据库数据互导 同步工具
为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。
在这里插入图片描述

2.框架设计

在这里插入图片描述

  • Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
  • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
  • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

3.工作原理
在这里插入图片描述

4.前置要求:
JDK
Python 安装python 略

5.运行自检:
D:\JobSoftware\DataX\datax\bin>python datax.py D:\JobSoftware\DataX\datax\job\job.json

发现中文乱码
设置窗口为utf8: chcp 65001

2020-10-02 15:33:10.750 [job-0] INFO  JobContainer - PerfTrace not enable!
2020-10-02 15:33:10.754 [job-0] INFO  StandAloneJobContainerCommunicator - Total 100000 records, 2600000 bytes | Speed 253.91KB/s, 10000 records/s | Error 0 records, 0 bytes |  All Task WaitWriterTime 0.015s |  All Task WaitReaderTime 0.021s | Percentage 100.00%
2020-10-02 15:33:10.755 [job-0] INFO  JobContainer -
任务启动时刻                    : 2020-10-02 15:33:00
任务结束时刻                    : 2020-10-02 15:33:10
任务总计耗时                    :                 10s
任务平均流量                    :          253.91KB/s
记录写入速度                    :          10000rec/s
读出记录总数                    :              100000
读写失败总数                    :                   0

6.使用实例: 将oracle数据库 ggxx_csb 表导入到 mysql表中
python datax.py -r oraclereader -w mysqlwriter

1) 在mysql数据库中建表

create table GGXX_CSB
(
  PARAVALUE VARCHAR(30) not null,
  PARADESC  VARCHAR(45),
  PARANAME  VARCHAR(8) not null
)

2)编写json脚本

{
    "job": {
        "setting": {
            "speed": {
                "channel":"1"
            }
        },
        "content": [
            {
                "reader": {
                    "name": "oraclereader",
                    "parameter": {
                        "column" : ["*"],
                        "connection":[
                            {
                                "jdbcUrl":["jdbc:oracle:thin:@192.168.11.53:1521:creditgr"],
                                "table":["ggxx_csb"]
                            }
                        ],
                        "password":"grzx_byday",
                        "username":"grzx_byday"
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column":["*"],
                        "connection":[
                            {
                                "jdbcUrl":"jdbc:mysql://192.168.11.60:3306/hy_test",
                                "table":["ggxx_csb"]
                            }
                        ],
                        "password":"root",
                        "username":"root",
                        "writeMode":"insert"
                    }
                }
            }
        ]
    }
}

3)执行脚本
D:\JobSoftware\DataX\datax\bin>python datax.py D:\JobSoftware\DataX\datax\job\jobtest.json

4)查看可以看到mysql中数据已经插入
在这里插入图片描述

注:中文乱码问题是因为字符集不一致 此处就不做处理了

7.使用pycharm运行py文件
1)pycharm安装 略
2)配置
在这里插入图片描述

3)运行成功
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值