历史版本7 :文件输出算子功能说明 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本功能变动
4.0.26
新增「文件输出」算子,可将数据输出为 CSV 类型的文件
4.0.29可将数据输出为 Excel 类型的文件

1.2 应用场景

  • 用户希望将加工后的数据以文件形式分享给业务人员直接查看使用。

  • 银行体系下,不允许直连数据库或开放接口,需要以文件形式下发数据给其他关联业务系统使用。

  • 政企分享数据的过程中,需要将数据以文件形式留档。

  • 对接部分大数据数据源时,需要 FDL 写数据文件,然后数据源通过读取文件的形式高速装载数据。

「文件输出」算子可满足上述场景。

1.3 功能简介

「文件输出」算子可将处理后的数据输出到指定目标与路径的结构化文件中。如下图所示:

注:若数据不需要进行复杂处理,可使用 数据同步 节点将数据输出为文件形式。

1693385693413410.png

2. 前提条件编辑

  • 若需要将文件输出到 FineDataLink,需要新建一个「服务器本地目录」数据连接,并将要读取的文件放到%FDL%/webroot/WEB-INF/local_files/路径下,并且有该数据连接的使用权限。具体请参见:配置服务器本地目录数据连接

  • 若需要将文件输出到 FTP/SFTP 服务器中,需要配置 FTP/SFTP数据连接,并且有该数据连接的使用权限。具体请参见:配置FTP/SFTP数据连接

3. 功能说明编辑

注:避免多个任务/节点同时写入同一文件。

3.1 数据输出到 CSV 文件中

设置界面如下图所示:

1693386220755112.png

3.1.1 文件目标

文件输出的位置。可将文件输出到「FTP/SFTP 服务器」中或者「服务器本地目录」中。

3.1.2 文件类型

支持数据输出为 CSV/Excel 类型的文件。

3.1.3 文件夹地址

选择文件输出目录,将以「数据连接」中所选路径作为写入目录;不允许为空;支持使用参数。

3.1.4 文件名

填写文件名称,支持填写参数;不允许为空。

3.1.5 列分隔符

注:列分隔符、文本限定符、行分隔符彼此不可重复。

根据指定的列分隔符,分隔数据为多列。可以指定或自定义。

1689130062410244.png

指定:

可在下拉框中选择:

  • 逗号,

  • 制表符 \t

  • 分号;

  • 管道符 |

  • 空格

自定义:

可以手动输入十进制的 ASCII 编码,指定 ASCII 字符作为特殊的列分隔符。支持的十进制 ASCII 编码为 0~32。

十进制 ASCII 编码为 0~32 的含义如下表所示:
十进制 ASCII 编码含义
0空字符(Null)
1标题开始
2本文开始
3本文结束
4传输结束
5请求
6确认回应
7响铃
8退格
9水平定位符号
10换行键
11垂直定位符号
12换页键
13归位键
14取消变换(Shift out)
15启用变换(Shift in)
16跳出数据通讯
17设备控制一(XON 启用软件速度控制)
18设备控制二
19设备控制三(XOFF 停用软件速度控制)
20设备控制四
21确认失败回应
22同步用暂停
23区块传输结束
24取消
25连接介质中断
26替换
27跳出
28文件分割符
29组群分隔符
30记录分隔符
31单元分隔符
32空格

3.1.6 行分隔符

指定 CSV 文件中的行分隔符

  • CR+LF(在 Windows 系统中使用

  • LF(在 Unix、Linux 等系统中使用)

  • CR(在早期的 Mac OS 系统中使用)

3.1.7 文本限定符

用于标识数据值的开始和结束,以避免数据中包含的特殊字符干扰 CSV 文件的解析。

可选择指定、自定义、无,如下图所示:

1689130572726084.png


指定:可选择双引号""、单引号''

自定义:可以手动输入十进制的 ASCII 编码,指定 ASCII 字符作为特殊的文本限定符。支持的十进制 ASCII 编码为 0~32,具体含义可见本文 3.1.5 节内容。

3.1.8 编码

指定 CSV 文件编码,编码可选择 GBK、BIG5、ISO-8859-1、UTF-8、UTF-16、EUC_JP、EUC_KR、CP850。

1689130655294618.png

3.1.9 首行输出字段名

勾选时,将字段名写入文件第一行;不勾选时,则直接将数据写入文件第一行。

3.1.10 文件拆分

1693387842111147.png

1)勾选后将按行数拆分数据至多个文件,适用于大数据量的文件输出场景,例如数据量超过 Excel 支持的最大行数上限时,不拆分将无法写入。

2)数据(包括勾选「首行输出字段名称」后生成的字段名称行)每满足指定行数时,将生成一个新文件,同时自动在文件名后追加"_1、_2..."后缀。

3)如果没有勾选文件拆分,文件写入到达 Excel 上限,则直接后端报错处理。

4)如果勾选了「首行输出字段名」按钮,文件拆分后,每个拆分的文件或者 Sheet 仍将首行设置为输出字段名称。

5)当前文件拆分逻辑基于输入端拆分,若「文件重名策略」设置为文件重名,追加写入数据,目标文件的存量数据不会算入按行数拆分的数据量中,这种情况下,实际文件数据量会大于指定的拆分行数。

3.1.11 文件重名策略

注:若选择文件输出到 Excel 文件,「文件重名策略」无法选择「文件重名,追加写入数据」。

同一文件夹中,文件不能重名。

有三种:

  • 文件重名,停止写入并报错

  • 文件重名,追加写入数据

  • 文件重名,覆盖目标文件数据

3.1.12 字段映射

界面如下图所示:

1693387592183321.png

1)字段匹配时,展示的目标字段类型固定为 string,不允许修改。

实际写入时,各数据类型的处理逻辑如下:

源头字段类型目标文件中字段类型
布尔
直接转字符串(真:true、假:false)
日期时间
yyyy-MM-dd HH:mm:ss格式的字符串
其他类型字符串

「文件输出」算子前一算子的预览效果与输出值相同。用户如果有格式化的需求,可以在前置计算过程中通过公式完成日期和数字的格式化,以文本输出时,格式化的结果也会原样保留。

3.2 输出数据到 Excel 文件

设置界面如下图所示:

1693445875640851.png

Excel 单文件支持的数据量说明:

  • Excel 2003 和更早版本: 单个工作表最多支持 65536 行和 256 列。

  • Excel 2007 和更新版本: 单个工作表最多支持 1048576 行和 16384 列。

注:目前文件输出的 Excel 格式为 xlsx 。

3.2.1 Sheet 名

填写要写入的 Sheet 名,不填写时则使用默认的 Sheet 名称;支持使用参数。

3.2.2 其他设置项

具体介绍请参见本文 3.1 节内容。

4. 特殊场景处理策略编辑

场景
处理策略
文件写入时已有同名文件按照节点配置的文件重名策略执行冲突处理
写入 CSV 文件的数据中存在 NULL/空字符串NULL:按照空值写入,不使用文本限定符封闭,例如("a",,"b","c")

空字符串:按照空字符串写入,使用文本限定符封闭。例如("a","","b","c")

写入 CSV 文件的数据中存在换行通过文本限定符封闭,正常保留换行
写入Excel中含有图片、图标等非字符类型数据尝试转换为字符串进行写入,如果转换失败则抛错处理

5. 示例编辑

「文件输出」算子的简单使用请参见:文件输出典型示例