Apache Atlas元数据 最全资料

第1章 介绍

atlas  是apache下的大数据的元数据管理和数据治理平台,是Hadoop社区为解决Hadoop生态系统的元数据治理问题而产生的开源项目,它为Hadoop集群提供了包括数据分类、集中策略引擎、数据血缘、安全和生命周期管理在内的元数据治理核心能力。支持对hive、storm、kafka、hbase、sqoop等进行元数据管理以及以图库的形式展示数据的血缘关系。

优势(能复用哪些功能)

1、搜索:能通过某个业务字段搜索此业务字段涉及到的业务线,可能是多条业务线。

2、血统:数据的血缘查看,了解数据的流向(表级别,字段级别)

3、安全与审计:对于各种数据的分类,对于PII,敏感数据的把控。

4、数据分类:对数据进行分类,PII,敏感信息,过期数据...

⑴为元数据导入或定义业务导向的分类注释

⑵定义,注释,以及自动捕获数据集和底层元素之间的关系

⑶导出元数据到第三方系统

5、数据生命周期的决策与判断

第2章 架构、组件即概念介绍

2.1 架构图

图片1

Apache Atlas元数据 最全资料

图片2

Apache Atlas元数据 最全资料

 

 

2.2 理解架构图

图片3

Apache Atlas元数据 最全资料

 

2.3 元数据流入atlas图解

图片4

Apache Atlas元数据 最全资料

 

2.4 相关组件介绍

2.4.1 Core此类别包含实现 Atlas 功能核心的组件

Type System

Atlas 允许用户为他们想要管理的元数据对象定义一个模型。该模型由称为 "types" 的定义组成。"types" 的实例被称为 "entities" 表示被管理的实际元数据对象。类型系统是一个组件,允许用户定义和管理类型(types)和实体(entities)。由 Atlas 管理的所有元数据对象(例如Hive表)都使用类型进行建模,并表示为实体。

简单理解:元数据在Atlas内部被抽象为:模型=类型-->实体来表示。

Ingest/Export(导入/导出)

Ingest 组件允许将元数据添加到 Atlas。类似地,Export 组件将Atlas 检测到的元数据更改公开为事件,消费者可以使用这些更改事件来实时响应元数据表更。

Graph Engine(图计算引擎)

在内部,Atlas使用图模型来持久化和管理元数据对象。图模型提供了极大的灵活性,并可以有效处理元数据对象之间的丰富关系。 图引擎组件负责在Atlas类型系统的类型和实体以及基础图持久性模型之间进行转换。除了管理图形对象之外,图形引擎还为元数据对象创建适当的索引,以便可以高效地搜索它们。 Atlas使用JanusGraph存储元数据对象。

简单理解:元数据采用图模型来表示(传统关系模型无法表示),并存储在图存储中(JanusGraph),Graph Engine(图引擎)是图模型(类/对象)和图存储(数据库)之间的桥梁。

JanusGraph(图存储引擎/图数据库)

在Atlas 1.0之前采用Titan作为图存储引擎,从Atlas 1.0开始采用JanusGraph作为图存储引擎。 JanusGraph底层又分为两块:

1. Metadata Store:采用HBase存储Atlas管理的元数据。

2. Index Store:采用Solr来存储元数据的索引,便于高效搜索。

2.4.2 Integration

API:Atlas 的所有功能通过 REST API 提供给最终用户,允许创建,更新和删除类型和实体。

Messaging:除了 API 之外,用户还可以选择使用基于 Kafka 的消息接口与 Atlas 集成。

Atlas 使用 Apache Kafka 作为消息队列。事件由钩子(hook)和 Atlas 写到不同的 Kafka 主题:

1. ATLAS_HOOK: 来自各个组件的Hook的元数据通知事件通过写入到名为 ATLAS_HOOK 的 Kafka topic 发送到 Atlas(消息入口:采集外部元数据)

2. ATLAS_ENTITIES:从 Atlas 到其他集成组件(如Ranger)的事件写入到名为 ATLAS_ENTITIES 的Kafka topic(消息出口:暴露元数据变更事件给外部组件)

 

2.4.3 Apps

Atlas Admin UI:该组件是一个基于 Web 的应用程序,允许数据管理员和科学家发现和注释元数据。

Tag Based Policies:Apache Ranger 是针对 Hadoop 生态系统的高级安全管理解决方案,与各种 Hadoop 组件具有广泛的集成。

Business Taxonomy:从元数据源获取到 Atlas 的元数据对象主要是一种技术形式的元数据。

2.4.4 Type System

Overview:Atlas 允许用户为他们想要管理的元数据对象定义一个模型。该模型由称为 "类型" 的定义组成。被称为 "实体" 的 "类型" 实例表示被管理的实际元数据对象。

Types: Atlas中的 "类型" 定义了如何存储和访问特定类型的元数据对象。类型表示了所定义元数据对象的一个或多个属性集合。

Entities: Atlas中的 "实体" 是类 "类型" 的特定值或实例,因此表示真实世界中的特定元数据对象。 回顾我们的面向对象编程语言的类比,"实例" 是某个 "类" 的 "对象"。

Attributes:我们已经看到属性在复合元类型(如 Class 和 Struct)中定义。 但是我们简单地将属性称为具有名称和元类型值。 然而, Atlas 中的属性还有一些属性,定义了与类型系统相关的更多概念。

2.4.5 Search

Atlas 支持以下 2 种方式搜索元数据:

Search using DSL

Full-text search

2.5 概念介绍

2.5.1 Glossary(术语表) 介绍

Atlas的术语表(Glossary)提供了一些适当的“单词”,这些“单词”能彼此进行关连和分类,以便业务用户在使用的时候,即使在不同的上下文中也能很好的理解它们。此外,这些术语也是可以映射到数据资产中的,比如:数据库,表,列等。

术语表抽象出了和数据相关的专业术语,使得用户能以他们更熟悉的方式去查找和使用数据。

2.5.2 术语表功能

能够使用自然语言定义丰富的术语词汇表。

能够将术语在语义上相互关联。

能够将资产映射到术语表中。

能够按类别划分这些术语。这为术语增加了更多的上下文。

允许按层次结构排列类别,能展示更广泛和更精细的范围。

从元数据中独立管理术语表。

2.5.3 术语(Term)

对于企业来说术语作用的非常大的。对于有用且有意义的术语,需要围绕其用途和上下文进行分组。 Apache Atlas中的术语必须具有唯一的qualifiedName,可以有相同名称的术语,但它们不能属于同一个术语表。具有相同名称的术语只能存在于不同的术语表中。

术语名称可以包含空格,下划线和短划线(作为引用单词的自然方式)但不包含“。”或“@”,因为qualifiedName的格式为:<术语>@<术语限定名>。限定名称可以更轻松地使用特定术语。

术语只能属于单个术语表,并且它们的生命周期也是相同的,如果删除术语表,则术语也会被删除。术语可以属于零个或多个类别,这允许将它们限定为更小或更大的上下文。

可以在Apache Atlas中为一个或多个实体分配/链接一个术语。可以使用分类(classifications,类似标签的作用)对术语进行分类,并将相同的分类应用于分配术语的实体。

2.5.4 类别(Category)

类别是组织术语的一种方式,以便可以丰富术语的上下文。

类别可能包含也可能不包含层次结构,即子类别层次结构。类别的qualifiedName是使用它在术语表中的分层位置导出的,例如:<类别名称>.<父类别限定名>。当发生任何层级更改时,此限定名称都会更新,例如:添加父类别,删除父类别或更改父类别。

2.6 核心功能

搜索,血缘,交换,知识存储,审计,数据生命周期,访问控制和策略。

2.6.1搜索

这里是指搜索对应的元数据,如下图所示:

 

 能够方便的让我们了解有什么数据。

2.6.2血缘

从数据产生,如ETL的过程,到数据的存储,再到数据的使用。能够方便的让我们定位数据问题,是上游ETL,或者下游数据报表发生数据变化。

2.6.3交换

和已有的元数据做对接,比如已经在SAS,BIEE中已经建好的元数据,可以直接导入到Atlas中,或者将Atlas中已有的元数据导出到其他。

2.6.4知识存储

数据存储中,Atlas会根据自己的分类,策略规则,类型约束,或者元模型自动的进行存储。例如如下类型的数据:

customer_id    order_id    product_id    time_id    sales   

       Atlas将sales分类为度量Metric。或者如下类型的数据:

customer_id    name    address

       Atlas将address分类为PII(Personally Identifiable Information,个人验证信息),这里也是对外提供Rest Api服务的时候涉及的数据标准。另外自己感觉这里的知识存储和DIKW中的K相似,都是让我们知道这些数据如何去使用。

2.6.5审计

审计是出于数据安全,隐私,或者法律政策。什么数据应该存,或者怎么存都会有一定的要求或者标准。例如如下类型的数据:

customer_id    name    phone_num    address    ID

       很显然phone_num,address,ID属于敏感信息,是受隐私保护的。只可惜在中国对数据安全大家都不重视,比如在淘宝购买了商品,然后骗子获取到了你未做敏感信息处理的订单信息和身份信息,然后对你实施诈骗。

2.6.6数据生命周期

数据是有时效性的,最简单的例子就是如果你设计数据中心为3年的话,到第四年开始,在第一年进入数据中心的数据就可以转做进线存储或者离线存储,即第一年的数据在这个数据中心的生命周期结束。更别说数据库查询中的临时表,临时为了某个业务场景验证,做开发和测试,完成后就直接删了,这种数据生命周期更短。

2.6.7 标签策略

最简单的标签就是将元数据的分类,如元数据属于Metric,ETL。或者接2.6.6所说的,数据是有时效性的。例如市场部门往往关注今天有多少订单产生,然后偶尔关注这个月产生了多少订单,越往前的数据,使用频率和访问频率越底。这里就可以对数据使用热度标签。

2.6.8 安全

也就是Atlas中的基于标签的访问控制,最简单的标签就是允许和不允许。数据应该只被该访问的人访问,如果一个用户是报表用户,那他就只能访问那些report的数据,而不会是其他数据,更别说不具有数据访问权限的用户。

2.6.9数据分类

会将字段进行分类,一个实体(即一个表可以有多个分类)

PII(个人验证信息),敏感信息,过期数据

 

第3章 Atlas部署

3.1 cdh安装使用类

3.1.1 cdh安装atlas

Apache atlas集成CDH管理元数据

https://blog.****.net/tom_fans/article/details/85506662?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-1-85506662.nonecase&utm_term=atlas%20%E9%9B%86%E6%88%90hbase

Atlas 2.0.0编译与CDH6.2.1集成

https://blog.****.net/IT142546355/article/details/107884900?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-4-107884900.nonecase&utm_term=atlas%20%E9%9B%86%E6%88%90hbase

3.1.2 cdh部署atlas遇到的问题相关

CDH6.1环境下部署Apache Atlas2.0及问题记录

https://blog.****.net/qq_34024275/article/details/105393745?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-9-105393745.nonecase&utm_term=atlas%20%E9%9B%86%E6%88%90hbase

CDH整合APACHE ATLAS管理元数据,坑和解决办法

https://www.freesion.com/article/1976139811/

问:atlas页面上create new entity的时候只有hdfs_path这一个选项,没有hive_table等等别的类型

答:在atlas-application.properties 里添加配置atlas.ui.editable.entity.types=*

问:import-hive.sh能成功,但是hive hook不能实时同步

答:查看日志,看看kafka中ATLAS_HOOK有没有被消费过数据

问:如何配置atlas

答:http://atlas.apache.org/#/Configuration

3.2 原生使用安装类

3.2.1 原生atlas安装

apache atlas 2.0 详细安装手册

https://blog.****.net/coderblack/article/details/104283606?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-8.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-8.nonecase

apache-atlas完整安装教程-离线安装

https://blog.****.net/weixin_30951743/article/details/101339203?utm_medium=distribute.pc_relevant.none-task-blog-title-6&spm=1001.2101.3001.4242

3.2.2 atlas元数据导入(hook)

Apache atlas使用说明文档第五章

元数据管理ATLAS导入HIVE和HBASE元数据以及生成血缘

https://www.freesion.com/article/9498912189/

元数据管理atlas导入hive和hbase元数据以及生成血缘

https://blog.****.net/hblicy/article/details/106890270

atlas关联spark

https://blog.****.net/weixin_43899386/article/details/107565820

atlas支持spark表级别

https://blog.****.net/su20145104009/article/details/108253556

 

4 UI介绍

Apache atlas使用说明文档第二章

第5章 Atalas API 使用介绍 

Apache atlas使用说明文档第三章

6 扩展

6.2 元数据管理产品对比

http://www.360doc.com/content/20/0725/11/22849536_926642448.shtml

 

附件:

APACHE ATLAS开发指南(中文版)

https://mantoudev.com/mantouBook/Atlas_cn/

官方文档

http://atlas.apache.org/#/

比较好理解的一篇文章

https://ask.hellobi.com/blog/ambition119/3424

 

6.1 atlas源码相关

Apache Atlas数据治理开源项目源代码解析

https://blog.****.net/tomalun/article/details/105100307

Atlas获取HBase变化数据源码分析

https://blog.****.net/Milkcoffeezhu/article/details/107049699