数据血缘之 Apache Atlas

Apache Atlas 是一款开源的元数据管理和治理工具,并且提供了 REST API 对外接口,可以非常方便地接入到相应的数据平台系统中。Atlas 也提供 web 界面对元数据进行管理,企业可以对数据库元数据建立资产目录,并对这些资产进行分类和治理,为数据分析,数据治理提供高质量的「元数据」(可以理解成描述数据的数据)信息。

Atlas 主要功能

  • 数据分类
    定义、注释和自动捕获数据集和底层之间的关系元素包括源、目标和派生过程
  • 安全审计
    数据访问的日志审计
  • 搜索和血缘关系
    元数据信息及数据之间的血缘
  • 安全与策略引擎
    结合ApacheRanger来设置数据的访问权限

Atlas架构

从 Atlas 的架构中,可以看到 Atlas 所依赖的生态体系是异常庞大。因此对于整体系统中的外部引用也需要确保能够正常安装。
Atlas high level architecture

Atlas Core

  • Type System : Atlas 允许用户为他们想要管理的元数据对象定义一个模型。该模型由称为“类型” 的定义组成。“类型” (类)的 实例被称为 “实体” 表示被管理的实际元数据对象。类型系统是一个组件,允许用户定义和管理类型和实体。由 Atlas 管理的所有元数据对象(例如Hive表)都使用类型进行建模,并表示为实体(类对象,一条数据)。
  • Ingest / Export : Ingest 组件允许将元数据添加到 Atlas。类似地,Export 组件暴露由 Atlas 检测到的元数据更改,以作为事件引发,消费者可以使用这些更改事件来实时响应元数据更改。
  • Graph Engine : 在内部,Atlas 通过使用图形模型管理元数据对象。以实现元数据对象之间的巨大灵活性和丰富的关系。图形引擎是负责在类型系统的类型和实体之间进行转换的组件,以及基础图形模型。除了管理图形对象之外,图形引擎还为元数据对象创建适当的索引,以便有效地搜索它们。
    对于Graph底层气依赖的 JanusGraph, 其是一个开源的分布式图形数据库,可以处理大规模的图形数据,支持OLTP和OLAP操作,同时也支持多种后端存储引擎。JanusGraph提供了一个可扩展的架构,可以通过添加新的节点来增加容量和吞吐量,同时还支持图形分区和数据分片,可以在多个节点上存储和处理数据。JanusGraph还提供了丰富的图形算法和查询语言,可以用于构建各种类型的应用程序,如社交网络、知识图谱、推荐系统等。JanusGraph的主要特点包括高性能、可扩展性、可靠性和灵活性。

默认原生支持从以下源抽取元数据。

  • HBase
  • Hive
  • Sqoop
  • Storm
  • Kafka

核心组件概念

Atlas 中主要有以下核心组件,这些需要我们着重了解。通过 REST API 自定义建模其实就是对以下组件的增删查改操作。

  1. Type
    元数据类型定义,这里可以是数据库,表,列等,还可以细分 mysql 表( mysql_table ),oracle 表( oracle_table )等,atlas自带了很多类型,如 DataSet,Process 等,一般情况下,数据相关的类型在定义类型的时候都会继承 DataSet,而流程相关的类型则会继承 Process,便于生成血缘关系。我们也可以通过调用 api 自定义类型。这是一切的起点,定义完类型之后,才能生成不同类型的元数据实体,生成血缘关系,我个人更喜欢把元数据类型称之为建模。

  2. Classification
    分类,通俗点就是给元数据打标签,分类是可以传递的,比如 A 视图是基于 A 表生成的,那么如果 A 表打上了 a 这个标签,A 视图也会自动打上 a 标签,这样的好处就是便于数据的追踪。

  3. Entity
    实体,表示具体的元数据,Atlas 管理的对象就是各种 Type 的 Entity。

  4. Lineage
    数据血缘,表示数据之间的传递关系,通过 Lineage 我们可以清晰的知道数据的从何而来又流向何处,中间经历了哪些操作,这样一旦数据出现问题,可以迅速追溯,定位是哪个环节出现错误。

Altas 使用一览

登陆界面
登陆

实体信息
实体

血缘测试
血缘

结语

通过上述介绍,可以非常方便地了解 Atlas 的基本介绍,可以看出对于数据治理和数据血缘方面的管理可以通过 Atlas 来进处理。此外,通过 REST API 可以进行定制二次化开发,深度融合进现有基础架构。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇