使用Apache Atlas 2.0.0快速定位数据仓库中的脏数据问题
目前有一张DW层表biz_dw.dwb_acloud_pzx_rmb_diff,里面的其中一个字段有脏数据,我们需要快速定位这个字段可能来自于哪张表。
通过Atlas UI界面,选择“hive_table”类型,在查询框中搜索“dwb_acloud_pzx_rmb_diff”,点击查询结果中的“Lineage”,得到以下查询结果:
上图中红色圈中的“dwb_acloud_pzx_rmb_diff”,为我们的查询目标,可以看出这张表主要来自于dwb_acloud_pzx_rmb表,这其中通过了一个“tmp_dwb_acloud_pzx_rmb_diff”临时表进行加载。
而dwb_acloud_pzx_rmb主要来自于五张ods表,在阿里数据增量项目中,ods层的表有43张,即使不开启Atlas的“列式溯源”功能,我们也能很快将问题定位到这5张表中。
经过验证,我们定位出“dwb_acloud_pzx_rmb_diff”中脏数据来自于“ods_gl_ztkm”表。
现在,我们已经知道“ods_gl_ztkm”表中有脏数据,那么如何快速定位到脏数据可能还会“污染”到哪些其他dwd层表呢?
我们在上图继续点击“ods_gl_ztkm”,然后进入“Lineage”页面,如下图:
我们发现“脏数据”还流转到“dwb_acloud_pz_diff”、“dwb_acloud_pzx_wb”中。
同时,如果我们将“ods_gl_ztkm”打一个“DirtyDate”的标签,那么这几张被污染的DWB层也会通过溯源功能获得“DirtyDate”这个标签:
通过Atlas的数据溯源功能,可以快速定位到脏数据影响到哪几张表。