Datax配置文件的编写&同步数据&调优

1.DataX 的配置文件是 JSON 格式,主要由 jobsetting 两部分组成:

  1. job:定义数据同步任务的 reader 和 writer。
  2. setting:定义任务的运行参数,例如速度控制、错误处理等。

示例:从 MySQL 导入到 HDFS

下面是一个示例配置文件,展示如何从 MySQL 数据库读取数据并导入到 HDFS。

{
    "job": {
        "setting": {
            "speed": {
                "channel": 3
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "your_username",
                        "password": "your_password",
                        "column": [
                            "id",
                            "name",
                            "age",
                            "address"
                        ],
                        "splitPk": "id",
                        "connection": [
                            {
                                "table": [
                                    "your_table"
                                ],
                                "jdbcUrl": [
                                    "jdbc:mysql://your_mysql_host:3306/your_database"
                                ]
                            }
                        ]
                    }
                },
                "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "defaultFS": "hdfs://your_hdfs_cluster",
                        "fileType": "text",
                        "path": "/user/hive/warehouse/your_table",
                        "fileName": "datax_output",
                        "column": [
                            {
                                "name": "id",
                                "type": "bigint"
                            },
                            {
                                "name": "name",
                                "type": "string"
                            },
                            {
                                "name": "age",
                                "type": "int"
                            },
                            {
                                "name": "address",
                                "type": "string"
                            }
                        ],
                        "writeMode": "append",
                        "fieldDelimiter": "\t",
                        "fileFormat": "text",
                        "compress": "gzip"
                    }
                }
            }
        ]
    }
}

名词解释:

1.channel :在 DataX 中,channel 是用于控制并发度的一个重要参数。它的作用是定义 DataX 在数据同步任务中同时执行的线程数量。具体来说,channel 数量决定了 DataX 可以并行处理的数据流数量,从而直接影响数据同步任务的执行速度和性能。
2.splitPk :在 DataX 中,splitPk 参数通常用于配置主键或其他唯一标识字段,以便在数据同步过程中对数据进行分片(split)。在进行数据同步时,通过 splitPk 将数据按主键范围分片,每个分片的数据可以由不同的并发任务(channel)处理,从而实现并行处理。

配置说明

1. job.setting
  • speed.channel:并发执行的任务数。
  • errorLimit:错误处理限制,包括错误记录数和错误百分比。
2. job.content
  • reader:定义数据源,这里使用 mysqlreader 读取 MySQL 数据库。

    • username:数据库用户名。
    • password:数据库密码。
    • column:需要同步的列名列表。
    • splitPk:用于数据分片的主键。
    • connection:数据库连接信息。
      • table:需要同步的表名。
      • jdbcUrl:数据库连接URL。
  • writer:定义数据目标,这里使用 hdfswriter 写入 HDFS。

    • defaultFS:HDFS 文件系统地址。
    • fileType:文件类型,这里为 text
    • path:目标路径。
    • fileName:文件名前缀。
    • column:列名和类型映射。
    • writeMode:写入模式,这里为 append
    • fieldDelimiter:字段分隔符,这里使用制表符。
    • fileFormat:文件格式,这里为 text
    • compress:压缩方式,这里为 gzip

2.同步策略

        datax数据同步策略分为两种:全量,增量
        1.全量同步:将mysql业务数据库中的数据全部同步到hive中
        2.增量同步:只对新增或者修改的数据进行同步

3.datax调优

        1.调整channel个数,channel负责datax数据传输过程中同时执行的线程数量,调整channel的大小可以提高并发度

        2.调整jvm堆内存的大小,jvm大小是1G,可以通过调整大小来优化datax数据传输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值