一、支持的能力
| 能力 | 支持情况 | 说明 |
| 支持的数据源 | Amazon S3、COS、FTP、SFTP、File System、HDFS | 文件类数据源在数据同步模式下可选择 JSON |
| 压缩支持 | none / deflate / gzip / bzip2 / lz4 / snappy | 任务级配置项,见支持的参数设置 |
| 离线同步(读 / 写) | ✓ / – | 支持读取 JSON 文件作为离线同步任务的源端;DataBuddy 数据源仅支持接入读取,不支持写入 |
| 实时同步(读 / 写) | – / – | 不支持以 JSON 格式进行实时同步 |
二、支持的参数设置
以下为任务级参数,在数据同步模式下配置于任务的读取节点。
| 参数 | 说明 | 是否必填 | 默认值 |
| 文件类型 | 选择 JSON | 是 | TXT |
| 编码 | utf8 / gbk | 是 | utf8 |
| 压缩格式 | none / deflate / gzip / bzip2 / lz4 / snappy;snappy 仅支持 hadoop-snappy 与 framing-snappy 两种 stream format | 是 | none |
JSON 为按 key 解析的格式,字段分隔符、行分隔符、Quote character、跳过表头不适用,不在任务中展示。
注意:说明:
注意:JSON 的字段名按对象 key 自动生成,无需用户填写;如需调整目标字段名或类型,可在字段映射组件中修改。
三、支持的类型转换
JSON 不带类型声明,读取时按 key 取值后,由用户声明的目标类型决定转换结果:
| JSON 值类型 | 可声明的目标类型 | 说明 |
| string | STRING / DATE | 声明为 DATE 时必须填写日期格式,如 yyyy-MM-dd HH:mm:ss |
| number(整数) | LONG / DOUBLE / STRING | 通常为 LONG |
| number(浮点) | DOUBLE / STRING | — |
| boolean | BOOLEAN / STRING | — |
| object / array | STRING | 不展开嵌套结构,按 JSON 字符串整体读取 |
字段类型的缺省值为 STRING。所有可声明类型为:STRING、LONG、DOUBLE、BOOLEAN、DATE。
注意:说明:
注意:同一任务读取的所有文件视为同一张逻辑表,须适配同一套 schema。不同 JSON 文件的 key 不一致时,缺失 key 的字段按空值处理,schema 冲突的记录进入脏数据处理链路。
四、Q:嵌套的 object / array 会被展开成多个字段吗?
A:不会。嵌套结构不做展开,整体按 JSON 字符串读取,目标类型固定为 STRING。如需展开嵌套字段,请在目标端进行二次处理。
五、Q:字段名可以修改吗?
A:字段名由对象的 key 自动生成,无需填写;如需调整目标字段名或类型,可在字段映射组件中修改。
六、Q:不同文件的 key 不一致会怎样?
A:同一任务读取的所有文件视为同一张逻辑表。缺失 key 的字段按空值处理,schema 冲突的记录进入脏数据处理链路。
七、Q:为什么没有字段分隔符、行分隔符、Quote character、跳过表头的配置?
A:JSON 按对象的 key 解析字段,以上按分隔符切分的参数不适用,因此不在任务中展示。
八、Q:JSON 的字段类型如何确定?
A:JSON 不带类型声明,读取时按 key 取值,由用户声明的目标类型决定转换结果;缺省为 STRING。
九、Q:压缩格式应该怎么选?
A:需与文件实际的外层压缩方式保持一致;选择 snappy 时,仅支持 hadoop-snappy 与 framing-snappy 两种 stream format。
十、相关文档
·支持的数据源与读取能力
·添加数据源连接
·离线同步任务运维监控
其他文件格式说明:TXT、CSV、Parquet、ORC。