本文为您介绍FTP Writer支持的数据类型、字段映射和数据源等参数及配置示例。
FTP Writer实现了向远程FTP文件写入CSV格式的一个或多个文件。在底层实现上,FTP Writer将数据集成传输协议下的数据转换为CSV格式,并使用FTP相关的网络协议写出至远程FTP服务器。
说明 开始配置FTP Writer插件前,请首先配置好数据源,详情请参见配置FTP数据源。
写入FTP文件内容存放的是一张逻辑意义上的二维表,例如CSV格式的文本信息。
FTP Writer实现了从数据集成协议转为FTP文件功能,FTP文件本身是无结构化数据存储。目前FTP Writer支持的功能如下:
- 支持且仅支持写入文本类型(不支持BLOB,如视频数据)的文件,且要求文本中schema为一张二维表。
- 支持类CSV和TEXT格式的文件,自定义分隔符。
- 写出时不支持文本压缩。
- 支持多线程写入,每个线程写入不同子文件。
暂时不支持以下两种功能:
- 单个文件不能支持并发写入。
- FTP本身不提供数据类型,FTP Writer均将数据以STRING类型写入FTP文件。
参数说明
参数 | 描述 | 是否必选 | 默认值 |
---|---|---|---|
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 | 标档文件名,同步任务结束后生成标档文件,根据此标档文件可以判断同步任务是否成功。此处应配置为绝对路径。 | 否 | 无 |
向导开发介绍
- 选择数据源。
配置同步任务的数据来源和数据去向。
参数 描述 数据源 即上述参数说明中的datasource,通常填写您配置的数据源名称。 文件路径 即上述参数说明中的path。 文本类型 读取的文件类型,默认情况下文件作为csv格式文件进行读取。 列分隔符 即上述参数说明中的fieldDelimiter,默认值为(,)。 编码格式 即上述参数说明中的encoding,默认值为utf-8。 null值 即上述参数说明中的nullFormat,定义表示null值的字符串。 时间格式 即上述参数说明中的dateFormat。 前缀冲突 即上述参数说明中的writeMode,定义FTP Writer写入前数据清理处理模式。 - 字段映射,即上述参数说明中的column。左侧的源头表字段和右侧的目标表字段为一一对应的关系。
配置 说明 同名映射 单击同名映射,可以根据名称建立相应的映射关系,请注意匹配数据类型。 同行映射 单击同行映射,可以在同行建立相应的映射关系,请注意匹配数据类型。 取消映射 单击取消映射,可以取消建立的映射关系。 - 通道控制。
参数 描述 任务期望最大并发数 数据同步任务内,可以从源并行读取或并行写入数据存储端的最大线程数。向导模式通过界面化配置并发数,指定任务所使用的并行度。 同步速率 设置同步速率可以保护读取端数据库,以避免抽取速度过大,给源库造成太大的压力。同步速率建议限流,结合源库的配置,请合理配置抽取速率。 错误记录数 错误记录数,表示脏数据的最大容忍条数。 - 通道控制。
参数 描述 任务期望最大并发数 数据同步任务内,可以从源并行读取或并行写入数据存储端的最大线程数。向导模式通过界面化配置并发数,指定任务所使用的并行度。 同步速率 设置同步速率可以保护读取端数据库,以避免抽取速度过大,给源库造成太大的压力。同步速率建议限流,结合源库的配置,请合理配置抽取速率。 错误记录数 错误记录数,表示脏数据的最大容忍条数。 分布式处理能力 数据同步时,可以将任务切片分散到多台执行节点上并发执行,提高同步速率。该模式下,配置较大任务并发数会增加数据存储访问压力,如需使用该功能,请提前评估数据存储的访问负载。该功能仅支持在独享数据集成资源组配置,详情请参见独享数据集成资源组和新增和使用独享数据集成资源组。
脚本开发介绍
配置一个写入FTP数据库的同步作业,使用脚本模式开发的详情请参见通过脚本模式配置离线同步任务。
{
"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"//限流
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}