数据集成工具的使用---DataX 从理论学习到熟练使用

Posted 北慕辰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据集成工具的使用---DataX 从理论学习到熟练使用相关的知识,希望对你有一定的参考价值。

本期与大家分享的是,小北精心整理的大数据学习笔记,数据采集工具DataX 的详细介绍,希望对大家能有帮助,喜欢就给点鼓励吧,记得三连哦!欢迎各位大佬评论区指教讨论!

💜🧡💛制作不易,各位大佬们给点鼓励!
🧡💛💚点赞👍 ➕ 收藏⭐ ➕ 关注✅
💛💚💙欢迎各位大佬指教,一键三连走起!

往期好文推荐:
🔶🔷数据集成工具的使用(一)—Sqoop 从理论学习到熟练使用
🔶🔷数据集成工具的使用(三)—FlinkX 从理论学习到熟练使用
🔶🔷数据集成工具的使用(四)—Flume 从理论学习到熟练使用
🔶🔷数据集成工具的使用(五)—Kettle 从理论学习到熟练使用

一、DataX 简介

        DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 mysql、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能

        DataX本身作为数据同步框架将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源,该新加入的数据源即可实现和现有的数据源互通。

DataX开源地址 https://github.com/alibaba/DataX

DataX 3.0六大核心优势

二、DataX 架构

github开源架构介绍链接地址: https://github.com/alibaba/DataX/blob/master/introduction.md

三、 DataX的安装

DataX不需要依赖其他服务,直接上传、解压、安装、配置环境变量即可

也可以直接在windows上解压

四、DataX的使用

DataX的使用文档说明 DataX3.0插件体系 :
https://github.com/alibaba/DataX/blob/master/introduction.md#%E4%B8%89-datax30%E6%8F%92%E4%BB%B6%E4%BD%93%E7%B3%BB

1、stream2stream

编写配置文件stream2stream.json

# 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
       }
    }
  }
}

执行同步任务

datax.py stream2stream.json

执行结果

2 、mysql2mysql

MysqlReader 插件文档 :https://github.com/alibaba/DataX/blob/master/mysqlreader/doc/mysqlreader.md
DataX MysqlWriter :https://github.com/alibaba/DataX/blob/master/mysqlwriter/doc/mysqlwriter.md
需要新建student2数据库,并创建student表

编写配置文件mysql2mysql.json

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "123456",
                        "column": [
                            "id",
                            "name",
                            "age",
                            "gender",
                            "clazz",
                            "last_mod"
                        ],
                        "splitPk": "age",
                        "connection": [
                            {
                                "table": [
                                    "student"
                                ],
                                "jdbcUrl": [
                                    "jdbc:mysql://master:3306/student"
                                ]
                            }
                        ]
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "writeMode": "insert",
                        "username": "root",
                        "password": "123456",
                        "column": [
                            "id",
                            "name",
                            "age",
                            "gender",
                            "clazz",
                            "last_mod"
                        ],
                        "preSql": [
                            "truncate student2"
                        ],                        
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://master:3306/student2?useUnicode=true&characterEncoding=utf8",
                                "table": [
                                    "student2"
                                ]
                            }
                        ]
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 6
            }
        }
    }
}

执行同步任务

datax.py mysql2mysql.json

以上是关于数据集成工具的使用---DataX 从理论学习到熟练使用的主要内容,如果未能解决你的问题,请参考以下文章

数据湖:数据集成工具DataX

阿里异构离线数据同步工具/平台DataX

数据同步工具DataX和DataWeb知识手册,DataX优化

数据同步工具DataX和DataWeb知识手册,DataX优化

DataX及DataX-Web

关于数据同步工具DataX部署