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元数据 最全资料_第1张图片

图片2

Apache Atlas元数据 最全资料_第2张图片

 

 

2.2 理解架构图

图片3

Apache Atlas元数据 最全资料_第3张图片

 

2.3 元数据流入atlas图解

图片4

Apache Atlas元数据 最全资料_第4张图片

 

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.csdn.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.csdn.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.csdn.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.csdn.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.csdn.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.csdn.net/hblicy/article/details/106890270

atlas关联spark

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

atlas支持spark表级别

https://blog.csdn.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.csdn.net/tomalun/article/details/105100307

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

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

你可能感兴趣的:(Atlas,大数据)