1. 概述编辑
本文对FineDataLink的特有概念进行解释说明,以便用户进行使用。
2. 功能模块名称编辑
包含数据开发、数据管道、数据服务、任务运维等功能,满足用户对数据进行同步、处理、清洗等一系列的需求。
名称 | 定位 | 功能说明 |
---|---|---|
数据开发 | 数据定时同步和数据处理 | 通过 SQL 或者可视化的方式,完成任务的开发和编排 |
数据管道 | 数据实时同步 | 在数据库数据量大或表结构规范的情况下,实现高性能的实时数据同步。 |
数据服务 | API 发布,实现数据跨域传输 | 通过 FineDataLink 发布接口,将加工、融合后的标准数据,封装为规范化API接口,供外部系统调用。 |
任务运维 | 定时任务运维、管道任务运维、数据服务运维 | 对任务进行集中管理和运行监控,提供任务的总览 |
3. 数据开发编辑
数据开发模块用于定义周期调度任务的开发及调度属性,与任务运维配合使用,提供可视化开发主界面,帮助您轻松构建离线数仓,保证数据生产的高效稳定。
数据开发模块提供了多种类型节点,同时,多种类型节点支持周期性任务调度,可基于业务需要选择合适的节点进行相关开发操作。
3.1 文件夹
存放数据开发任务的文件夹,一个文件夹下可存放多个定时任务。
3.2 定时任务
定时任务是对数据执行的操作的定义,示例如下:
通过数据同步节点任务,将数据从 MySQL 同步至 Oracle 。
通过数据转换、循环容器等节点,将API 数据解析落库至指定数据库。
每个定时任务可以是数据流和步骤流单独节点,也可以是多节点组合。
3.3 节点
定时任务组成定时任务的基本单位,多个节点通过线条连接后可确定执行流程,进而组成一个完整的定时任务。
根据节点间的依赖关系依次运行各个节点。
3.4 数据流
在「数据转换」节点中进行 ETL 处理,提供封装好的可视化功能,实现高效的数据清洗处理和装载。
定位 | 功能界限 |
---|---|
从输入控件(Input)到输出控件(Output)之间的数据流动,针对的是在数据流动过程中的每一行记录、每一列数据的处理。数据流里提供了各类算子,可以完成数据的输入、输出、转换等操作 | 数据流(数据转换节点)里只提供以下三类算子,不应该包含组合型、流程类的算子:
|
数据转换节点中涉及到的名称解释如下表所示:
归类 | 功能点 | 注册功能类型 | 定位 | 功能说明 | 起始版本 |
---|---|---|---|---|---|
输入 | DB表输入 | - | 读取数据库表的数据 | - | 3.0 |
API输入 | 进阶数据源控制-接口协议(定时) | 通过API读取数据 | - | 3.0 | |
数据集输入 | 基础数据源控制 | 读取服务器数据集或者自助数据集里的数据 | - | 3.0 | |
简道云输入 | 进阶数据源-应用连接器(定时) | 满足简道云数据下云进行备份、计算、分析和展示的需求 | 实现获取指定简道云表单数据的功能 | 4.0.2 | |
MongoDB输入 | 进阶数据源控制-NoSQL | 满足接入 MongoDB 数据源进行数据处理的需求 | - | 4.0.4.1 | |
SAP 输入 | 进阶数据源控制-应用连接器(定时) | 通过 RFC 接口调用 SAP 系统内已经开发好的函数,并将数据取出。 | - | 4.0.10 | |
文件输入 | 进阶数据源控制-文件系统 | 读取指定来源与路径的结构化文件数据。 | 实现读取指定来源与路径的结构化文件获取数据的功能。 | 4.0.14 | |
输出 | DB表输出 | - | 将数据输出到数据库表 | - | 3.0 |
比对删除 | 将来源表中「数据删除」这一变化同步至目标表 | 通过字段值对比,对目标表中存在,但是输入源中不存在的数据行进行删除。包含:
| 3.2 注:4.0.18 版本删除该算子 | ||
参数输出 | 数据转换-基础 | 将取到的数据输出为参数,供下游节点使用 | 将数据作为参数输出,供任务内下游节点使用 | 4.0.13 | |
API输出 | 进阶数据源控制-接口协议(定时) | 将数据输出到API | 4.0.19 | ||
简道云输出 | 进阶数据源-应用连接器(定时) | 将数据输出到简道云表单 | 将数据上传至简道云指定表单 | 4.0.20 | |
文件输出 | 进阶数据源控制-文件系统 | 将数据输出为文件 | 将数据输出到指定目标与路径的结构化文件中 | 4.0.26 | |
MongoDB输出 | 进阶数据源控制-NoSQL | 将数据输出到 MongoDB | 将数据输出到 MongoDB | 4.1.6.4 | |
数据集输出 | 基础数据源控制 | 对远程的Fine+「公共数据」创建ETL结果表并写入数据 | 支持往本地或远程公共数据中,自动创建ETL结果表,并做数据的增删改操作。 | 4.1.8.2 | |
连接 | 数据关联 | 数据转换-高级 | 用于将多个输入进行连接,并输出连接后的结果 支持跨库、跨源的连接 | 连接方式主要有以下几种:
这些连接方式与数据库里表连接的方式一致,通过确定关联字段和关联条件,最后得到匹配连接后的结果集。连接的输入是两个以上,输出只有一个 | 3.1 |
数据比对 | 数据转换-高级 | 将 2 个输入的数据进行比较,筛选出新增、删除、相同、不相同的数据 | 使用路径:
| 4.0.18 | |
上下合并 | 数据转换-高级 | - | 可对多张表进行上下行合并,输出一张合并表 | 4.1.0 | |
转换 | 字段设置 | 数据转换-高级 | 满足字段名称、类型调整的需求 | 提供以下功能:
| 3.7 |
列转行 | 数据转换-高级 | 实现数据表行列结构的改变,满足一维表和二维表之间转换的需求 | 对输入的数据表进行列转行操作:
| 3.5 | |
行转列 | 数据转换-高级 | 实现数据表行列结构的改变,行转列 | 对输入的数据表进行行转列操作。
| 4.0.15 | |
JSON解析 | 数据转换-基础 | 用于解析 JSON 结构的数据,输出行列格式的数据 | 通过获取上游输出的 JSON 数据,按照 JSONPath 的规范将其自定义解析成需要的字段并输出给下游 | 3.5 | |
XML解析 | 数据转换-高级 | 支持指定解析策略,将输入的XML数据解析为行列形式的数据 | 支持指定解析策略,将输入的XML数据解析为行列形式的数据。 | 4.0.9 | |
JSON生成 | 数据转换-高级 | 选择字段,生成JSON对象 | 选择字段,将表单数据,转换为生成多个JSON对象,用户可以在其中配置多层JSON嵌套 | 4.0.19 | |
新增计算列 | 数据转换-高级 | 通过计算生成新列 | 支持对常量、参数和其他字段进行公式计算或逻辑映射,将结果放到新的一列,参与后续运算或进行输出 | 4.0.23 | |
数据过滤 | 数据转换-高级 | 过滤符合条件的数据记录 | 过滤符合条件的数据记录 | 4.0.19 | |
分组汇总 | 数据转换-高级 | 指定维度聚合计算 | 对原始数据根据条件将相同的数据先合并到一组,然后按照分组后的数据进行汇总计算 | 4.1.2 | |
字段拆行 | 数据转换-高级 | 字段值按照特定规则(分隔符)拆分,拆分后的结果形成新的一列字段和值 | 4.1.2 | ||
字段拆列 | 数据转换-高级 | 字段值按照特定规则(分隔符或字符数)拆分,拆分后的结果形成新的多列字段和值 | 4.1.2 | ||
实验室 | Spark SQL | 数据转换-高级 | 核心作用是通过提供灵活的Spark SQL,提高场景覆盖率 | 内置的有Spark 计算引擎,通过提供Spark SQL算子,用户可以: 获取上游输出的数据,使用Spark SQL对其进行查询和处理,并输出给下游 | 3.6 4.0.17 支持作为输入型算子 |
Python算子 | 数据转换-高级 | - | 可调用 Python 脚本进行复杂数据处理 | 4.0.29 |
3.5 步骤流
步骤是由一个个节点组成。
定位 | 功能界限 |
---|---|
步骤流也叫工作流,工作流是对步骤进行编排,每个步骤都是相对独立的,只有执行的先后顺序区别,不会存在数据行的流动 | 步骤都要是闭环的,每一个步骤都是闭环: |
步骤中涉及到的名称解释如下表所示:
归类 | 节点 | 类型 | 定位 | 功能说明 | 起始版本 |
---|---|---|---|---|---|
通用 | 数据同步 | 基础 | 快速完成数据同步(输入、输出),不支持在数据同步过程中做数据转换 | 支持多种类型的取数方式:API 取数、SQL 取数、文件取数等。由于无过程中的数据处理,所以不需要内存计算,适用于:
| 1.0 |
数据转换 | 基础 | 满足表输入和表输出之间需要做数据转换、处理的场景 注:数据转换本身也是一个步骤流节点。 | 在数据同步的基础上,支持在表输入和表输出之间做数据关联、数据转换、数据清洗等复杂数据处理和转换 本质上是数据流,由于过程中涉及到数据处理,需要依赖内存计算引擎,适用于小数据量(千万及以下)的数据开发,并且计算性能与内存配置有相关性 | 3.0 | |
脚本 | SQL 脚本 | 基础 | 将 SQL 语句发放到指定的关系型数据库上并执行 | 通过写 SQL 的形式,完成对表和数据的处理,例如:创建、更新、删除、读取、关联、汇总等操作时 | 1.0 |
Shell 脚本 | 高级 | 使用远程SSH连接,调用远程环境里的可执行Shell脚本 | 通过使用配置好的远程SSH连接,可以选择调用远程环境里的可执行脚sh脚本。 | 4.0.8 | |
Python脚本 | 高级 | 支持直接调用 Python 脚本,当做数据开发任务的能力扩展,比如现在不支持某些文件格式的数据读取方式,先用 Python 程序进行独立的数据处理 | 通过 ssh 连接,配置 Python 文件的文件目录和输入参数,调用 Python 脚本 | 4.0.28 | |
Bat脚本 | 高级 | 使用远程连接,调用远程环境里的可执行bat脚本 | 通过使用配置好的远程连接,可以选择调用远程win环境里的可执行脚bat脚本 | 4.0.29 | |
Kettle调用 | 高级 | 使用SSH连接,调用指定路径下的kettle任务 | 通过使用配置好的SSH连接,可以选择调用指定服务器环境里的可执行kettle任务。 | 4.1.9.2 | |
流程 | 条件分支 | 基础 | 用于在步骤流中进行条件判断 | 基于一个来自于上游或者系统的条件,判断是否继续运行下游的节点 | 2.0 |
调用任务 | 基础 | 调用其他任务,完成跨任务的编排 | 可以调用任意一个任务,被调用的任务被放到当前任务里编排 | 3.2 | |
虚拟节点 | 基础 | 空操作 | 虚拟节点即空操作,可以用于串联上下游都是多分支的场景,也可以用作流程设计 | 1.4 | |
循环容器 | 高级 | 满足多个节点循环执行的场景 | 提供一个循环容器,支持:遍历循环、条件循环 可以让容器内的节点进行循环执行 | 4.0.3.1 | |
参数赋值 | 基础 | 将获取的数据作参数输出 | 可以将读取的数据作为参数输出给下游节点使用 | 1.7 | |
通知 | 消息通知 | 基础 | 自定义通知内容和通知渠道 | 通知渠道:邮件通知、短信通知、平台通知、企业微信通知(群机器人、应用通知)、钉钉通知 通知内容:可自定义 | V3.6 V4.0.1 V4.0.3 |
连线 | 节点连线执行判断 | 基础 | 对上下游执行逻辑进行设置 | 在 步骤流 中,右键点击节点连线,提供「无条件执行」、「成功时执行」、「报错时执行」的节点连线配置 在 步骤流 中,右键点击节点,新增「执行判断」按钮,支持自定义多执行条件的生效方式(全部逻辑与、全部逻辑或),灵活控制任务中节点的依赖关系 | 4.0.3 |
其他 | 备注说明 | 基础 | 在画布中为任务添加备注 | 自定义内容、自定义格式。 | 4.0.4 |
3.6 字段映射
字段映射就是查看或修改源表跟目标表的字段关系,设置目标表数据写入规则。
3.7 并发数
并发数是在 FineDataLink 中同时运行的定时任务和管道任务数。
为保证并发传输高性能表现,CPU线程数可略大于需并发任务数*2
3.8 任务实例
定时任务每运行一次,会生成一个实例,生成的实例可在 运行记录 中查看。
3.9 实例开始构建时间
任务运行时,日志中会输出「实例开始构建时间」。如下图所示:
定时任务若设置了 执行频率 ,调度的时间可能会略早于「实例开始构建时间」。例如设置每天 11:00:00 执行任务,「实例开始构建时间」可能是 11:00:02 。
4. 数据管道编辑
FineDataLink 数据管道提供的实时数据同步功能,方便使用单表或整库同步方式,将源端数据库中部分或全部表的数据变化实时同步至目标数据库中,实现目标库实时保持和源库的数据对应。
4.1 传输队列
在进行实时同步过程中,需要通过「数据管道」暂存来源数据库中的数据,便于目标数据库写入数据,实现实时数据同步。
因此在设置数据管道任务前需要首先配置好暂存数据的中间件。FineDataLink 使用 Kafka 作为数据同步的中间件,暂存传输数据。
4.2 脏数据
4.2.1 定时任务中脏数据定义
1)与目标字段配置不匹配而无法写入的数据(目标字段长度/类型不匹配、目标字段缺失、违反目标字段非空约束等)。
2)当写入方式-主键冲突策略为「主键相同,记录为脏数据」时,主键冲突的数据将被视为脏数据。
4.2.2 管道任务中脏数据定义
与目标字段配置不匹配而无法写入的数据(目标字段长度/类型不匹配、目标字段缺失、违反目标字段非空约束等)。
注:对于管道任务,主键冲突不会产生脏数据,主键相同的数据,新数据将覆盖旧数据。
5. 数据服务编辑
数据服务支持将处理好的数据一键发布 API 接口,实现数据跨域传输,解决数据传输最后一公里问题,为用户提供数据共享能力。
5.1 APPCode
FineDataLink 特有的 API 鉴权认证方式。APPCode可视为长期有效的一种Token。若设置后对指定应用 API 生效。
在访问API时,需要在请求头中指定Authorization请求头的值:APPCode + 空格 + APPCode值。
详情参见:进行认证配置