在前面我们已经安装部署好了atlas,并且也导入了演示数据,同时我们可以通过演示数据查看表与表之间,列与列之间的血缘关系。随后我们会演示如何自定义的创建一套自定义的血缘关系,在介绍之前,我们首先介绍一些atlas的核心概念。
一、名词定义
1)type System
这里的类型就是我们在页面上看到的类型,如下图:
这里类型的含义是指元数据类型的定义,这里可以是数据库,表,列等,还可以细分 mysql 表( mysql_table ),oracle 表( oracle_table )等,atlas自带了很多类型,如 DataSet,Process 等,一般情况下,数据相关的类型在定义类型的时候都会继承 DataSet,而流程相关的类型则会继承 Process,便于生成血缘关系。我们也可以通过调用 api 自定义类型。这是一切的起点,定义完类型之后,才能生成不同类型的元数据实体,生成血缘关系,我个人更喜欢把元数据类型称之为建模。
2)classification
这里的classification的位置如下图:
这里的classification指的是分类,通俗点就是给元数据打标签,分类是可以传递的,比如 A 视图是基于 A 表生成的,那么如果 A 表打上了 a 这个标签,A 视图也会自动打上 a 标签,这样的好处就是便于数据的追踪。
3)Entity
Entity就是一个个实体类,他是由一个个type来管理的,例如下图:
4)Lineage
这里的Lineae就是血统关系,这里我们找到对应的实体,例如上图table8的实体,点击一列,例如:cystomer_dim,就可以看到对应的属性信息:
在这个图里面就有Lineage血缘关系的tab,我们点击进去就可以看到对应的血缘关系了:
这个customer_dim属性只有一个图形,代表没有其他的血缘能和他关联起来。最后我们总结下这个血缘关系:数据血缘,表示数据之间的传递关系,通过 Lineage 我们可以清晰的知道数据的从何而来又流向何处,中间经历了哪些操作,这样一旦数据出现问题,可以迅速追溯,定位是哪个环节出现错误。
5)Relationships
这里的关系图也是对应实体属性的,他可以展示当前属性所属的关联列,关联表,关联视图,存储路径的信息,如下图:
以上就是我们在使用atlas的过程中必须涉及到的几个核心概念。最后我们再总结下atlas是干什么用的:
Atlas 主要是通过内部提供的脚本读取数仓中的数据库结构,生成数据模型,存储到 Atlas的 Hbase 中,同时通过 hook 的方式监听数仓中的数据变化,分析执行的 sql 语句,从而生成表与表,列与列的血缘关系依赖,在前台展示给用户查看。
还没有评论,来说两句吧...