DataX HDFS 导入 MySQL 的 JSON 配置详解

DataX实现HDFS到MySQL数据导入

DataX HDFS 导入 MySQL 的 JSON 配置详解

配置示例

以下是一个完整的 DataX 配置示例,用于将 HDFS 上的文本文件数据导入到 MySQL 数据库:

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "hdfsreader",
                    "parameter": {
                        "path": "/your/hdfs/path",
                        "defaultFS": "hdfs://namenode:port",
                        "column": [
                            {"index": 0, "type": "string"},
                            {"index": 1, "type": "long"},
                            {"index": 2, "type": "date"}
                        ],
                        "fileType": "text",
                        "encoding": "UTF-8",
                        "fieldDelimiter": ","
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "writeMode": "insert",
                        "username": "your_username",
                        "password": "your_password",
                        "column": [
                            "col1",
                            "col2",
                            "col3"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://mysql_host:port/your_database",
                                "table": ["your_table"]
                            }
                        ]
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 3
            }
        }
    }
}

参数详解

HDFS Reader 配置

参数说明示例值
name读取器名称hdfsreader
pathHDFS文件路径/data/user/*.csv
defaultFSHDFS地址hdfs://namenode:8020
column字段定义[{“index”:0,“type”:“string”}]
fileType文件类型text, orc, rc, seq
encoding文件编码UTF-8
fieldDelimiter字段分隔符,

MySQL Writer 配置

参数说明示例值
name写入器名称mysqlwriter
username数据库用户名root
password数据库密码123456
column目标表字段[“id”,“name”,“age”]
jdbcUrlJDBC连接地址jdbc:mysql://host:3306/db
table目标表名[“user_table”]
writeMode写入模式insert, replace, update

完整配置模板

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "hdfsreader",
                    "parameter": {
                        "path": "/input/data_*.txt",
                        "defaultFS": "hdfs://192.168.1.100:8020",
                        "column": [
                            {"index": 0, "type": "long"},
                            {"index": 1, "type": "string"},
                            {"index": 2, "type": "string"},
                            {"index": 3, "type": "date", "format": "yyyy-MM-dd"}
                        ],
                        "fileType": "text",
                        "encoding": "UTF-8",
                        "fieldDelimiter": "\t",
                        "nullFormat": "\\N",
                        "compress": "none"
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "writeMode": "insert",
                        "username": "db_user",
                        "password": "db_password",
                        "column": ["id", "name", "email", "create_date"],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://192.168.1.200:3306/production_db?useUnicode=true&characterEncoding=utf8",
                                "table": ["user_info"]
                            }
                        ],
                        "preSql": ["TRUNCATE TABLE user_info"],
                        "postSql": [],
                        "batchSize": 1024
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 5,
                "byte": 10485760
            },
            "errorLimit": {
                "record": 100,
                "percentage": 0.02
            }
        }
    }
}

使用说明

  1. 保存配置文件:将上述配置保存为 hdfs2mysql.json

  2. 运行DataX任务

    python datax.py hdfs2mysql.json
    
  3. 常见问题处理

    • 确保HDFS路径存在且有读取权限
    • 确认MySQL服务可访问且表结构匹配
    • 检查字段类型映射是否正确

注意事项

  1. 字段类型需要正确映射(HDFS文本类型 → MySQL表字段类型)
  2. 对于大数据量导入,适当调整channel参数提高并发度
  3. 建议先在小数据量上测试验证配置正确性

如果需要处理其他文件格式(如ORC、Parquet)或有特殊需求,可以调整相应的reader参数。

注意点:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值