随着数据仓库(DW)接入的表和建立的模型增多,元数据管理就变得越来越重要。元数据表血缘关系,俗称“表与表之间的关系”。良好的元数据管理,可以清晰和明确看出每张表和模型之前的关系。
在没有工具之前,只能依靠手工维护,一旦脚本发生变化,手工维护遗漏或不及时的话,就会造成关系不准确。通过工具,当表数量上百、上千张的时候,通过分析表与表“血缘关系”,就能清楚知道每张表之间的关系,及时定位和溯源问题。
笔者在XXX项目实践中,通过JAVA和HIVE,最终产出一张表与表之间的关系表。现在把思路和代码分享给大家,与大家一起交流。当然,程序也有会很多改进和完善的地方,如有不妥,欢迎指正,谢谢。
本文也提供了解析sql的思路和方法。
实现思路:
-
获取输入路径;
-
读取文本文件内容(其中需要把从路径中读取所有文件);
-
规则解析
“来源表”解析:主要通过表命名规范进行解析