1. 概述
本文档收集数据转换节点的常见问题,并给出答案。
2. 数据转换
2.1 简道云相关
分类 | 常见问题 | 解决方案 |
---|---|---|
简道云数据连接 | FDL怎么获取简道云的数据源 | 可参考 简道云输入典型示例 获取简道云表单的数据 |
简道云 APIKEY 在哪 | 可参考 配置简道云数据源 文档 部署 FDL 的服务器需要能够访问外网,否则获取不到简道云数据 | |
如何连接简道云和 FineDataLink | 请参见文档:配置简道云数据源 | |
我看帮助文档数据源添加有简道云数据源,但是我的没有 | 进入工程,点击「管理系统>注册管理>功能列表」中查看,是否注册了简道云功能点 | |
简道云输入算子 | 「简道云输入」算子中,筛选这里为啥只有为空和不为空 | 「简道云输入」算子中,配置筛选条件时,不同类型的字段支持的过滤条件不同 详情请参见:简道云输入-过滤条件说明 |
1)简道云进来的数据怎么同步到 DB 2)FDL 产品, 能否帮我把简道云的数据, 同步到另外一个数据库中 3)如何从简道云数据取数 4)数据怎么输出到简道云中 | 请参见文档:简道云输入功能说明 | |
简道云输入字段别名如何设置 | 请参见文档:简道云表单字段处理 | |
简道云中,有一个多行文本,我想通过 FDL 推送到 Oracle 库表 blob 类型字段中,支持吗 | 支持的 | |
怎么读取简道云子表单的值 | 参见:将包含两个子表单的简道云表单数据落库 | |
每次在简道云中更新数据,而不是每次都把计算的数据添加一遍 | 使用数据比对算子,请参见:简道云数据增删改同步至数据库 | |
简道云输出算子 | 1)FDL 能做到从数据库同步到简道云,这个功能有了么 2)FineDataLink 如何从数据库同步到简道云呢 3)数据库表中的数据同步到简道云可以做全量插入或者增量更新么 | 请参见文档:简道云输出算子 |
其他 | 简道云数据能不能做实时同步 | 暂时不支持。可通过设置定时任务的执行频率,例如设置一分钟执行一次定时任务,实现数据的快速更新 |
简道云可以调用 FDL 吗 | 可在 简道云前端事件 中调用定时任务相关接口,请参见:简道云调用定时任务接口 | |
如何将简道云的数据增量更新 | 请参见文档:简道云输出示例 |
2.2 数据比对
常见问题 | 解决方案 |
---|---|
1)源表有增删改操作,想把源表数据同步到目标表中,希望目标表和原表数据一样。要求是增量同步,不能清空目标表的数据再同步 2)FineReport 同步用户数据,已有的数据不同步,用户信息有更新,准备通过 FDL 做一个定时同步任务,但目标数据库没有时间戳标识,请问如何构建同步任务 3)如何只更新表中数据,不向表中添加新数据 4)追加和更新可以一起使用吗 5)只更新变化了的数据 | 详情请参见:数据比对功能说明 |
想找出俩表中不同的数据是哪些 | 使用数据比对功能实现,把相同的数据过滤掉(删除的数据使用逻辑删除) 注:若数据量过多,算子中预览数据时只预览部分数据,建议将筛选出的数据输出到数据库后查看 |
这个对比字段只能设置一个吗?我能否将除主键外的所有字段名全设置为对比字段 | 数据比对字段可以不设置或设置多个
|
fdl_comparison_type 是用来干嘛的 | 标记列 fdl_comparison_type 的值,用于标记两张表中同一个字段的差异。默认值为:Identical(相同)、Changed(更新)、Added(新增)、Removed(删除),可以自定义标识关系值 |
fdl_comparison_type 在目标表中这一列可以删除吗 | 可以的,可以在输出算子的「字段映射」中删除 |
批量添加比对字段 | 支持的 |
逻辑删除和物理删除的区别 | 若源表有 100 条数据,删除 10 条: 逻辑删除:目标表还是 100 条数据,源表被删除的 10 条数据被标记为删除数据 物理删除:目标表与源表一致,剩 90 条数据 |
来源数据库删除了一条数据,目标库如何检测到然后删除 | 使用 数据比对 实现,比对两张表的差异,实现更新、删除、新增 |
数据比对中 有 Removed 的数据,在 DB 输出时,会不会就从目标表中删除了 DB输出中的主键与数据比对中的主键不一样,没有问题吧 | DB表输出的写入方式中,可选择物理删除还是逻辑删除,物理删除就是目标表会实际删除数据;逻辑删除目标表标记删除数据,不实际删除 DB表输出的主键映射需要与「数据比对」算子的相同 |
数据比对算子选中的比对字段是并且还是或者的关系 | 或者的关系 |
2.3 数据关联
常见问题 | 解决方案 |
---|---|
数据开发里可以做分组汇总、左右合并和上下合并么 | 分组汇总和上下合并可用 「Spark SQL」算子实现 左右合并可用「数据关联」算子实现 |
数据关联只能关联两张表是吗 | 可以关联多张表的,请参见:功能说明 |
1)不同数据库多表关联如何实现 2)在FDL上如何把2个表相关的字段关联到一个表里面 3)多表关联 | 请参见文档:数据关联;或者使用SQL语句实现:表连接与联合 |
关联的数据,预览为空 | 数据关联连接字段要同名 |
2.4 读取文件/输出为文件
分类 | 常见问题 | 解决方案 |
---|---|---|
读取文件数据 | 1)这个数据同步或者转换,可以直接加载服务器里的 csv 文件吗,csv 文件内容也是会一直变化的 2)通过 ftp 获取数据,在一个一级目录下有 100 个二级目录,100 个二级目录下都有同样的名称的 xlsx 文件,有没有什么办法一次性通过 FDL 读取 3)我想把 Excel 的文件通过 finedatalink 导入到数据库中 4)使用ftp作为数据源输入和输出(格式主要excel、csv、txt) 5)可以连接 FTP 服务器,读取 EXCEL 文件内容吗 | 请参见文档: |
1)支持读取 txt 文件吗 2)FDL 支持上传本地文件到数据库吗 3)FDL 读取 Excel | 支持的 请参见文档:文件输入功能说明 | |
文件输入,并实现定时调度,只能在服务器本地吗,怎么能实现定时导入的文件且文件并不在 FDL 服务器上 | 可以配置 FTP 服务器,请参见:配置FTP/SFTP数据连接 | |
数据开发里面,上传 Excel 必须要用服务器数据集吗 | 文件输入算子不用上传,直接到路径下获取 | |
csv 选不到文件 | 4.0.24 之前版本,仅支持上传后缀小写的 Excel 和 CSV 文件,对于大写后缀的 Excel 和 CSV 文件上传校验不通过。若文件存在,但无法读取,请检查文件后缀是否为大写 .CSV/.XLSX,请手动修改为小写 | |
单个文件可以导入到选择的数据库中,选择了文件夹(多个文件)就导入失败了 | 读取文件夹中的多个同格式文件时,要求:文件夹中的 Excel 文件需要字段名相同;文件夹中的CSV文件需要分隔符相同 | |
Excel 数据导入报错 | 用户勾选了首行作为字段,但是实际上首行是字段值,字段值里存在许多小数点的数据,我们不支持字段名里带小数点,所以建表失败,取消勾选后,就建表成功了 | |
使用文件输入算子读取文件夹,里面的文件是否是自动执行了上下合并/字段名不一样,会执行什么操作 | 文件夹中的 Excel 文件需要字段名相同;多个文件进行上下合并操作 | |
智能读取第一个sheet | 文件输入算子 可以指定 sheet 页 | |
数据输出为文件 | 1)数据输出,不能选择输出到文件么 2)是否支持将数据库文件输出为文件 3)要把一个SQL转成Excel | 可以的,请参见文档:文件输出算子功能说明 |
文件输出算子,能把excel输出到浏览器本地么,就是用户当前在用的电脑本地 | 不是通过浏览器输出的,远程环境需要通过ftp连接,直接输出文件 |
2.5 Spark SQL
常见问题 | 解决方案 |
---|---|
能找一份 Spark SQL 的详细语法说明书吗 | 请参见文档:SparkSQL语法概述 |
1)想问一下 FDL 能不能做这种 md5 加密签名 2)FDL 如何使用加密函数,自定义加密函数 3)如何对数据进行加密操作 | fdl的加密是通过调用Spark SQL算子实现的,请参见文档:SparkSQL编码和加密函数 |
1)有去重这一个功能吗 2)如何数据去重 | 请参见文档:数据去重 |
时间戳在 FDL 里怎么转换成时间 | 用 Spark SQL 的一个函数 from_unixtime,请参见文档:SparkSQL日期函数 |
SparkSQL 数据预览报错 Spark SQL 语法错误 SparkSQL语法错误: Syntax error at or near 订; line 1 pos 18 | Spark SQL 不支持中文字段 |
有公式取到每个月的最后一天的日期吗 | last_day(string date) |
spark sql 能获取到毫秒的时间戳吗 | DATETONUMBER-日期转化为13位时间戳 |
sparksql能识别参数嘛 | 可以的 |
2.6 字段设置
常见问题 | 解决方案 |
---|---|
FDL里面,数据关联的结果带出的字段能够自己选择的吗?现在默认是全部带出来 | 数据关联后面加一个字段设置 |
1)Excel 表的数据量很大,我在通过 FDL 导入数据库的时候,总会报其中某一行某一列数据格式不匹配,有没有功能可以实现导入前做数据清理?修改为可导入的格式 2)如何只筛选自己想要展示的数据列 | 请参见文档:字段设置 |
怎么自定义字段类型 | 使用 字段设置 算子实现 或者在 新增计算列 中,使用公式实现 |
2.7 API 输入/输出
分类 | 常见问题 | 解决方案 |
---|---|---|
API 取数 | 1)配置了 API 输入,因为数据量有点多,所以 API 经常会提示超时,在哪里可以修改 API 超时设置 2)API 调用超时时间可以自己设置么 3)请问FDL里用的API组件,怎么老报错,显示超时呢,正常浏览器访问很快就返回了,能帮查下原因吗 | 请参见文档:使用FDLTimeout参数 |
1)FDL 是不是可以把 api 作为数据源 2)如何将 API 接口数据同步入库 3)如果想通过 API 接口抽数用哪个功能 4)对方系统,只提供 API 接口,BI 如何采集数据做分析 | 请参见文档:API输入 | |
数据转换中没找到API输入算子 | 需要注册功能点的,详情请参见:功能点限制 | |
支持分页查询吗 | API输入-分页取数 | |
每次接口返回条数最大100,我该怎么写调用接口,把所有数据都取出来 | 有分页参数吗,一页100条? 一般像这种限制数据量的接口,基本上都是分页取数的:分页取数-按页数取数 | |
API上获取的数据可以导出为Excel么 | 可以的,使用 文件输出算子 或者 文件传输算子 | |
API 接口获取上一个算子处理的数据 | 上一个算子后,接「参数输出」算子,将数据输出为参数 | |
API输入报了request error | 查看下 token 是否过期 | |
API输入支持AK/SK签名认证么 | 不支持,数据服务 模块是支持 AK/SK 签名认证的 | |
输出到 API | 1)我们 FDL 可以推送数据到接口嘛 2)请问 A 系统数据库可以直接对 B 系统 API 吗 3)FDL 是否支持从一个 API 取数,加工后推送到另一个 API 呢 | 请参见文档:API输出逻辑说明 |
想把数据库里的数据传到某个接口上,可以用finedatalink做吗 | API输出典型示例 | |
API 输出想要选择构建的json | 使用「JSON生成」算子 | |
API 输出的返回信息怎么看 | 「API输出」算子中,一般调用接口新增、修改、删除数据,返回信息需要查看被调用接口的接口文档进行了解 | |
其他 | API 解析,token 变化的不定参数如何设置,例如:用一个 url 获取 token,再用带 token 参数的 url 获取数据 | 请参见文档:API取数-获取企业微信人员信息 |
请问 api 接口提供的数据是分页的,使用 api 输入的算子应该如何调用 | 请参见文档:API取数-按页数取数 |
2.8 JSON 解析
问题 | 解决方案 |
---|---|
JSON解析不支持跨层勾选字段 | JSON 解析时,不支持同时提取不同层级的字段并扩展,用户可以使用多个 JSON 解析算子进行多个层级的解析 |
json解析只能选择一个源字段么 | 一个json解析算子只能解析一个字段,所以需要保留上游节点,再接一个json解析算子,继续解析其他字段 |
2.9 JSON 生成
问题 | 解决方案 |
---|---|
想从数据库里面取数据转成json | 参考文档:JSON生成 |
2.10 数据过滤
问题 | 解决方案 |
---|---|
FDL里如何实现过滤 | 1)数据过滤算子 2)使用 SQL 语句过滤,例如在SQL脚本、Spark SQL中使用SQL语句过滤 |
可以做到,同步前就过滤么,比如我只同步年龄大于 18 的用户明细 | 数据过滤算子 |
空数据入库报错 | 入库前,使用数据过滤,把空数据过滤掉就行 |
2.11 Python
问题 | 解决方案 |
---|---|
1)FDL 支持 python 吗 2)FDL 可以调用 python 文件吗 3)我现在 Python 代码是现成的,就是不知道怎么嵌入帆软,让它呈现最终的预测结果 | 请参见文档:Python脚本 |
如何使用 python 算子 | 参见文档:Python 算子,需要参考第三章准备环境 |
python算子不能输出参数吗 | 不能,只能传入参数给python算子 |
2.12 其他
问题 | 解决方案 |
---|---|
SAP RFC 写入,支持吗 | 暂不支持 |
1)DB 表输入的数据我想改一个字段的值,该怎么操作 2)我想将一个表格中数据,多个字段转换成对应的字典表的id,有什么好的方法吗,男转为:0,女转为:1,是否已婚,是转为:0,否转为:1 | 新增计算列 |
新增计算列算子,有添加的上限吗,比如最多加多少列 | 没有 |
数据集输出写入方式不支持:基于标识字段,追加/更新/删除数据。用户源有更新删除的数据,怎么直接更新到 BI 数据集 | 建议选择:清空目标表,再写入数据 |