1. 概述
1.1 应用场景
用户想了解某个管道任务是谁编辑的、编辑时间、断点相关信息等,FDL 工程内的 管道任务运维 无法满足需求。
1.2 实现思路
用户可根据实际需求,使用 FineDB 数据库中的数据管道表 ,筛选出需要的字段,最后将多张表进行关联即可。
1.3 任务展示
FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 中的定时任务:「BI仪表板展示管道任务信息」。
使用 FDL 输出的数据,制作的仪表板如下图所示:
详情请参见:https://demo.fanruan.com/decision 中的「BI仪表板展示管道任务信息」。
2. 操作步骤
2.1 场景模拟
本文示例最终形成的宽表中包含以下字段:
字段 | 使用到的表 | 对应表字段 | 进行关联的字段 |
---|---|---|---|
操作类型 | fine_dp_operate_history | operate_type | task_id |
操作用户 | operate_user | ||
任务名字 | task_name | ||
任务路径 | task_path | ||
操作时间 | operate_time | ||
断点类型 | fine_dp_pipeline_savepoint | TYPE | TASK_ID |
断点保存的值 | VALUE | ||
断点创建时间 | CREATE_TIME | ||
断点更新时间 | UPDATE_TIME | ||
表字符编码 | fine_dp_pipeline_schema | TABLE_CHARSET | TASK_ID |
表名称 | TABLE_FULL_NAME | ||
断点位置 | POSITION | ||
提交时间 | COMMIT_TIME |
2.2 取出表字段
注:本文方案适用于 FineDB 数据库已迁移到 MySQL 的场景,不适用于内置 FineDB 数据库;实际场景中,用户按需调整 SQL 语句。
1)新建定时任务,拖入「数据转换」节点,进入「数据转换」节点。
2)拖入「DB表输入」算子,取出 fine_dp_operate_history(任务操作历史记录表)中所需的字段。如下图所示:
将 operate_time 字段的时间戳格式转换为日期格式,过滤出任务类型是数据管道的数据。
select operate_type as 操作类型,operate_user as 操作用户,task_id,task_name as 任务名字,task_path as 任务路径,
DATE_FORMAT(FROM_UNIXTIME(`operate_time` / 1000), '%Y-%m-%d %H:%i:%s') AS 操作时间
from `demo1`.`fine_dp_operate_history` where task_type='PIPELINE_DEVELOP'
点击「数据预览」,如下图所示:
3)再拖入一个「DB表输入」算子,取出 fine_dp_pipeline_savepoint(管道任务断点续传配置表)中所需的字段。如下图所示:
将 CREATE_TIME、UPDATE_TIME 字段的时间戳格式转换为日期格式。
select TYPE as 断点类型,VALUE as 断点保存的值,TASK_ID,
DATE_FORMAT(FROM_UNIXTIME(`CREATE_TIME` / 1000), '%Y-%m-%d %H:%i:%s') AS 断点创建时间,
DATE_FORMAT(FROM_UNIXTIME(`UPDATE_TIME` / 1000), '%Y-%m-%d %H:%i:%s') AS 断点更新时间
FROM `demo1`.`fine_dp_pipeline_savepoint`
点击「数据预览」,如下图所示:
3)再拖入一个「DB表输入」算子,取出 fine_dp_pipeline_schema(数据管道表结构变化依赖表)中所需的字段。如下图所示:
将 COMMIT_TIME 字段的时间戳格式转换为日期格式。
select TABLE_CHARSET as 表字符编码,TABLE_FULL_NAME as 表名称,POSITION as 断点位置,TASK_ID,
DATE_FORMAT(FROM_UNIXTIME(`COMMIT_TIME` / 1000), '%Y-%m-%d %H:%i:%s') as 提交时间
FROM `demo1`.`fine_dp_pipeline_schema`
点击「数据预览」,如下图所示:
2.3 表关联
将 2.2 节三张表使用「数据关联」算子关联起来,形成一张宽表。
「数据关联」算子设置如下图所示:
2.4 删除无用字段
拖入「字段设置」算子,将连接字段 task_id、TASK_ID1、TASK_ID2字段删除。如下图所示:
2.5 输出数据
1)拖入「DB表输出」算子,将处理后的数据输出。如下图所示:
写入方式选择「追加写入数据」即可。
2)点击右上角「保存」按钮。
2.6 效果查看
1)点击「保存并运行」按钮,任务运行成功后,目标表数据如下图所示:
2)BI 中,可根据目标表做仪表板展示管道任务信息。如下图所示: