当前位置: 首页 > news >正文

免费的java资源网站网络公司网站建设

免费的java资源网站,网络公司网站建设,免费咨询范围,六安城南疫情最新消息一、背景: 用户经常会针对数据存在质量的存疑,反馈数据不准。开发人员排查数据质量问题步骤:首先和业务人员对接了解是哪里数据不准确,要定位是哪张报表,然后查看报表后面数据来源,然后一路排查数仓。往往定…

一、背景:

        用户经常会针对数据存在质量的存疑,反馈数据不准。开发人员排查数据质量问题步骤:首先和业务人员对接了解是哪里数据不准确,要定位是哪张报表,然后查看报表后面数据来源,然后一路排查数仓。往往定位到数据问题耗时比较高,开发断层导致找到相关任务比较难。

二、解决办法:

        通过血缘解析,把报表数据来源去向的信息都提取出来,方便:开发人员迅速找到相关任务。

三、解决思路:

        Kettle的转换和作业存储底层是通过xml实现。作业是由转换组成,转换由组件组成。可以通过解析xml找到来源表和去向表。帆软Finereport的报表cpt和 frm底层存储也是xml,可以解析xml获取数据集,解析sql获取到表和字段。最终得到报表名,报表路径,数据库表,数据集。

tips:还可以进一步解析作业调度(主流调度工具:crontab,airflow,azkanban,ooize)可以解析出作业调度信息。

四、具体实现:

  4.1.Kettle血缘:

        首先要找到输入输出组件,一般输入组件包含如图 4-1所示,输出如图 4-2所示(实际转换中还可能使用追加流或者SQL脚本,这里只说常见的) 。一般Kettle转换(输入输出组件不同找到来源和目标方式不同)如图 4-3 所示。我们以文本编辑器打开转换文件Ktr,会以图 4-4 所示 。 如果内容比较乱,可以找一个xml解析工具格式化一下。可以清晰的看到转换是存在<step>节点里,如图 4-5所示。根据里面的<type>找到输入和输出组件。然后输入如果是表输入,通过sql查询的,用sql parser解析获取到表和字段信息。数据连接是存在<connection>节点里(这里如果数据以JNDI的方式存储的需要解析JNDI文件获取到数据配置信息),如图 4-6所示,可以获取到数据库信息。组件连接信息是在<order>节点里面(这里比较复杂是要考虑数据分发和数据复制)。这样一个完整的转换解析就完成。作业同理。一般作业和转换是发布在服务器上,需要遍历服务器目录下所有的以ktr和kjb结尾文件。

图 4-1

图 4-2

图 4-3

图 4-4

        

图 4-5

图 4-6

4.2 FIneReport血缘:

        FineReport报表存储文件是以cpt和frm结尾,以文本编辑器打开,如图 4-7所示。可以找到数据集是存在<TableData>节点下,可以拿到查询的sql,然后用sql parser解析获取到表和字段,在<DatabaseName>里面可以拿到数据连接名,这里可以在帆软内置库中找到数据连接名的具体链接信息,用于打通和Kettle之间的联系。

图4-7

图 4-8

4.3 调度解析:

        调度工具比较多,这里讲一下Crontab和Airflow。Crontab一般会可以通过crontab -l 命令获取调度的信息。解析信息可以拿到作业的计划调度时间(更深一层可以考虑获取作业执行日志拿到实际调度时间。然后针对调度进行运营管理)。Airflow由内置数据库,可以获取到作业和调度信息,然后去找到作业文件找到具体的作业(这里不过多介绍Airflow,只讲一下思路)。

五、实现效果:

        以上所有数据和获取到进行加工处理。最终展示如表 4-1所示:

表 4-1

来源层   来源表  来源字段目标层目标表目标字段作业名计划调度实际调度
SAPKNALfleld1ODSods_sap_knalfleld2job1* * * * 8* * * * 8
ODSods_sap_knalfleld2DWDdwd_custom_detdfleld3job2* * * * 10* * * * 10
DWDdwd_custom_detdfleld3DWSdws_custom_detdfleld4job3* * * * 11* * * * 11
DWSdws_custom_detdfleld4FRcustom.cptfleld5* * * * 12* * * * 12

以上列表只是参考,实际有很多复杂情况。

关于上表每行解释:

  1. 来源层,这个数据一般是系统名和数仓名。这里数仓名一般是通过解析表明获取到。可以参考数仓规范(一般数仓运营会将弄作业监控命名规范)。
  2. 来源表,这个是上面解析sql或者转换解析获取到(在输出规范一般要要求表名规范)
  3. 来源字段,同上(实际数仓运营会拿到字段里数据长度和字段类型以及长度进行管理)
  4. 目标层,同来源层
  5. 目标表,同来源表
  6. 目标组队那,同来源字段
  7. 计划调度时间,这里要考虑作业会存在多个调度频率,一般会存多行,在实际展示会根据crontab解析给出未来十个调度时间(如每天八点更新,这里就会给出后面十天八点的时间)
  8. 实际调度时间,这里获取方式比较多,一种通过日志解析,还有可以在作业执行的时候将时间写入到数据库,但是这种作业失败就拿不到数据,所以通常会解析日常,还可以监控作业执行情况。(一般有能力的会由作业监控平台)

图形展示(os:自己用的d3.js做出来效果不如这个所以不放实际效果图了)如下,鼠标移动到线条可以看到作业名和调度时间。

五、扩展:

        这里讲的是传统数仓,传统数仓一般没有血缘,所以数据发生质量问题排查比较耗时。现在数据中台基本由数据血缘功能,大部分基于Atlas。但是如果存在临时表,就会存在血缘中断。还有是通过解析sql,但是这种缺点是要找到所有任务。这两个都无法获取到所有的数据血缘,所以有的产品会有血缘录入的功能进行补充。

        上面只讲了帆软FineReport,帆软还有FineBI,在FineBI里是有血缘的,如果要做整体的管理,可以考虑将FineBI的数据获取到和所有的血缘进行融合。

以上只是个人在工作中针对传统数仓的数据治理的一些实践。其实还有很多ETL工具如DataStage、Informatica、Airflow、Datax等等之类的,可以根据以上逻辑进行血缘解析。

http://www.dinnco.com/news/13359.html

相关文章:

  • 程序外包平台软文优化
  • 网站开发iis怎么配置爱上链外链购买平台
  • 龙岩任做网站的哪几个比较好长沙网络推广平台
  • rar在线解压网站微软bing搜索引擎
  • 吉林大学建设工程学院网站广西疫情最新消息
  • 公司网站搜索引擎优化网址申请注册
  • 网站秒收录工具如何在百度上做产品推广
  • 深圳外贸seo网站推广深圳英文站seo
  • 医院如何做网站策划轻饮食网络推广方案
  • 网站建设怎么添加视频百度网页翻译
  • 网站模板做网站seo提供服务
  • 做赛事预测网站seo云优化软件
  • 美食分享网站设计国家免费技能培训
  • 辛集建设局官方网站seo培训学院官网
  • 北京网站开发网站建设价格今天高清视频免费播放
  • 广告平面设计基础知识惠州搜索引擎seo
  • 做网站如何上传网站快速收录技术
  • 做外贸的网站平台有哪些内容seo网络推广是干嘛的
  • 制作网站找哪个公司好谷歌关键词工具
  • 京东联盟网站推广位怎么做seo关键词排名优化的方法
  • 社区网站的建设seo优化软件免费
  • 建设厅网站查询网络营销百度百科
  • 在线logo制作生成免费网站制作网页多少钱
  • 心得网站建设三只松鼠网络营销策略
  • 专业的网站开发服务aso优化排名违法吗
  • 做网站得叫什么如何提高网站搜索排名
  • 企业在网站建设上的不足免费的推广引流软件
  • 从0开始做网站西安专业做网站公司
  • 那个网站做车险分期线上推广产品
  • 湖南长沙邮政编码南昌seo公司