1. 概述编辑
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.0.4.2 | 「数据同步」节点和「DB表输出」算子的「数据去向」界面新增「在FineBI公共数据中自动创建ETL结果表」按钮,勾选配置后,ETL 任务输出时可快速同步数据到 FineBI |
4.0.21 | 勾选「在FineBI公共数据中自动创建ETL结果表」按钮后,表名称数据连接名_数据库表名调整为数据连接名_库名(模式名)_表名 |
1.2 应用场景
FineDataLink 与 FineBI 集成部署 时,用户希望 ETL 任务处理好的数据可以快速给 FineBI 使用。
用户希望数仓/中间表数据更新后,FineBI 中抽取性质的基础表也更新,只需要给 ETL 任务配置一个调度,然后 FineBI 中的基础表数据就可以及时更新。
1.3 功能简介
ETL 任务输出时可快速同步数据到 FineBI。
输出到 FineBI 的结果表,表属性若为抽取数据,表数据将跟随 ETL 任务更新。
2. 操作步骤编辑
本文示例操作:将「数学成绩」表和「英语成绩」表进行左连接,关联后的新表输出到 Oracle 数据库中,且将新表数据同步到 FineBI 中。
2.1 数据连接准备
在集成工程中,配置来源数据库和目标数据库,分别为:test_2、oracle 。其中,示例数据放在 test_2 数据库中;4.0.21 及之后版本,目标数据库不能为 MySQL 数据库,即数据不能输出到 MySQL 数据库中。如下图所示:
2.2 新建定时任务
1)新建定时任务,拖入「数据转换」节点。如下图所示:
2)点击进入「数据转换」节点。
2.3 数据输入
1)拖入「DB表输入」节点,读取「数学成绩」表数据。如下图所示:
2)再拖入一个「DB表输入」节点,读取「英语成绩」表数据。如下图所示:
2.4 设置数据关联
拖入「数据关联」算子,与两个「DB表输入」算子相连。
连接方式选择「左连接」,具体介绍可参见:数据关联;连接字段就是两张表的关联字段,可以设置多个,多个连接字段为且的关系,此处设置连接字段为「姓名」。如下图所示:
点击「数据预览」,可查看关联后的数据。
此处看到姓名重复,可在「DB表输出」算子的「字段映射」中删除「姓名1」字段。
2.5 数据输出
1)拖入「DB表输出」算子,与「数据关联」算子相连。
2)将关联后的数据输出到 oracle 数据连接的 chengji 表中,chengji 表是选择「自动建表」生成的,写入方式选择「追加写入数据」。FineBI 输出配置如下:
由于我们希望将处理好的数据也同步到 FineBI 中,所以勾选「在FineBI公共数据中自动创建ETL结果表」按钮。
抽取数据:ETL 结果表将跟随 ETL 任务更新;实时数据:ETL 结果表本质为直连数据库表,实时读取表数据。此处我们选择「抽取数据」,FineBI 中的 ETL 结果表跟随 ETL 任务更新。
表名称:4.0.21 之前版本,表名称默认为数据连接名_数据库表名;4.0.21 及之后版本,表名称默认为数据连接名_库名(模式名)_表名
表存储路径:FineBI 中的 ETL 结果表保存在「公共数据」中的位置,本文示例是保存到「公共数据」中的「文档数据」文件夹中。
3)点击「字段映射」,删除「姓名1」字段。如下图所示:
4)点击右上角「保存」按钮。
2.6 结果展示
1)点击「保存并运行」按钮,任务运行成功后,日志如下图所示:
2)可以看到 Oracle 数据库中新增 chengji 表。如下图所示:
3)点击「公共数据」,在「文档数据」中可以看到etlwendywai_BItongbu表。如下图所示:
3. 功能说明编辑
3.1 设置项说明
可以将定时任务输出的数据,也同步到 FineBI 中。即任意一个抽取\实时的 ETL 结果表,必对应唯一一个数据连接中的数据库表。设置界面如下图所示:
3.1.1 FineBI 输出配置位置说明
「数据同步」节点的「数据去向」界面
「DB表输出」算子的「数据去向」界面
这两个地方都存在「FineBI 输出配置」界面,即可以将定时任务输出的数据,也同步到 FineBI 中。
3.1.2 输出至BI
「在 FineBI 公共数据中自动创建 ETL 结果表」按钮,默认不勾选,勾选后,在 FineBI 公共数据中自动创建 ETL 结果表。
3.1.3 表属性
抽取数据:ETL 结果表将跟随 ETL 任务更新。
实时数据:ETL 结果表本质为直连数据库表,实时读取表数据。
如果要创建的 ETL 结果表在 FineBI 中已有 DB 表(实时\抽取),那么禁止用户再创建同属性的 ETL 结果表。
3.1.4 表名称
直接显示表名,不可编辑。
1)表名称显示逻辑
输出表在 FineBI 中不存在 ETL 结果表时需要新建,表名默认为数据连接名_数据库表名
输出表在 FineBI 中已经存在对应的 ETL 结果表,那么直接获取对应的表名和路径。
2)表重命逻辑
建表时若遇到同名表,遇同名时加1,如果加1依然同名则加12,如果依然同名则加123,以此类推。
3.1.5 表存储路径
1)下面两种情况下表路径灰化,不能选择:
首次运行后,输出表未变化时打开配置界面。
进行配置时,已存在输出表对应的 ETL 结果表。
2)若用户手动移动 ETL 结果表到新的业务包,则打开 ETL 任务时,展示最新的路径。
3.2 输出到 FineBI 的结果表说明
1)编辑表
同 DB 表类型,可基于抽取过来的原始表做进一步编辑处理,支持的操作:选字段、字段类型转换、字段设置。
2)移动表
可以将 ETL 结果表移动到其他分组、业务包下,移动表不会更改表类型及其与 ETL 任务的连线。
3)血缘关系
在 ETL 结果表中,可以快速打开 ETL 任务并定位至对应节点。
支持快速跳转到数据平台中,打开对应的 ETL 任务。
4)关联视图
可以像其他表类型一样,配置关联视图。
5)更新逻辑
ETL 结果表不可配置单表更新,能够被 ETL 任务触发更新,能够跟随业务包、跟随全局更新。
ETL 结果表更新后,使用 ETL 结果表做的自助数据集等子孙表可以关联更新,此逻辑和 FineBI 的父表拉起子表的更新逻辑保持一致。
6)权限逻辑
与输出到 FineBI 结果表相关的权限有两个:
权限1:ETL 任务的管理权限(包含了查看和编辑权限)
权限2:FineBI 的权限,分组\业务包的管理权限和表的使用权限
场景 | 在 ETL 任务中新建 FineBI 输出配置 | 编辑 FineBI 输出配置(配置已存在,被其他有权限的人配置的) |
---|---|---|
具备权限1,不具备权限2 | 无法操作 | 可在 ETL 任务中:查看配置,可删除配置 不可在 ETL 任务中调整配置,调整配置时会告知其无权限 |
具备权限2,不具备权限1 | 无法操作(因为不能新建 ETL 任务) | 不能查看 ETL 任务,因此也不能查看和编辑配置 可以在 FineBI 中正常使用 ETL 结果表 |
权限1和权限2都不具备 | 无法操作 | 无法操作 |
权限1和权限2都具备 | 可操作 | 可操作 |
7)其他说明
如果数据库中某张表已经被添加至 ETL 结果表,则不能再添加为 DB 表。
3.3 特殊场景处理策略
假设已存在下面情况:
来源数据连接:ODS1
来源表:Table_08
来源定时任务:Task_08
ETL结果表:Table08
场景 | 处理策略 |
---|---|
新建了一个ETL任务 Task_09,其输出指向 Table08 | ETL结果表 Table_08 有两个ETL任务来源:Task_08、Task_09 |
将输出至BI的配置进行调整,将表属性从「抽取」改为「实时」 | ETL结果表 Table_08 丢失了其来源的定时任务,将其标记为异常状态 任务再次运行时,会新建一张实时的 ETL 结果表 Table_081 |
用户删除了定时任务 Task_08 或者 用户修改了定时任务,输出端指向了 Table09 | ETL结果表 Table_08 丢失了其来源的定时任务,将其标记为异常状态 |
用户删除了来源表 Table_08 | Task_08运行会报错,ETL结果表 Table_08也因此无法更新 |
用户删除了ETL结果表 Table08 | 如果ETL任务里的配置还在,再次打开时表路径会填充,重新运行定时任务时新建一张ETL结果表 |
用户将 ETL 结果表 Table08 改成为了 Table888 | 定时任务 Task_08 里的表名自动显示为最新,并且不影响 ETL 任务运行 |