页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 7 下一个 »


1、概述

在项目实施过程中发现,很多客户都有自己的ETL工具(外部ETL),往往是外部ETL工具跑完之后,Smartbi的作业流才开始跑,所以需要一个”标识“告诉Smartbi 作业流可以开始跑了;而这个”标识“客户可能会存在FTP上的文件形式存在,也可能是在日志表的某个状态。为了获取这个“标识”,根据不同的场景,解决方案有也不一样。

                   

2、场景举例:存在ftp的文件标识

某银行项目,客户有自己的ETL工具,会设置时间频率跑定时任务,跑完会把定时任务文件输出到ftp下,并且会生成一个OK文件;如果存在了ok文件,那么则认为,这个外部任务已跑成功,数据已写入完成。

此时smartbi需要去检测是否存在ok文件,如果存在,才可以继续往下执行作业流。

2.1 功能介绍

在作业流左侧增加了”检查文件存在”的节点,如下图:

可以通过配置ftp读取信息读取指定文件,如果不存在则不执行并且抛出错误,如下图,并且根据“定时作业”设置的失败重试机制会重复执行,直到成功或者失败重试次数用完为止。

设置定时作业流可查看:详情

相反如果获取到对应的标识则继续往下执行,直到所有的节点都执行完:如下图

以下是“检查文件存在”节点的配置界面字段说明:

序号选项备注
1ftp服务器IP或主机名ftp地址
2用户名/密码默认是匿名用户:anonymous,密码可随便填写
3文件路径ftp下的绝对路径;不是读取文件数据,而是判断文件存在不存在

3、场景举例:日志表动态获取状态标识

在项目实施过程中发现,很多客户都有自己的ETL工具(外部ETL),往往是外部ETL工具跑完之后,Smartbi的作业流才开始跑;而有些客户外部ETL工具每天跑完会在数据库里面生成一张表,表里面的信息包括ETL日期、ETL执行时间、ETL状态(状态码示例:0失败 1成功)等,那Smartbi 怎么通过动态的参数是获取到这个”状态“呢?

3.1、功能介绍

某项目,客户有自己的ETL工具,会设置时间频率跑定时任务,跑完会每定在指定表生成一条记录,记录的状态1为成功,其他值则代表失败,如下表格:

日期

状态

执行时间

2022-02-0102022-02-01 01:13
2022-02-0112022-02-01 02:10

而Smartbi 通过作业流的参数支持动态参数(公共参数)获取当前日期,根据当前日期,再结合“检查字段值”节点,通过SQL语句查询状态

首先先在Smatbi“公共参数”新增一个获取动态日期的参数“date”

再到作业流中参数界面新增参数“date”,并且与公共参数进行关联,如下图:

序号功能选项说明
1参数入口

点击图标

1参数名必填
2参数类型

分类“值”、“参数”

值:枚举型,即具体某一个值,可以是整形、字符串、日期等等

参数:通过公共参数定义的参数来获取值

3参数定义

根据“参数类型”显示,如果是参数类型是“值”,则显示数据类型

如果参数类型是“参数”,则可选择具体的参数

4参数值

如果想要实现动态获取参数值,参数值不需要填写; 如果想实现静态值,则直接输入具体的值


参数+“检查字段值”节点的sql脚本: 把参数值动态带入到SQL语句中,实现根据动态条件查询状态

如果值为"1"的话,则继续执行,如果不为1,则不往下执行


  • 无标签