DataX的json配置文件,{},[]讲解

通过DataX将文件系统迁移到MySQL

 python /bigdata/datax/bin/datax.py -r txtfilereader -w mysqlwriter

配置文件如下,(json文件中是不允许有//注释的,这里为了理解配置项的含义所以给加上了)

{
    "job": {
        // 数据同步任务的具体内容配置,包含数据源读取和写入目标的配置
        "content": [
            {
                // 数据源读取器配置
                "reader": {
                    // 读取器名称,使用 txtfilereader 从文本文件读取数据
                    "name": "txtfilereader",
                    // 读取器的参数配置
                    "parameter": {
                        // 定义要读取的列信息,包含数据类型和列索引
                        "column": [
                            {
                                // 第一列数据类型为 long
                                "type": "long",
                                // 列索引为 0
                                "index": 0
                            },
                            {
                                // 第二列数据类型为 string
                                "type": "string",
                                // 列索引为 1
                                "index": 1
                            },
                            {
                                // 第三列数据类型为 double
                                "type": "double",
                                // 列索引为 2
                                "index": 2
                            }
                        ],
                        // 文本文件中字段的分隔符
                        "fieldDelimiter": ",",
                        // 要读取的文件路径,支持通配符
                        "path": "/bigdata/dataCP/movies*",
                        // 是否跳过文件的首行
                        "skipHeader": true
                    }
                },
                // 数据写入器配置
                "writer": {
                    // 写入器名称,使用 mysqlwriter 将数据写入 MySQL 数据库
                    "name": "mysqlwriter",
                    // 写入器的参数配置
                    "parameter": {
                        // 写入模式,使用 insert 插入数据
                        "writeMode": "insert",
                        // 数据库用户名
                        "username": "root",
                        // 数据库密码
                        "password": "123456",
                        // 要写入的数据库表的列名
                        "column": [
                            "id",
                            "name",
                            "score"
                        ],
                        // 数据库连接配置
                        "connection": [
                            {
                                // JDBC 连接 URL
                                "jdbcUrl": "jdbc:mysql://master:3306/datax?useSSL=false",
                                // 要写入的数据库表名
                                "table": [
                                    "movies"
                                ]
                            }
                        ]
                    }
                }
            }
        ],
        // 任务的设置信息
        "setting": {
            // 任务速度相关设置
            "speed": {
                // 并发通道数
                "channel": "1"
            }
        }
    }
}

在 JSON(JavaScript Object Notation)中,{}[]有着不同的含义和用途:

花括号{}

{}用于表示对象(Object) 。对象是一种无序的键值对集合,每个键(Key)和值(Value)之间用冒号:分隔,不同的键值对之间用逗号,分隔。

在展示的配置文件中:

  • { "job": { ... } } 整体是一个对象,job是这个对象的键,它对应的值也是一个对象(内部包含contentsetting等键值对 )。
  • { "reader": { ... } } ,reader是外层对象的键,对应的值又是一个对象,里面包含nameparameter等键值对 ,用于描述数据源读取器的相关配置 。
  • { "writer": { ... } } 同理,writer对应的值是描述数据写入器配置的对象 。

方括号[]

[]用于表示数组(Array) 。数组是一种有序的元素列表,元素之间用逗号,分隔,元素可以是不同类型,比如字符串、数字、对象等。

在配置文件中:

  • [ { "reader": { ... }, "writer": { ... } } ] ,这里的content键对应的值是一个数组,数组中只有一个对象(这个对象又包含readerwriter等配置 )。在更复杂的场景下,content数组中可能有多个类似的对象,来配置多个不同的数据同步任务。
  • ["id", "name", "score"] ,这是一个包含三个字符串元素的数组,用于指定要写入数据库表的列名 。
  • ["movies"] ,是包含一个字符串元素的数组,指定要写入的数据库表名 。

简单来说,如果你想表示一组相关的、有特定名称(键 )的数据集合,就用{}表示对象;如果只是想表示一组有序的、不需要特定名称标识的元素列表,就用[]表示数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值