元数据的作用数据中台的构建,需要确保所有的口径一致

优采云 发布时间: 2021-08-12 22:05

  元数据的作用数据中台的构建,需要确保所有的口径一致

  元数据的作用

  数据中心的建设需要保证所有的口径一致,必须把原来不一致和重复的指标整理出来整合成一个统一的指标字段(指标管理系统),前提是要搞清楚指标。公司的业务口径、数据来源、计算逻辑。这些东西都是元数据

  元数据收录哪些数据

  这是一个例子

  

  任务 flow_dws_trd_sku_1d 读取表 dwd 生成汇总表 dws

  数据字典描述了数据的结构信息。包括表名、注解信息、输出任务、哪些字段、字段含义、字段类型等

  数据血缘关系是指上游表生成哪些下游表,一般用于故障恢复和业务口径的理解。

  数据特征表示数据的属性信息,包括存储位置、存储大小、访问流行度、标签、主题域、数据级别(ods/dw/dm)等属性信息。

  既然一张表有这么多的信息需要组织和展示,就需要有一个元数据中心来管理它。贯穿公司产品线

  行业元数据中心产品

  Metacat 支持多数据源,可扩展的架构设计,擅长管理数据字典。

  Atlas支持比较完整的数据血缘关系,实时数据血缘关系采集

  血缘采集一般通过三种方式:

  1.静态SQL解析,不管执行与否,都会解析

  2.实时抓取正在执行的SQL,解析执行计划,获取输入表和输出表

  3.通过任务日志分析得到执行后的SQL输入表和输出表。每个项目成功执行的SQL,无论是pull还是push,都通过元数据中心解析得到输入表和输出表。

  第一种方法面临准确性的问题,因为任务没有执行,SQL是否正确是个问题。第三种方法,虽然是执行后生成血缘关系,可以保证准确,但是时效性比较差,通常需要分析大量的任务日志数据。所以第二种方式是比较理想的实现方式,Atlas就是这样一种实现方式。但是这种方式获取表的特征数据比较困难,比如负责人信息、平台信息等,所以在存储侧边时会出现信息缺失的情况。综上,选择第三种方法,每天t+1次统计成功执行SQL汇总分析血缘关系。血缘关系延迟1天,但侧边资料会完整。并且无需开发钩子或*敏*感*词*器

  对于Hive计算引擎,Atlas通过Hook方式实时捕获任务执行计划,获取输入表和输出表,推送给Kafka。一个摄取模块负责将血缘关系写入 JanusGraph 图数据库。然后使用API​​基于图查询引擎获取血缘关系。对于Spark,Atlas提供了Listener的实现,Sqoop和Flink也有相应的实现。

  公司的元数据产品

  元数据系统整体分为三大方面:数据的采集、数据的存储、数据的应用。下面简单介绍一下各个功能和实现

  

  采集 数据存储 数据应用 具体场景 血缘关系分析场景

  首先解析SQL,以Hive为例。首先定义词法规则和语法规则文件,然后使用Antlr实现SQL词法语法分析,生成AST语法树,遍历AST语法树完成后续操作。 select *的SQL可以被客户端禁止,也可以由服务器解析select *的行为,通过API查询表结构的补充字段。

  通过Semantic Analyzer Factory类进行语法分析,然后根据Schema生成执行计划QueryPlan。关于表和列的血缘关系,可以从 LineageInfo 和 LineageLogger 类中得到解决方案。

  需要统计的hive操作类型

  

  通过以上操作类型,你可以清楚的看到手表是如何被转移的

  元数据显示血缘关系的效果,目前公司只显示血缘关系。

  

  返回的数据结构

  

  其实对于数据血缘关系,如果只做表级血缘关系的话,可以通过关系数据来做。第二阶段的血缘关系改回mysql,因为我们的显示只有上下级,不是全链接图显示。 这也与降低成本有关。

  如果使用图形数据库,则将输入信息和输出信息作为点,操作作为边。上面返回的数据其实就是图数据库直接返回的数据。 rid 表示当前点的id信息。

  血缘关系还有一个问题。即使你想清理历史边,因为输入输出可能存在很长时间,小时级任务可能有数千条边,所以你需要制定一个清理策略来保存最后N天/N数据端,否则mysql/graph数据库会卡死。

  元数据应用对应的原型展示

  数据搜索

  

  引文热度

  当您不知道手表的主人是谁时,这非常方便。看看谁在使用它,然后问问。

  血缘关系

  如上

  数据地图

  如人气所示

  数据维护及特点

  

  对于数据特征,数据表的所有者可以修改表的特征信息

  生成逻辑

  每个业务表都有生成逻辑的展示,从调度系统自动同步

  在我们的调度系统中,每个hsql任务都有一个输出表。通过将输出表链接到元数据,两个系统可以串联。

  

  其他功能

  

  公司的元数据和那些缺陷。由于历史原因,无法将表的位置和底层存储关联起来,页面上也没有显示底层存储的位置和hive表的位置。外部表可能经常被没有要构建的表的系统所取代。这个非常重要。我认为在元数据系统之前,必须建立一个建表系统。可以存储权限和标准信息。临时表只能建在测试数据库中。 , 正式表的创建通过系统进行,使信息与实时元数据信息一起统计

  

  问答

  

  参考Are You Hungry元数据实践之路网易元数据中心实践计划

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线