DataX

DataX是一个用于数据集成的开源工具,可以从GitHub下载。用户可以解压并运行bin目录下的Python脚本来执行数据同步作业。示例包括从MySQL到流、MySQL到HDFS以及HBase到MySQL的数据迁移。配置文件以JSON格式定义,包括读取和写入数据的详细参数。
摘要由CSDN通过智能技术生成

官方文档地址:GitHub - alibaba/DataX: DataX是阿里云DataWorks数据集成的开源版本。

安装

  • 直接下载DataX工具包:DataX下载地址

    下载后解压至本地某个目录,进入bin目录,即可运行同步作业:

    $ cd  {YOUR_DATAX_HOME}/bin
    $ python datax.py {YOUR_JOB.json}

    自检脚本:    python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json

    python datax.py ../job/job.json

  • 读取Mysql

    {
        "job": {
            "setting": {
                "speed": {
                     "channel": 3
                },
                "errorLimit": {
                    "record": 0,
                    "percentage": 0.02
                }
            },
            "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": "streamwriter",
                        "parameter": {
                            "print":true
                        }
                    }
                }
            ]
        }
    }

    MysqlToHDFS

  • {
        "job": {
            "setting": {
                "speed": {
                     "channel": 3
                },
                "errorLimit": {
                    "record": 0,
                    "percentage": 0.02
                }
            },
            "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/bigdata22"
                                    ]
                                }
                            ]
                        }
                    },
                   "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "defaultFS": "hdfs://master:9000",
                        "fileType": "text",
                        "path": "/datax/stu01",
                        "fileName": "stu_data",
                        "column": [
                            {
                                "name": "id",
                                "type": "BIGINT"
                            },
                            {
                                "name": "name",
                                "type": "STRING"
                            },
                            {
                                "name": "age",
                                "type": "BIGINT"
                            },
                            {
                                "name": "gender",
                                "type": "STRING"
                            },
                            {
                                "name": "clazz",
                                "type": "STRING"
                            },
                            {
                                "name": "last_mod",
                                "type": "STRING"
                            }
                        ],
                        "writeMode": "append",
                        "fieldDelimiter": "\t"
                    }
                }
            }
          ]
        }
    }

    HbasetoMysql

  • {
        "job": {
            "setting": {
                "speed": {
                    "channel": 1
                }
            },
            "content": [
                {
                    "reader": {
                        "name": "hbase11xreader",
                        "parameter": {
                            "hbaseConfig": {
                                "hbase.zookeeper.quorum": "master:2181,node1:2181,node2:2181"
                            },
                            "table": "stu",
                            "encoding": "utf-8",
                            "mode": "normal",
                            "column": [
                                {
                                    "name": "rowkey",  //此处必须写为rowkey
                                    "type": "string"
                                },
                                {
                                    "name": "cf1:name",
                                    "type": "string"
                                },
                                {
                                    "name": "cf1:age",
                                    "type": "string"
                                },
                                {
                                    "name": "cf1:gender",
                                    "type": "string"
                                },
                                {
                                    "name": "cf1:clazz",
                                    "type": "string"
                                }
                            ],
                            "range": {
                                "startRowkey": "",
                                "endRowkey": "",
                                "isBinaryRowkey": false
                            }
                        }
                    },
                    "writer": {
                        "name": "mysqlwriter",
                        "parameter": {
                            "writeMode": "insert",
                            "username": "root",
                            "password": "123456",
                            "column": [
                                "id",
                                "name",
                                "age",
                                "gender",
                                "clazz"
                            ],
                            "preSql": [
                                "truncate student"
                            ],
                            "connection": [
                                {
                                    "jdbcUrl": "jdbc:mysql://master:3306/ETL?useUnicode=true&characterEncoding=gbk",
                                    "table": [
                                        "student"
                                    ]
                                }
                            ]
                        }
                    }
                }
            ]
        }
    }

    其他参考官方文档进行模拟写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值