ETL平台案例实战.docx

上传人:b****5 文档编号:27970538 上传时间:2023-07-07 格式:DOCX 页数:12 大小:38.16KB
下载 相关 举报
ETL平台案例实战.docx_第1页
第1页 / 共12页
ETL平台案例实战.docx_第2页
第2页 / 共12页
ETL平台案例实战.docx_第3页
第3页 / 共12页
ETL平台案例实战.docx_第4页
第4页 / 共12页
ETL平台案例实战.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

ETL平台案例实战.docx

《ETL平台案例实战.docx》由会员分享,可在线阅读,更多相关《ETL平台案例实战.docx(12页珍藏版)》请在冰豆网上搜索。

ETL平台案例实战.docx

ETL平台案例实战

ETL平台案例实战

Lab1任务开发和调测

1.1通过插件配置完成一个简单的ETL开发.......................................................

1.2手动本地方式运行ETL...................................................................................

1.3跟踪本地方式运行日志..........................................................................

1.3强制停止本地方式任务实例.........................................................................

1.4手动远程方式运行...................................................................................

1.5跟踪远程实时运行日志................................................................................

1.3强制停止远程方式任务实例.........................................................................

1.4使用JS插件动态获取时间变量.....................................................................

1.4添加注释……………………….....................................................................

1.6小结(Lab1)..............................................................................................

Lab2流程设计和调测

2.1创建一个单层流程......................................................................................

2.2创建一个多层的流程.................................................................................

2.3增加一个数据校验点

2.4增加一个数据校验点

2.5增加异常告警点

2.6小结(Lab2)..............................................................................................

Lab3流程监控

2.1增加一个监控视图......................................................................................

2.2通过监控视图查看流程执行状态..............................................................

2.3查看流程运行时间记录............................................................................

2.3查看校验点输出结果….............................................................................

2.3定位异常................................................................................................

2.3重处理任务................................................................................................

2.6小结(Lab3)..............................................................................................

Lab1任务开发

目标:

将表从数据源库复制到本地库。

1.登陆进入ETL平台,切换到“设计”场景下;

2.展开目录,定位到目录“09测试”下“lab”子目录;

3.右键单击“lab”子目录,选择“新建任务”,弹出任务设计视图,按Ctrl+S或工具栏上的保存按钮进行保存,命名为“T-lab01”,按确定后确认保存成功;

4.切换左侧TAB页签至“插件”栏下,依次从“输入”文件夹拖入“表输入”插件,从“表输出”文件夹中拖入“表输出”插件;

5.选中右侧设计区中“表输入”插件实例,按住shift键同时按下鼠标连接至“表输出”,再次保存;

6.双击“表输入”插件,进入插件参数配置界面。

点击“新建”按钮新建出源表所在的数据库连接,假定源表在166的crm_inter用户下:

将数据库连接取名为LAB(166_crm_inter)

7.点击“测试”,确认配置正确。

点击“确定”返回,在当前页面,再次点击“数据库连接”后的“新建…”按钮,按6同样的方法新建出目标库,这里假定是134的eda用户下,连接名取为“LAB(134_eda)”

8.返回到“表输入”插件配置表单。

将名称改为带业务含义:

“主产品实例源表(562)”,

数据库连接选择“LAB(166_crm_inter)”,在SQL域填入以下内容:

SELECTPRD_INST_ID,PRD_INST_NAME,PRD_INST_DESC,PRD_INST_TYPE_ID,SERVICE_NBR,PHYSICAL_NBR,CUST_AGREEMENT_ID,REGION_ID,SERV_REGION_ID,EXCH_ID,RES_ZONE_ID,URBAN_FLAG,URGE_CD,PRD_INST_STAS_ID,PAY_CUST_ID,USE_CUST_ID,OWN_CUST_ID,CRT_DATE,EFF_DATE,EXP_DATE,MOD_DATE,EFF_STATE,LATN_ID,PRD_ID,OFR_ID,COMPLETE_DATE,SERV_NUM,INSTALL_ADDR,STAND_ADDR,ORDER_ID,CONTRACT_ID,EVOLUTION_PTY_ID,ACCT_ID,USER_BILL_ID,USER_TYPE_ID,USER_KIND_ID,ACCEPT_DATE,ACCEPT_EMPEE_ID,ACCEPT_TYPE_COD,INSTALL_DATE,INSTALL_EMPEE_ID,SUPP_ADDR_DESC,SEND_STATUS,LAST_ORDER_ID,DEV_EFP_DATE,DEV_EXP_DATE,BESP_DATE,BESP_SYMBOL,BILL_DATE,BILL_XCHG_ID,PAY_CYCLE,USER_ACCOUNT,IF_PREPAY,IP_FLAG,BASIC_STATE,EXT_STATE,VOICE_AOC_TYPE,DATA_AOC_TYPE,ISMP_AOC_TYPE,SMS_AOC_TYPE,USE_CUST_NAME1,USE_CUST_NAME2,USE_CUST_NAME3,BUSI_NAME,USE_ADDR,IF_IVPN,LOAD_DATE,LOCAL_PARTITION_IDFROMtb_prd_prd_inst_d_562WHERErownum<=100000

这里表示从源表中复制所有字段,暂取其中的10万行记录;点击“预览(P)”按钮进入数据查看窗体,以此验证SQL配置正确性;

9.在SQLPlus或PL/SQLDeveloper中通过语句创建出目标表:

createtabletb_prd_prd_inst_d_562asselect*fromcrm_inter.tb_prd_prd_inst_d_562@edwwhere1=2;

10.点“确定”后返回,双击“表输出”,按下图输入配置内容,切换至“数据库字段”,点击“获取字段”,所有的默认映射关系已按顺序自动建立。

1.2手动启动本地执行

1.双击“主产品实例接口表(562)”插件实例打开参数编辑状态,基于本地机器性能和网络考虑,临时修改“提交记录数量”为100,表示每100条提交一次,便于看到演示效果;

2.通过点击任务设计区左上角启动按钮,弹出“执行任务对话框”;

3.选择“本地执行”;

4.选中“执行前清理日志”,选择“详细日志”级别;

5.点击“启动”。

1.3实时跟踪本地方式运行实例的执行情况

启动一旦生效,可以看到以下几类执行信息:

1、点击设计区下方“执行结果”栏“执行历史”页签中左上角刷新按钮,可看到当前正在运行的任务实例,以start状态体现,每执行一次这里就会产生条记录;

2、设计区下方“执行结果”栏“日志”页签中显示的是当前实例的实时日志;

3.设计区下方“执行结果”栏“步骤Metrics”显示的是当前任务的步骤信息、记录数信息,动态刷新;

同时通过语句在SQLPlus或PL/SQLDeveloper中查询到目标端的插入记录数;

selectcount(*)fromtb_prd_prd_inst_d_562t

4、任务执行期间,点击任务页签上的叉号,关闭当前任务设计窗体,

通过资源库目录点击再次打开该任务,查看“执行历史”、“日志”和“步骤Metrics”页签内容,刷新到最新状态,可看到当前任务仍处于执行状态,但日志和步骤信息清零;

稍等片刻后,日志出现“任务完成”信息。

上述过程说明,在本地执行时,关闭当前窗体并不关闭任务的执行。

退出平台时,手动方式启动的本地执行实例会自动停止。

5、设计区下方“执行结果”栏“执行历史页签”中,点击已运行完状态为end的实例,在最底下可看到日志信息,处于start状态的日志则没有。

1.4手动启动远程执行

1.点击“当前对象”,右击“子服务器”文件夹“新建”,进入“子服务器对话框”配置界面;

配置如下参数:

配置好的服务器将在远程执行对话框中可选;

2.双击“主产品实例接口表(562)”插件实例,修改“提交记录数量”为10000;

3.通过点击任务设计区左上角启动按钮,弹出“执行任务对话框”;

4.选择“远程执行”及服务器;

5.点击“启动”。

1.5实时跟踪远程方式运行实例的执行情况

1、启动生效后,会自动弹出运行服务器上的实例监控页签,展开任务目录,可以看到当前任务处于Running状态,并有记录数实时提示;

点击“刷新”按钮可以实时看最新的状态信息;

2、选中任务”T-lab01”中的一个步骤,可在下方看到实时输出日志;

3、通过关闭叉号关闭当前监控页:

4、切换至“当前对象”下,通过子服务器右键菜单“监控”,再次激活出“监控”页签;

5、点击设计区下方“执行结果”栏“执行历史”页签中左上角刷新按钮,可看到当前在远程运行的实例同样存有记录,以start状态体现;

2、设计区下方“执行结果”栏“日志”页签中可以看到远程实例的启动时刻信息;“步骤Metrics”无法显示远程执行的任务的步骤信息;

3、退出平台,重新登录,观察正在运行的流程实例是否终止。

Lab2流程设计

目标:

串联Lab1中完成的任务和一个外部程序,形成一个简单可执行的流程。

1.双击Lab1中的任务实例打开,通过另存为形成lab目录下的副本,存为“T-lab02-01”,在Lab2的后面将会引用并做少量调整;

2.右键lab文件夹,选中“新建流程”,新建出一个流程,ctrl+s存为“J-lab02-01”;

3.左边资源页签切换至“插件”,拖入“通用”->“START”插件,切换至“资源库”,选中LAB1中的案例;切换回“插件”页签,拖入“脚本”->“shell”插件;连线成如下形式;

4.配置shell1参数内容,使其指向我们的一个外部程序,参数暂时制定常量值;

5.修改节点名称成如下形式,便于理解。

现在一个流程已经设计完成。

下面我们开始流程的测试。

6.为了快速看到效果,将第一个任务的记录数限制到10万行;

7.点击启动按钮,由于脚本在远程主机服务器上,因此只能选择“远程执行”;

8.启动后,自动弹出的服务器监控中心中,可以找到对应的流程和任务记录:

同样,在执行结果栏中,刷新后能看到执行记录:

9.右键设计区的任务实例:

可以看到下方“执行结果”区域有该任务的执行记录,每运行一次产生一条记录;

再次查看监控中心日志:

待完成后,通过SQL语句查询结果表数据:

select*fromlab_ft_prd_instt

2.2创建一个多层的流程.................................................................................13

目标:

我们将引用Lab2.1中的流程,模拟全省数据的处理流程。

先并行做完3个地市的数据处理后,再做下一步的环节。

单本地网做接口表抽取、基础集市表数据整合,全省做完这两步后,再进行基础集市表向汇总集市表的生成。

1.双击T-lab02-01中的任务实例打开,通过另存为形成lab目录下的副本,存为“T-lab03-01”,在该例子中我们将对其做少量调整;

2.打开“T-lab03-01”的“任务设置”选项;

3.通过“参数”页签增加p_latn变量,使其成为可被复用的任务;

4.修改任务名称如下:

5.修改任务配置内容,使其中的562以变量形式替换:

6.现在可以测试该任务,远程方式启动,在p_latn参数中输入562:

通过弹出的服务器监控页签确认任务正确运行完毕;

将“J-lab02-01”另存为“J-lab03-01”,修改其中的结点名称及配置项信息:

增加流程“J-lab03-01”的预设参数:

现在我们可以测试一下流程的执行情况,仍然选择远程方式启动。

该流程需输入日期和本地网两个参数。

通过弹出的服务器监控页签确认任务正确运行完毕;

7.新建一个流程,保存为“J-lab03-02”。

在其中重复拖出三份J-lab03-01(可配置好一个后复制),并做如下连线,模拟并行方式运行三个地市的数据:

其中J-lab03-01实例的配置参考,564,566规则一致;

设定并行方式运行:

连线变成虚线即为生效。

预设“J-lab03-02”自身的流程参数:

8.现在我们可以测试一下“J-lab03-02”的运行情况:

9.发现运行出错,其中除了562运行正确外,其它都是错,原因是接口目标只建了562的。

补充其它两张表的建立:

createtabletb_prd_prd_inst_d_564asselect*fromcrm_inter.tb_prd_prd_inst_d_564@edwwhere1=2;

createtabletb_prd_prd_inst_d_566asselect*fromcrm_inter.tb_prd_prd_inst_d_566@edwwhere1=2;

再运行一次,确认成功后,通过SQL语句统计结果信息:

selectlatn_id,count(*)fromlab_ft_prd_instgroupbylatn_id;

新建一个流程,命名为“”保存,拖入以下结点再保存;J-lab03-02作为这里的一个子流程;

为汇总脚本程序录入信息:

向“J-lab03-02”子流程传递参数:

为“J-lab03-03”当前流程预设参数:

到此,我们可以对J-lab03-03进行测试,运行完毕后,可以执行以下语句确认结果:

selectlatn_id,count(*)fromlab_dm_serv_numgroupbylatn_id;

Lab3流程监控

1.新建一个监控视图

2.右键视图设置:

重命名为LAB01,

3.从资源库中拖入我们已设计好的流程“J-lab03-03”,通过画框和颜色设置功能调整外观;

4.保存并发发布监控视图:

5.切换到“监控”场景下,从左侧“监控”目录定位到“LAB01”,双击打开。

可以看到绿色的状态脚标,这是我们之前运行成功的记录,由于监控周期设置为一天,显示的一天内能找到的最新的实例状态。

6.双击“J-lab03-03”流程,打开流程明细;

可以看到,其中的子流程和脚本任务都是运行正常的;并且在下方运行结果中可以看到运行的开始时间、结束时间、耗时。

7.再双击“J-lab03-03”流程中的“J-lab03-02”流程,查看子流程明细;

现在重启整个流程,查看各流程和任务的处理状态;

8.在“J-lab03-03”

9.切换至监控视图页,逐层查看各层的状态,看是否与下列图片符合:

稍等片刻,所有结点又会变成成功的绿色图标。

现在我们演练一下流程报错的情况,查看各流程和任务的处理状态;

10.通过SQL语句删除掉其中一个中间表:

droptabletb_prd_prd_inst_d_566;

11.在“J-lab03-03”

12.切换至监控视图页,逐层查看各层的状态,看是否与下列图片符合:

现在我们演练一下重运行处理的操作。

新增加一个数据校验点.

13.转到”设计”场景下,打开“J-lab03-03”流程,通过”资源库”下,增加一个Gereral->DataVerify插件。

首先,我们希望校验结果表中3个地市的数据是否全部到位,下面将在拖出的校验插件上配置这样的规则项:

14.双击校验插件,重命名名称为“资料结果汇总校验”,单击“添加规则”按钮;

15.在弹出的表单中重命名为“数据完整性校验(全省数据是否到位)”;

16.进行规则SQL项的配置:

在ETL平台的校验设计体系下,所有的校验被抽象成一双成对的数据集比对过程,这两个数据集分别由两个自定义的SQL查询语句来驱动,并通过匹配键值自动进行数据关联,对每一条结果集记录判断是否通过按预设规则。

同时,输出结果可以按照自定义的表头设定显示,形成一张直观的小型报表。

校验支持多记录、多维度、多度量指标、内嵌变量。

该例中,校验对象值是当前数据中不同本地网个数,参考对象值为常量3,不存在匹配的维度字段,由于统一设计的考虑,需要虚拟出一个’*’字段,用作校验对象与参考对象的匹配键,并取别名ColId。

校验对象:

SELECT'*'asColId,

count(DISTINCTlatn_id)aslatn_count

FROMlab_dm_serv_numa

WHERE

参考对象:

SELECT'*'asColId,

3asRef_count

FROMduala

设置“校验对象”查询SQL,配置后点击“SQL结果预览”验证是否输出征程。

注意:

这里的SQL语句不允许以;号结束。

设置“参考对象”查询SQL。

在“校验结果”页签中,进行校验对象与参考对象结果集关联键的设置过程,选定COLID作为关联键,删除其它字段。

按图示的1、2、3、4、5操作顺序配置如下。

5中表达式定义的规则为:

将当前值与参考值(这里是3)进行加减运算,结果值一定要为0,否则视为校验失败。

在“输出结果”页签中配置输出结果的表头显示信息,按照业务需要定义如下:

我们现在可以将整个“J-lab03-03”流程运行一次,待校验插件执行成功后,通过右键“查看校验结果”查看结果信息。

当看到如下信息时,标明配置过程是成功的。

上面的规则只设计到对一个单记录与常量进行比较,下面将演练一个更为典型的校验场景。

17.双击现有校验插件实例,增加一个新的规则,命名为“按地市校验用户数波动”。

配置目标是:

拿今天的数据按地市groupby聚合统计用户数,与昨天进行比较,在产品类型粒度进行逐个比较,查看是否存在波动较大的情况。

设置校验对象:

SELECTlatn_id,sum(serv_num)asserv_num

FROMlab_dm_serv_numa

WHERE

groupbylatn_id

设置参考对象:

(这里直接用当日数据模拟前日数据)

SELECTlatn_id,sum(serv_num)+1000asserv_num

FROMlab_dm_serv_numa

WHERE

groupbylatn_id

设置关联字段和校验公式,这里我们设置阀值为正负10%以内;

设置结果输出表头信息,这里我们可以选定波动比#.##格式保留两位小数

再次运行流程,验证是否能输出如下记录;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1