一、SFTP 离线单表读取节点配置
| 参数 | 说明 |
| 数据来源 | 选择当前项目中可用的 SFTP 数据源。 |
| 同步方式 | SFTP 支持两种同步方式:数据同步:解析结构化数据内容,按字段关系进行数据内容映射与同步。文件传输:不做内容解析传输整个文件,可应用于非结构化数据同步。注意:文件传输仅支持来源端、目标端均为文件类型(COS/HDFS/SFTP/FTP)的数据源,且来源端、目标端同步方式均需要为文件传输 |
| 文件路径 | SFTP 文件系统的路径和文件名信息,需要填写包含路径和文件后缀的完整文件路径和文件名。这里可以支持填写多个路径。当指定单个远程 SFTP 文件,SFTP 暂时只能使用单线程进行数据抽取。后期会在非压缩文件情况下针对单个 File 进行多线程并发读取。当指定多个远程 SFTP 文件,SFTP 支持使用多线程进行数据抽取。线程并发数通过通道数指定。当指定通配符,SFTP 尝试遍历出多个文件信息。例如,指定/代表读取/目录下所有的文件,指定 /bazhen/ 代表读取 bazhen目录下所有的文件。SFTP 目前仅支持星号(*)作为文件通配符,并支持使用调度参数配合调度,灵活配置文件名与文件路径。 |
| 文件类型 | SFTP 支持两种文件类型:TXT 、CSV。TXT:表示 TextFile 文件格式。CSV:表示普通 HDFS 文件格式(逻辑二维表)。 |
| 字段分隔符 | 读取的字段分隔符,SFTP 在读取数据时,需要指定字段分隔符,如果不指定会默认为(,),界面配置也会默认填写(,)。 |
| 行分割符(选填) | linux 默认是 \\n , windows 默认是 \\r\\n,手填支持单个字符作为行分割符。 |
| 编码 | 读取文件的编码配置。支持 utf8 和 gbk 两种编码。 |
| 空值转换 | 读取时,将指定字符串转为 null。 |
| 文本压缩类型 | 支持无压缩、zip、gzip、bzip2。 |
| 跳过表头 | 否:读取时,不跳过表头。是:读取时,跳过表头。 |
| 高级设置(选填) | 可根据业务需求配置参数。 |
二、SFTP 离线单表写入节点配置
| 参数 | 说明 |
| 数据源 | 选择当前项目中可用的 SFTP 数据源。 |
| 同步方式 | SFTP 支持两种同步方式:数据同步:解析结构化数据内容,按字段关系进行数据内容映射与同步。文件传输:不做内容解析传输整个文件,可应用于非结构化数据同步。注意:文件传输仅支持来源端、目标端均为文件类型(COS/HDFS/SFTP/FTP)的数据源,且来源端、目标端同步方式均需要为文件传输 |
| 文件路径 | 文件系统的路径信息。路径支持使用‘*’作为通配符,指定通配符后将遍历多个文件信息。 |
| 文件名称 | 写入的文件名称,该文件名会添加随机的后缀作为实际写入名称。 |
| 写入模式 | SFTP 支持三种写入模式:append:写入前不做任何处理,保证文件名不冲突 。nonConflict:文件名重复时报错 。overwrite:写入前清理以文件名为前缀的所有文件。 |
| 文件类型 | 支持两种文件类型:TXT、CSV。TXT:表示 TextFile 文件格式。CSV:表示普通 HDFS 文件格式(逻辑二维表)。 |
| 字段分隔符 | 写入的字段分隔符。SFTP 写入时的字段分隔符,需要你保证与创建的 SFTP 表的字段分隔符一致,否则无法在 SFTP 表中查到数据。可选:' \\t ' 、' \\u001 ' 、' | '、' 空格 ' 、 ' ;' ' , '。 |
| 编码 | 写入文件的编码配置。支持 utf8 和 gbk 两种编码。 |
| 空值转换 | 写入时,将 null 转为指定字符串。 |
| 是否包含表头 | 否:写入时,不跳过表头。是:写入时,跳过表头。 |
| 标记完成文件 | 空白的 .ok 文件,标志任务传输完成。不生成:任务完成后,不生成空白的 .ok文件。(默认选中)生成:任务完成后,生成空白的 .ok 文件 |
| 标记完成文件名称 | 填写时需包含完整文件路径、名称、后缀,默认在目标路径下按照目标文件名称及后缀生成 .ok 文件。支持在数据同步、文件传输模式下使用时间调度参数 ${yyyyMMdd} 等。支持在文件传输模式下使用内置变量 ${filetrans_di_src} 代表源文件名称。如:/user/test/${filetrans_di_src}_${yyyyMMdd}.ok。注意:在文件传输模式下目标文件名称中如果使用 ${filetrans_di_src} 引用源文件名称,并且标记完成文件按照目标文件名称及后缀生成 .ok 文件时,生成的标记完成文件个数取决于来源端的文件数量。 |
| 高级设置(选填) | 可根据业务需求配置参数。 |
三、SFTP 脚本 Demo
如果你配置离线任务时,使用脚本模式的方式进行配置,你需要在任务脚本中,按照脚本的统一格式要求编写脚本中的 reader 参数和 writer 参数。
"job": { "syncType": "data", //同步方式,支持数据同步和文件传输 "content": [ { "reader": { "parameter": { "path": "/path/source_file/", //文件路径 "protocol": "sftp", "password": "******", "nullFormat": "null", //空值转换 "port": 22, "host": "ip", "column": [ //列名 "*" ], "skipHeader": "false", //是否跳过表头 "fieldDelimiter": "|", //字段分割符 "encoding": "utf-8", //编码方式 "fileType": "text", //文件类型 "username": "wedata" }, "name": "ftpreader" }, "transformer": [], "writer": { "parameter": { "fileName": "sink_file", //目标文件名 "nullFormat": "null", //空值转换 "writeMode": "truncate", //写入模式 "suffix": "txt", //文件后缀 "encoding": "utf-8", //编码方式 "fieldDelimiter": ",", //字段分割符 "path": "/path/sink", //文件路径 "protocol": "sftp", "password": "******", "port": 22, "host": "ip", "fileType": "text", //文件类型 "username": "wedata" }, "name": "ftpwriter" } } ], "setting": { "errorLimit": { "record": 0 //脏数据阈值 }, "speed": { "byte": -1, //不限制同步速度,正整数表示设置最大传输速度 byte/s "channel": 1 //并发数量 } }}