FTP数据源为您提供读取和写入FTP双向通道的功能,本文为您介绍DataWorks的FTP数据同步的能力支持情况。
使用限制
FTP Reader实现了从远程FTP文件读取数据并转为数据同步协议的功能,远程FTP文件本身是无结构化数据存储。对于数据同步而言,目前FTP Reader支持的功能如下所示:
支持 | 不支持 |
支持 | 不支持 |
|
|
FTP Writer实现了从数据集成协议转为FTP文件功能,FTP文件本身是无结构化数据存储。目前FTP Writer支持的功能如下:
支持 | 不支持 |
支持 | 不支持 |
|
|
支持的字段类型
远程FTP文件本身不提供数据类型,该类型是DataX FtpReader定义。
DataX内部类型 | 远程FTP文件数据类型 |
DataX内部类型 | 远程FTP文件数据类型 |
LONG | LONG |
DOUBLE | DOUBLE |
STRING | STRING |
BOOLEAN | BOOLEAN |
DATE | DATE |
创建数据源
在进行数据同步任务开发时,您需要在DataWorks上创建一个对应的数据源,操作流程请参见创建并管理数据源,详细的配置参数解释可在配置界面查看对应参数的文案提示。
数据同步任务开发
数据同步任务的配置入口和通用配置流程可参见下文的配置指导。
单表离线同步任务配置指导
操作流程请参见通过向导模式配置离线同步任务、通过脚本模式配置离线同步任务。
脚本模式配置的全量参数和脚本Demo请参见下文的附录:脚本Demo与参数说明。
附录:脚本Demo与参数说明
离线任务脚本配置方式
如果您配置离线任务时使用脚本模式的方式进行配置,您需要按照统一的脚本格式要求,在任务脚本中编写相应的参数,详情请参见通过脚本模式配置离线同步任务,以下为您介绍脚本模式下数据源的参数配置详情。
Reader脚本Demo
{
"type":"job",
"version":"2.0",//版本号。
"steps":[
{
"stepType":"ftp",//插件名。
"parameter":{
"path":[],//文件路径。
"nullFormat":"",//null值。
"compress":"",//压缩格式。
"datasource":"",//数据源。
"column":[//字段。
{
"index":0,//序列号。
"type":""//字段类型。
}
],
"skipHeader":"",//是否包含表头。
"fieldDelimiter":",",//列分隔符。
"encoding":"UTF-8",//编码格式。
"fileFormat":"csv"//文本类型。
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"//错误记录数。
},
"speed":{
"throttle":true,//当throttle值为false时,mbps参数不生效,表示不限流;当throttle值为true时,表示限流。
"concurrent":1 //作业并发数。
"mbps":"12",//限流,此处1mbps = 1MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Reader脚本参数
参数 | 描述 | 是否必选 | 默认值 |
参数 | 描述 | 是否必选 | 默认值 |
datasource | 数据源名称,脚本模式支持添加数据源,此配置项填写的内容必须要与添加的数据源名称保持一致。 | 是 | 无 |
path | 远程FTP文件系统的路径和文件名信息,需要填写包含路径和文件后缀的完整文件路径和文件名。这里可以支持填写多个路径。
| 是 | 无 |
column | 读取字段列表,type指定源数据的类型,index指定当前列来自于文本第几列(以0开始),value指定当前类型为常量,不从源头文件读取数据,而是根据value值自动生成对应的列。 默认情况下,您可以全部按照STRING类型读取数据,配置为
对于您指定的column信息,type必须填写,index和value必须选择其一。 | 是 | 无 |
fieldDelimiter | 读取的字段分隔符。 FTP Reader在读取数据时,需要指定字段分割符,如果不指定会默认为(,),界面配置也会默认填写(,)。 | 是 | , |
skipHeader | 类CSV格式文件可能存在表头为标题情况,需要跳过。默认不跳过,压缩文件模式下不支持skipHeader。 | 否 | false |
encoding | 读取文件的编码配置。 | 否 | utf-8 |
nullFormat | 文本文件中无法使用标准字符串定义null(空指针),数据同步提供nullFormat定义哪些字符串可以表示为null。 例如:
| 否 | 无 |
markDoneFileName | 标档文件名,数据同步前检查标档文件。如果标档文件不存在,等待一段时间重新检查标档文件,如果检查到标档文件,则开始执行同步任务。 | 否 | 无 |
maxRetryTime | 表示检查标档文件重试次数,默认重试60次,每一次重试间隔为1分钟,共60分钟。 | 否 | 60 |
csvReaderConfig | 读取CSV类型文件参数配置为Map类型。读取CSV类型文件使用的CsvReader进行读取,会有很多配置,不配置则使用默认值。 | 否 | 无 |
fileFormat | 读取的文件类型,默认情况下文件作为CSV格式文件进行读取,内容被解析为逻辑上的二维表结构处理。如果您配置为binary,则表示按照纯粹二进制格式进行复制传输。 通常在FTP、OSS等存储之间进行目录结构对等复制时使用,通常无需配置该项。 | 否 | 无 |
Writer脚本Demo
{
"type":"job",
"version":"2.0",//版本号。
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"ftp",//插件名。
"parameter":{
"path":"",//文件路径。
"fileName":"",//文件名称。
"nullFormat":"null",//null值。
"dateFormat":"yyyy-MM-dd HH:mm:ss",//时间格式。
"datasource":"",//数据源。
"writeMode":"",//写入模式。
"fieldDelimiter":",",//列分隔符。
"encoding":"",//编码格式。
"fileFormat":""//文本类型。
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"//错误记录数。
},
"speed":{
"throttle":true,//当throttle值为false时,mbps参数不生效,表示不限流;当throttle值为true时,表示限流。
"concurrent":1, //作业并发数。
"mbps":"12"//限流,此处1mbps = 1MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Writer脚本参数
参数 | 描述 | 是否必选 | 默认值 |
参数 | 描述 | 是否必选 | 默认值 |
datasource | 数据源名称,脚本模式支持添加数据源,此配置项填写的内容必须要与添加的数据源名称保持一致。 | 是 | 无 |
timeout | 连接FTP服务器连接超时时间,单位毫秒。 | 否 | 60,000(1分钟) |
path | FTP文件系统的路径信息,FTP Writer会写入Path目录下多个文件。 | 是 | 无 |
fileName | FTP Writer写入的文件名,该文件名会添加随机的后缀作为每个线程写入实际文件名。 | 是 | 无 |
singleFileOutput | FtpWriter写入的文件名受fileName控制,默认行会添加随机的后缀作为每个线程写入实际文件名。如果您不需要默认添加的随机后缀,您可以将singleFileOutput配置为true,写出文件名将会是您指定的完整文件名。 | 否 | false |
writeMode | FTP Writer写入前数据清理处理模式:
| 是 | 无 |
fieldDelimiter | 写入的字段分隔符。 | 是,单字符 | 无 |
skipHeader | 类CSV格式文件可能存在表头为标题情况,需要跳过。默认不跳过,压缩文件模式下不支持skipHeader。 | 否 | false |
compress | 支持gzip和bzip2两种压缩形式。 | 否 | 无压缩 |
encoding | 读取文件的编码配置。 | 否 | utf-8 |
nullFormat | 文本文件中无法使用标准字符串定义null(空指针),数据集成提供nullFormat定义哪些字符串可以表示为null。 例如您配置 | 否 | 无 |
dateFormat | 日期类型的数据序列化到文件中时的格式,例如"dateFormat":"yyyy-MM-dd"。 | 否 | 无 |
fileFormat | 文件写出的格式,包括CSV和TEXT两种,CSV是严格的CSV格式,如果待写数据包括列分隔符,则会按照CSV的转义语法转义,转义符号为双引号。TEXT格式是用列分隔符简单分割待写数据,对于待写数据包括列分隔符情况下不做转义。 | 否 | TEXT |
header | header:txt文本(包括csv、text等)写出时的表头,脚本模式支持配置表头信息,例如"header":["id","name","age"],表示将id、name、age作为表头写入ftp文件的第一行。 | 否 | 无 |
markDoneFileName |
| 否 | 无 |
- 本页导读 (1)
- 使用限制
- 支持的字段类型
- 创建数据源
- 数据同步任务开发
- 单表离线同步任务配置指导
- 附录:脚本Demo与参数说明
- 离线任务脚本配置方式
- Reader脚本Demo
- Reader脚本参数
- Writer脚本Demo
- Writer脚本参数