要让事情改变,先改变自己;要让事情变得更好,先让自己变得更强。 ------ joker1034

数据中台实战之元数据

元数据

数据字典

  数据字典描述的是数据的结构信息

数据血缘

  数据血缘是指一个表是直接通过哪些表加工而来

数据特征

  而数据特征主要是指数据的属性信息,比如储存空间,访问热度,主题域

业界元数据中心产品

  开源的有Netflix的Metacat、Apache Atlas;
  商业化的产品有Cloudera Navigator。

Metacat

  多数据源集成型架构设计

 

 

 

 

 

 

  从上面Metacat的架构图中,你可以看到,Metacat的设计非常巧妙,它并没有单独再保存一份元数据,而是采取直连数据源拉的方式,一方面它不存在保存两份元数据一致性的问题,另一方面,这种架构设计很轻量化,每个数据源只要实现一个连接实现类即可,扩展成本很低。

Apache Atlas 实时数据血缘采集

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

  • 通过静态解析SQL,获得输入表和输出表;
  • 通过实时抓取正在执行的SQL,解析执行计划,获取输入表和输出表;
  • 通过任务日志解析的方式,获取执行后的SQL 输入表和输出表。

  第一种方式,面临准确性的问题,因为任务没有执行,这个SQL对不对都是一个问题。第三种方式,血缘虽然是执行后产生的,可以确保是准确的,但是时效性比较差,通常要分析大量的任务日志数据。所以第二种方式,我认为是比较理想的实现方式,而Atlas 就是这种实现。对于Hive 计算引擎,Atlas 通过Hook方式,实时地捕捉任务执行计划,获取输入表和输出表,推送给Kafka,由一个Ingest 模块负责将血缘写入JanusGraph图数据库中。然后通过API的方式,基于图查询引擎,获取血缘关系。对于Spark,Atlas 提供了Listener的实现方式,此外Sqoop、Flink 也有对应的实现方式。

元数据中心

 

总结   

  元数据中心设计上必须注意扩展性,能够支持多个数据源,所以宜采用集成型的设计方式。数据血缘需要支持字段级别的血缘,否则会影响溯源的范围和准确性。数据地图提供了一站式的数据发现服务,解决了检索数据,理解数据的“找数据的需求”。

 

posted @ 2020-11-10 16:53  joker1034  阅读(1233)  评论(0编辑  收藏  举报

python开发&研究 - 创建于 2018年10月

这是一位python开发工程师的个人站,内容主要是python开发方面的技术文章,大部分来自学习或工作,部分来源于网络,希望对大家有所帮助。

致力于python开发&研究工作,专注python开发,关注互联网前沿技术与趋势。


Font Awesome | Respond.js | Bootstrap中文网