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

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

一、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

Java 集成大屏设计 datax java集成_DataX

Java 集成大屏设计 datax java集成_big data_02

Java 集成大屏设计 datax java集成_数据集成工具_03

三、 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

执行结果

Java 集成大屏设计 datax java集成_Java 集成大屏设计_04

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