数仓的元数据管理系统(数据治理系统)-Apach Atlas

数仓的元数据管理系统(数据治理系统)-Apach Atlas

一.如果公司没有这样的管理系统,如何去管理你的这些数据资产?

用word文档或者用excel,记录哪个表有哪些字段,什么时候创建的,作者谁,这个表是什么表等等.

这些都是很原始的手段,管理效率很低,

所有需要一套软件,来实现这些数据资产的管理.

大公司一般会开发这样一个系统.就是一个javaee程序

二.数仓元数据管理系统: 数仓中各种数据资产 (表,库,目录等描述) 的描述信息的管理系统

现在apache开源了一个通用的数仓元数据管理系统-atlas

atlas主要存那些数据资产的描述信息

atlas就是一个javaweb或者javaee程序

三.atlas结构:

1.atlas的底层存储: janusGraph 图数据库 – (依赖于habase 和 solr)

2.atlas的核心功能层: core --相当于javaee里面的service层.

核心功能中有ingest和export

  • ingest就是从外面把元数据录入进来,录到atlas的存储里面来
  • export就是把里面的元数据导出去

3.atlas对外提供服务的一层 (api层): integration --相当于javaee里面的controller层

对外暴露一个地址,外面就可以用http去请求这个地址,就可以用atlas的功能了

4.外界要将元数据 录入(注入) 到atlas中去,需要通过kafka进行对接,ingest会到kafka进行消费,然后将消费到的元数据 形成图数据库的格式存到图数据库中.然后api这层就可以到图数据库中去查.

四.atlas只是元数据的管理,并不能对hive进行操作和运算.

五.atlas的功能:

1.数据的分类管理classifications

hive中有好多表,然后我在atlas上面定义了好几种类别:app埋点日志数据,微信小程序埋点日志数据等,可以把某个表分到某个类别,我只要点击某个分类,就能展现这个类别下所有的表.

2.审计audit

atlas可以捕获你对那些数据的任何操作.

在hive中insert 或者是 建表 或者是 drop,atlas都能捕获到这些行为,然后形成一些记录

以后就可以做一些审计,比如可以查看某个表在什么时候,哪个用户做了哪些操作还有细节.

3.搜索你的数据资产search

可以去搜索,比如搜hive的表,hive的库,hive的处理过程,还可以搜到kafka里有什么东西,还有你的关系型数据库,还有sqoop一些抽取过程的描述.还有hdfs的一些目录等等.

都是一些描述.

可以根据类别,关键字,数据资产类型等条件来快捷搜索相关元数据

4.血缘lineage

可以很方便的去查看数据资产的血缘

比如这个a表是怎么来的,是由insert的一个计算过程来的,insert into 是从哪里读的,是从b表读的,b表是从哪来的,是从create external…语句建的,然后数据是从load data…这个运算过程来的.加载hdfs中哪个目录的数据等等,a表又衍生出来好多表,通过什么语句.

是以图的形式展现出来.

六.atlas是怎么知道hive中有这些表的?

atlas中的元数据不是天生就有的,需要从外面去注入,可以调用他的api来传入,

也就是说,可以自己写一个程序,提供一个界面,让我们可以在界面上录入数据资产相关的元数据信息,然后调用atlas的api接口,传给atlas去保存.

这样公司开发的工作量太大,那还不如不用atlas,直接自己完整的开发一套元数据管理系统.

好在atlas为hadoop体系中的组件,提供了钩子程序,来自动探测组件中的数据描述信息,然后传入到了atlas.

比如他就为hive开发了钩子

这个钩子可以自动探测hive中的任何操作,形成元数据信息,自动传入atlas.

猜你喜欢

转载自blog.csdn.net/weixin_47699191/article/details/113921877