本发明涉及电网数据中台数据服务领域,具体涉及一种基于电网数据中台的数据血缘溯源分析方法。
背景技术:
1、近年来,数据中台通过提供集中化的数据管理和处理能力,帮助企业提升数据质量、优化决策、提高业务效率、支持创新,同时确保数据安全和合规,在公司生产经营中发挥的作用越来越重要。
2、然而,在支撑重点前端应用上,数据中台所提供数据服务的时效性和可靠性无法满足企业数据应用产品需要,数据从采集到提供给前端应用使用的整个数据链路极其复杂,涉及汇聚、清洗、存储、分析和处理等过程,从源端到应用整个数据链路整体呈网状结构,给问题数据定位工作带来巨大的挑战。因此,亟需提供一种方案改善上述问题。
技术实现思路
1、本发明的目的在于提供一种基于电网数据中台的数据血缘溯源分析方法,能够快速、准确定位问题数据发生的位置。
2、本发明提供一种基于电网数据中台的数据血缘溯源分析方法,采用如下的技术方案:
3、基于hive和yarn生成和收集执行日志,基于所述执行日志获取多个sql语句,基于所述多个sql语句分别构建ast树,基于所述ast树获取数据血缘映射关系和数据节点信息;
4、基于数据节点信息进行分类生成数据集合,基于信息熵算法逐项计算所述数据集合中每个属性元素对区分数据的影响程度,选择影响程度最大的属性作为所述数据节点的关键属性,基于关键属性的值进行所述数据节点对齐,关联和合并所述关键属性值相同的数据节点;
5、基于neo4j将所述数据血缘映射关系和数据节点转换为数据血缘图,基于广度优先搜索和a*算法对所述数据血缘图进行数据路径溯源。
6、如上所述的基于电网数据中台的数据血缘溯源分析方法,其中,基于hive和yarn生成和收集执行日志的过程包括:基于hive获取用户提交的sql语句,基于yarn请求资源分配并执行所述sql语句,将执行所述sql语句的信息记录到执行日志中。
7、如上所述的基于电网数据中台的数据血缘溯源分析方法,其中,基于所述多个sql语句分别构建ast树的过程包括:
8、去除所述sql语句的空白字符及注释并将其分解成sql标记,基于上下文无关文法对所述标记进行识别和解析获得语法规则,并基于语法规则及递归下降解析器构建ast树。
9、如上所述的基于电网数据中台的数据血缘溯源分析方法,其中,基于语法规则及递归下降解析器构建ast树的过程包括:
10、基于递归下降解析器设计解析函数,基于所述解析函数判断所述标记是否符合所述语法规则,当符合时创建对应的ast树节点,并基于递归调用顺序连接所述ast树节点获取ast树,所述ast树节点包括赋值节点、函数调用节点、表达式节点。
11、如上所述的基于电网数据中台的数据血缘溯源分析方法,其中,基于所述ast树获取数据血缘映射关系和数据节点信息的过程包括:
12、初始化用于存储信息的空字典,基于递归函数遍历ast树并返回给所述字典,所述遍历ast树过程中记录赋值节点中变量和赋值表达式之间的映射关系,记录函数调用节点中函数名称和参数,以及函数的调用和参数依赖关系,递归处理表达式节点,获取内部的数据血缘映射关系和节点信息。
13、如上所述的基于电网数据中台的数据血缘溯源分析方法,其中,基于信息熵算法逐项计算所述数据集合中每个属性元素对区分数据的影响程度的过程中,使用以下公式进行计算:
14、;
15、其中,表示数据集合中不同sql语句或类别的总数,表示中第个事件或类别的概率表示,表示第个事件的对数概率,表示数据集合的信息熵。
16、如上所述的基于电网数据中台的数据血缘溯源分析方法,其中,基于广度优先搜索和a*算法对所述数据血缘图进行数据路径溯源的过程包括:基于数据血缘图确定目标节点,基于广度优先搜索遍历进行表级血缘分析,基于a*算法进行字段级血缘分析,生成所述目标节点血缘分析的路径信息。
17、如上所述的基于电网数据中台的数据血缘溯源分析方法,其中,基于广度优先搜索遍历进行表级血缘分析的过程包括:
18、基于数据血缘图构建表级图,所述数据血缘图中的节点代表数据表,所述数据血缘图中的有向边代表所述数据表之间的依赖关系;随机选择节点作为遍历起点,初始化一个bfs队列,将所述起点加入所述队列,并标记为已访问,从所述队列中取出一个节点并检查其所有相邻节点,将未访问的相邻节点加入队列;遍历过程中,记录每个节点的血缘信息,并更新节点之间的关系,继续执行广度优先搜索,直到队列为空,遍历完成;基于收集到的血缘信息,生成表级血缘关系报告。
19、如上所述的基于电网数据中台的数据血缘溯源分析方法,其中,基于a*算法进行字段级血缘分析的过程包括:
20、基于数据血缘图构建字段级,所述数据血缘图中的节点代表数据字段,所述数据血缘图中的有向边代表字段之间的关系;确定分析的目标字段,并定义启发函数,用于估算从当前字段到目标字段的最优路径成本,设置起始字段作为a*算法的初始节点,初始化开放列表和关闭列表,从开放列表中选择具有最低总代价的节点进行扩展,探索所有相邻节点,并更新开放列表;遍历过程中,记录每个字段的血缘信息,并更新节点之间的关系,继续执行a*算法,直到目标字段被扩展并到达,或开放列表为空,遍历完成;根据收集到的字段级血缘信息,生成字段级血缘关系报告。
21、本发明提出的基于电网数据中台的数据血缘溯源分析方法有益效果在于:
22、1、本发明通过信息熵计算,将具有相同关键属性值的数据节点进行关联和合并,确保相似的数据节点被有效整合,提升了数据血缘结果的准确性和全面性。
23、2、本发明的数据血缘图记录了数据从原始来源到最终使用的全过程,包括数据的产生、变换及其流动路径。
24、3、本发明通过生成表级血缘关系报告及字段级血缘关系报告,能够快速、准确定位问题数据发生的位置。
1.一种基于电网数据中台的数据血缘溯源分析方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于电网数据中台的数据血缘溯源分析方法,其特征在于,基于hive和yarn生成和收集执行日志的过程包括:
3.根据权利要求1所述的一种基于电网数据中台的数据血缘溯源分析方法,其特征在于,基于所述多个sql语句分别构建ast树的过程包括:
4.根据权利要求3所述的一种基于电网数据中台的数据血缘溯源分析方法,其特征在于,基于语法规则及递归下降解析器构建ast树的过程包括:
5.根据权利要求4所述的一种基于电网数据中台的数据血缘溯源分析方法,其特征在于,基于所述ast树获取数据血缘映射关系和数据节点信息的过程包括:
6.根据权利要求1所述的一种基于电网数据中台的数据血缘溯源分析方法,其特征在于,基于信息熵算法逐项计算所述数据集合中每个属性元素对区分数据的影响程度的过程中,使用以下公式进行计算:
7.根据权利要求1所述的一种基于电网数据中台的数据血缘溯源分析方法,其特征在于,基于广度优先搜索和a*算法对所述数据血缘图进行数据路径溯源的过程包括:
8.根据权利要求7所述的一种基于电网数据中台的数据血缘溯源分析方法,其特征在于,基于广度优先搜索遍历进行表级血缘分析的过程包括:
9.根据权利要求7所述的一种基于电网数据中台的数据血缘溯源分析方法,其特征在于,基于a*算法进行字段级血缘分析的过程包括: