ETL可视化工具 DataX -- 安装部署 ( 二)

引言

DataX 系列文章:

DataX 私有仓库 :

https://gitee.com/dazhong000/datax.git
https://gitee.com/dazhong000/datax-web.git
本地地址:E:\soft\2023-08-datax

2.1 DataX安装

安装文档 git地址:https://github.com/alibaba/DataX/blob/master/userGuid.md

2.1.1 解压安装

  • 方法一、直接下载DataX工具包:
  • 下载地址 (https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz)
    下载后解压至本地某个目录,进入bin目录,即可运行同步作业:
bash 复制代码
$ cd  {YOUR_DATAX_HOME}/bin
$ python datax.py {YOUR_JOB.json}

自检脚本:

bash 复制代码
python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json
  • 方法二、下载DataX源码,自己编译:
    DataX源码

(1)、下载DataX源码:

bash 复制代码
$ git clone git@github.com:alibaba/DataX.git

(2)、通过maven打包:

bash 复制代码
$ cd  {DataX_source_code_home}
$ mvn -U clean package assembly:assembly -Dmaven.test.skip=true
打包成功,日志显示如下:
[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------------
[INFO] Total time: 08:12 min
[INFO] Finished at: 2015-12-13T16:26:48+08:00
[INFO] Final Memory: 133M/960M
[INFO] -----------------------------------------------------------------

打包成功后的DataX包位于 {DataX_source_code_home}/target/datax/datax/ ,结构如下:

bash 复制代码
$ cd  {DataX_source_code_home}
$ ls ./target/datax/datax/
bin        conf        job        lib        log        log_perf    plugin        script        tmp

2.1.2 配置示例 从stream读取数据并打印到控制台

  • 第一步、创建作业的配置文件(json格式)

可以通过命令查看配置模板: python datax.py -r {YOUR_READER} -w {YOUR_WRITER}

bash 复制代码
$ cd  {YOUR_DATAX_HOME}/bin
$  python datax.py -r streamreader -w streamwriter
DataX (UNKNOWN_DATAX_VERSION), From Alibaba !
Copyright (C) 2010-2015, Alibaba Group. All Rights Reserved.
Please refer to the streamreader document:
    https://github.com/alibaba/DataX/blob/master/streamreader/doc/streamreader.md 

Please refer to the streamwriter document:
     https://github.com/alibaba/DataX/blob/master/streamwriter/doc/streamwriter.md 
 
Please save the following configuration as a json file and  use
     python {DATAX_HOME}/bin/datax.py {JSON_FILE_NAME}.json 
to run the job.

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "streamreader", 
                    "parameter": {
                        "column": [], 
                        "sliceRecordCount": ""
                    }
                }, 
                "writer": {
                    "name": "streamwriter", 
                    "parameter": {
                        "encoding": "", 
                        "print": true
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": ""
            }
        }
    }
}

根据模板配置json如下:

bash 复制代码
#stream2stream.json
{
  "job": {
    "content": [
      {
        "reader": {
          "name": "streamreader",
          "parameter": {
            "sliceRecordCount": 10,
            "column": [
              {
                "type": "long",
                "value": "10"
              },
              {
                "type": "string",
                "value": "hello,你好,世界-DataX"
              }
            ]
          }
        },
        "writer": {
          "name": "streamwriter",
          "parameter": {
            "encoding": "UTF-8",
            "print": true
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 5
       }
    }
  }
}

示例:Mysql 同步数据配置:

bash 复制代码
{
    "job": {
        "content": [
            {
                "reader": {
                    //读取端"name": "mysqlreader",
                    "parameter": {
                        //源数据库连接用户"username": "root",
                        //源数据库连接密码"password": "root",
                        //需要同步的列(*表示所有的列)"column": [
                            "*"
                        ],
                        "connection": [
                            {
                                //源数据库连接"jdbcUrl": [
                                    "jdbc:mysql://127.0.0.3:3360/studysource?useUnicode=true&characterEncoding=utf8"
                                ],
                                //源表"table": [
                                    "staff_info"
                                ]
                            }
                        ]
                    }
                },
                "writer": {
                    //写入端"name": "mysqlwriter",
                    "parameter": {
                        //目标数据库连接用户"username": "root",
                        //目标数据库连接密码"password": "root",
                        "connection": [
                            {
                                //目标数据库连接"jdbcUrl": "jdbc:mysql://127.2.3.4:3360/studysync?useUnicode=true&characterEncoding=utf8",
                                //目标表"table": [
                                    "staff_info"
                                ]
                            }
                        ],
                        //同步前.要做的事"preSql": [
                            "TRUNCATE TABLE staff_info"
                        ],
                        //需要同步的列"column": [
                            "*"
                        ]
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                //指定并发数"channel": "5"
            }
        }
    }
}
  • 第二步:启动DataX
bash 复制代码
$ cd {YOUR_DATAX_DIR_BIN}
$ python datax.py ./stream2stream.json 

同步结束,显示日志如下:

bash 复制代码
...
2015-12-17 11:20:25.263 [job-0] INFO  JobContainer - 
任务启动时刻                    : 2015-12-17 11:20:15
任务结束时刻                    : 2015-12-17 11:20:25
任务总计耗时                    :                 10s
任务平均流量                    :              205B/s
记录写入速度                    :              5rec/s
读出记录总数                    :                  50
读写失败总数                    :                   0
相关推荐
成都蜀味缘餐饮技术培训学校2 天前
油炸串串技术培训实战指南,核心食材选购与预处理标准
数据仓库·经验分享·笔记·课程设计·微信公众平台
RestCloud3 天前
数据同步零中断:ETL服务宕机重启后异常任务自动重跑
数据仓库·mysql·etl·etlcloud·数据传输·etl工具
泡干脆面就番茄3 天前
Hive分区表与分桶表:大数据查询提速的第一把钥匙
大数据·数据仓库·hive·hadoop
SelectDB技术团队4 天前
Apache Doris 基于 Lance 的向量检索深度解析
数据库·数据仓库·数据分析·湖仓一体·apache doris·lakehouse·多模湖仓
泡干脆面就番茄4 天前
Hive-DML:Load-Insert-Export-Import四种数据进出方式
大数据·数据仓库·hive·hadoop
SelectDB技术团队4 天前
日志场景 Elasticsearch 替换实操:建表、索引、写入链路与查询改写的完整参数
大数据·数据库·数据仓库·elasticsearch·全文检索·日志分析·apache doris
省钱兄--zs5 天前
深圳24小时自助健身房软硬件解决方案实战指南与开发流程详解
java·数据仓库·spring boot·小程序·架构
省钱兄--zs5 天前
无人自助拼豆系统架构设计与功能实现落地部署全流程实战指南
java·数据仓库·spring boot·系统架构·需求分析
棣廷5 天前
初识Hive(1)
数据仓库·hive·hadoop
Francek Chen5 天前
【大数据处理与分析】数据仓库Hive:07 Hive HA基本原理
大数据·数据仓库·hive·hadoop·数据分析