1、明确需求,确定边界在进行血缘系统构建之前,需要进行需求调研,明确血缘系统的主要功能,从而确定血缘系统的最细节点粒度,实体边界范围。例如节点粒度是否需要精确到字段级,或是表级。一般来说,表级粒度血缘可以解决75%左右的痛点需求, 字段级血缘复杂度较表级血缘高出许多,如果部门人数较少,可以考虑只精确到表级粒度血缘。常见的实体节点包括:任务节点、库节点、表节点、字段节点、指标节点、报表节点、部门节点等。血缘系统可以扩展数据相关的实体节点,可以从不同的场景查看数据走向,例如表与指标,指标与报表的血缘关系。但是实体节点的范围需要明确,不可无限制的扩展下去。明确需求,确定节点粒度与范围之后,才可根据痛
文章目录1.前言2.Hive自带的解析模块3.gudusoft解析方案3.1.支持的解析功能调研3.1.1从select语句中直接解析血缘关系(也能支持被函数处理的select字段)3.1.2包含子查询的select语句3.1.3复杂语句的支持3.2.支持引擎调研3.3.SQL测试案例3.4.调研结论3.5.代码demo3.5.1自己解析3.5.2官方解析工具4.Druid血缘解析方案5.自研解析Hathor项目6.生产环境最强解析方案思路1.前言在数据中台中,通常我们面对的是海量的基于数仓的ETL、取数、建模、业务调用等等的数据操作任务,面对错综复杂的调度依赖关系,当出现问题需要快速追溯数据
DataHub调研&数据血缘1.DataHub?阿里的数据工具datahub?回答:不是DataHub是由Linkedin开源的,官方喊出的口号为:TheMetadataPlatformfortheModernDataStack-为现代数据栈而生的元数据平台。官方网站AMetadataPlatformfortheModernDataStack|DataHub。目的就是为了解决多种多样数据生态系统的元数据管理问题,它提供元数据检索、数据发现、数据监测和数据监管能力,帮助大家解决数据管理的复杂性。DataHub基于ApacheLicense2开源,采用基于推送的数据收集架构(当然也支持pull拉取
目录1.元数据管理实施方案总览2.元数据分类2.1技术元数据2.2业务元数据3.元数据标签体系 基础标签 数仓标签 业务标签潜在标签4.表元数据4.1 基于pull机制抽取元数据web端ui方式cli端yml方式yml解析yml模板4.2.RESET-API方式API-MEDTADA人工构建模板5.血缘元数据5.1基于push机制构建血缘元数据 SparkSql场景SparkSession场景5.2基于RestAPI机制构建血缘元数据RESET-API-LINEAGEDEMORESET-API-LINEAGE构建工具 mrhql程序基于REST-API构建血缘(走pub_execute_sql
HiveSQL中的有些SQL语句和传统关系型数据库中使用的SQL语句在语法和功能上都有非常大的差异。在数据血缘分析中对这些HiveSQL特有的SQL语法的支持,是马哈鱼数据血缘关系分析工具和一般数据血缘分析工具的一个重要区别,对这些特殊SQL语法的支持,为企业的数据治理提供了完整的数据血缘,可以更好的提高数据质量,让企业的海量数据的在数据挖掘和智能分析中发挥更大的作用。这里是一个典型的HiveSQL,使用了map,reduce。FROM(FROMpv_usersMAP(pv_users.userid,pv_users.date)USING'map_script'ASc1,c2,c3DISTRI
目录前言一、主线任务1.数据治理2.血缘追踪3.SQL表血缘二、实现过程1.目标效果2.代码实现1.功能函数识别2.SQL标准格式 3.解析AST树4.最终效果:点关注,防走丢,如有纰漏之处,请留言指教,非常感谢前言之前我在两篇SQLparse的开源库解析中就说过自己在寻找在python编程内可行的SQL血缘解析,JAVA去解析Hive的源码实践的话我还是打算放到后期来做,先把Python能够实现的先实现完。主要是HiveSQL的底层就是JAVA代码,怎么改写还是绕不开JAVA的。不过上篇系列我有提到过sqlparse,其实这个库用来解析血缘的话也不是不可以,但是能够实现的功能是有限的,目前我
目录前言一、主线任务1.数据治理2.血缘追踪3.SQL表血缘二、实现过程1.目标效果2.代码实现1.功能函数识别2.SQL标准格式 3.解析AST树4.最终效果:点关注,防走丢,如有纰漏之处,请留言指教,非常感谢前言之前我在两篇SQLparse的开源库解析中就说过自己在寻找在python编程内可行的SQL血缘解析,JAVA去解析Hive的源码实践的话我还是打算放到后期来做,先把Python能够实现的先实现完。主要是HiveSQL的底层就是JAVA代码,怎么改写还是绕不开JAVA的。不过上篇系列我有提到过sqlparse,其实这个库用来解析血缘的话也不是不可以,但是能够实现的功能是有限的,目前我
需求数据库(Postgres、Hive等)中的元数据(表信息)可以通过cli命令及ui界面的方式采集元数据信息到Datahub中,并配置表级与列级血缘。那么,SQL查询语句(SQL脚本/SQLDLL)如何生成数据集及血缘呢,比如FineBI的数据集就是一段SQL查询语句。分析将SQL脚本/语句生成Datahub中的数据集及血缘,需要验证以下关键技术点:通过PythonEmitterAPI生成数据集解析SQL脚本为PythonEmitterAPI生成数据集,需要的输入结构体通过PythonEmitterAPI生成表级血缘及列级血缘解析SQL脚本为PythonEmitterAPI生成表级血缘,需要
需求数据库(Postgres、Hive等)中的元数据(表信息)可以通过cli命令及ui界面的方式采集元数据信息到Datahub中,并配置表级与列级血缘。那么,SQL查询语句(SQL脚本/SQLDLL)如何生成数据集及血缘呢,比如FineBI的数据集就是一段SQL查询语句。分析将SQL脚本/语句生成Datahub中的数据集及血缘,需要验证以下关键技术点:通过PythonEmitterAPI生成数据集解析SQL脚本为PythonEmitterAPI生成数据集,需要的输入结构体通过PythonEmitterAPI生成表级血缘及列级血缘解析SQL脚本为PythonEmitterAPI生成表级血缘,需要
经验一:数据血缘模型的分层架构1.挑战首先介绍一下字节内部数据血缘遇到的挑战。随着公司业务扩张、用户数量持续增长以及数仓建设不断完善,元数据种类和数量也经历了非线性增长,并在此期间涌现出一些问题。第一,扩展性。好的扩展性可以在面对新型元数据血缘时保证快速接入和迭代,而扩展性不佳则会导致在业务变化时需要不停地重构来适应业务,对业务造成很多影响。第二,性能。一个模型本身的插入和更新效率会直接影响数据的导入导出的流程,这些都会带来更直观的业务上的感受,所以需要考虑如何保证环节高效性。第三,时效性。很多应用场景对正确率格外敏感,如果血缘数据有延迟,其实就等于血缘的不准确,会对业务造成影响。最后,赋能业