解决方案

技术11期:Atlas的概念你了解多少?

seo靠我 2023-09-24 16:51:36

导读

在当今大数据的应用越来越广泛的情况下,数据治理一直是企业面临的巨大问题,大部分只是单纯的对数据进行了处理,而数据的血缘、分类等等却很难实现,市场上也急需要一个专注于数据治理的技术框架,这时AtlaSEO靠我s应运而生。

▐  Atlas的定义:

Apache Atlas是Hadoop社区为解决Hadoop生态系统的元数据治理问题而产生的开源项目,它为Hadoop集群提供了包括数据分类、集中策略引擎、数据血缘、安SEO靠我全和生命周期管理在内的元数据治理核心功能。

Atlas支持各种Hadoop和非Hadoop元数据类型,提供了丰富的Rest Api进行集成,对数据血缘的追溯达到了字段级别,对权限也有很好的控制。

▐  AtlSEO靠我as的架构原理:

❑  核心组件:

(1)Core

Ingest/Export(采集导出组件):Ingest组件允许将元数据添加到Atlas;Export组件暴露由Atlas检测到的元数据更改,以作为事件引发,SEO靠我消费者可以使用这些更改事件来实时响应元数据更改。

Type System(类型系统):Atlas允许用户为他们想要管理的元数据对象定义一个模型。类型系统是一个组件,允许用户定义和管理类型和实体。由AtlSEO靠我as管理的所有元数据对象(如Hive表)都使用类型进行建模,并表示为实体。

Graph Engine(图形引擎):Atlas在内部通过图形引擎来管理元数据对象,以实现元数据之间的巨大灵活性和丰富的关系。SEO靠我Graph Engine是负责在Type System中的类型和实体之间进行转换的组件,以及基础图形模型。除了管理图形对象之外,图形引擎还为元数据对象创建适当的索引,以便有效进行搜索。

JanusGraSEO靠我ph(图数据库):用来存储元数据对象。默认情况下,元数据存储配置为HBase,索引存储配置为Solr。

(2)Integration

API:Atlas的所有功能都可以通过Rest Api提供给最终用户,SEO靠我允许创建、更新和删除类型和实体。它也是查询和发现通过Atlas管理的类型和实体的主要方法。

Messaging:除了API之外,还可以选择使用基于Kafka的消息接口与Atlas集成。这对于将元数据对象SEO靠我传输到Atlas以及Atlas使用可以构建应用程序的元数据更改事件都非常有用。

(3)Metadata Source

Atlas支持与许多元数据源的集成,目前支持以下数据源获取和管理元数据:hive、sqSEO靠我oop、storm、falcon。

(4)Applications

Atlas Admin UI:是一个基于Web的应用程序,提供了搜索界面和类Sql的查询语言,可以用来查询由Atlas管理元数据类型和对SEO靠我象。Admin UI使用Atlas的Rest API来构建其功能。

Tag Based Policies::Apache Ranger 是针对 Hadoop 生态系统的高级安全管理解决方案,与各种 HaSEO靠我doop 组件具有广泛的集成。通过与 Atlas 集成,Ranger 允许安全管理员定义元数据驱动的安全策略,以实现有效的治理。Ranger 是由 Atlas 通知的元数据更改事件的消费者。

BusinSEO靠我ess Taxonomy:从元数据源获取到 Atlas 的元数据对象主要是一种技术形式的元数据。为了增强可发现性和治理能力,Atlas 提供了一个业务分类界面,允许用户首先定义一组代表其业务域的业务术SEO靠我语,并将其与 Atlas 管理的元数据实体相关联。业务分类法是一种 Web 应用程序,目前是 Atlas Admin UI 的一部分,并且使用 REST API 与 Atlas 集成。

▐   Atlas ASEO靠我PI

主要是对Type、Entity、Attribute这3个构件的增删改查操作,里面封装了很多配置,留下API和Admin UI供外部使用。

Type:Atlas中的“类型”是一个定义,说明如何存储并访SEO靠我问特定类型的元数据对象。类型表示一个特征或一个特征集合,这些属性定义了元数据对象。具有开发背景的用户将识别类型的相似性,以面向对象编程语言的“Class”定义或关系的“table schema”数据库SEO靠我

Entity:Atlas中的一个“实体”是类“Type”的特定值或实例,因此表示特定的元数据对象。回指我们的面向对象的类比编程语言,“instance”是某个“Class”的“Object”。

AttSEO靠我ribute:属性定义在复合metatypes中,如Class和Struct。可以简单将属性称为具有名称和metatype值。

►  例子1:使用Type定义一个Hive table,并具有相关的attSEO靠我ribute

Name: hive_table

MetaType: Class

SuperTypes: DataSet

Attributes:

    name: String (name of the table)

dSEO靠我b: Database object of type hive_db

    owner: String

    createTime: Date

    lastAccessTime: Date

    comment: String

reSEO靠我tention: int

    sd: Storage Description object of type hive_storagedesc

partitionKeys: Array of objects oSEO靠我f type hive_column

    aliases: Array of strings

    columns: Array of objects of type hive_column

parameters: SEO靠我Map of String keys to String values

    viewOriginalText: String

    viewExpandedText: String

tableType: StringSEO靠我

    temporary: Boolean

►  例子2:一个Entity的定义

id: "9ba387ddfa76429cb791ffc338d3c91f"

typeName: “hive_table”

valuSEO靠我es:

    name: “customers”

    db: "b42c6cfcc1e742fda9e6890e0adf33bc"

    owner: “admin”

    createTime: "20160620T06:

13:SEO靠我28.000Z"

    lastAccessTime: "20160620T06:

    13:28.000Z"

    comment: null

    retention: 0

sd: "ff58025f685441959f753aSEO靠我3058dd8dcf"

    partitionKeys: null

    aliases: null

    columns: ["65e2204f6a234130934a9679af6a211f",

"d726de70facSEO靠我a46fb9c99cf04f6b579a6",

    ...]

    parameters: {"transient_lastDdlTime": "1466403208"}

viewOriginalText: nullSEO靠我

    viewExpandedText: null

    tableType: “MANAGED_TABLE”

    temporary: false

►  例子3:

(1)获取所有的types

GET http://atlasSEO靠我serverhost:port/api/atlas/types

GET http://atlasserverhost:port/api/atlas/types?type=STRUCT|CLASS|TRASEO靠我IT

(2)获取某一个type

GET http://atlasserverhost:port/api/atlas/types / {type_name}

(3)创建新type

POST http://atlSEO靠我asserverhost:port/api/atlas/type

(4)创建新entity

http://atlasserverhost:port/api/atlas/entities (entitiesSEO靠我:是一个数组)

(5)获取一个entity

GET http://atlasserverhost:port/api/atlas/ entities /{guid}   (guid是entity的id)

(6SEO靠我)获取一个包含某个attribute(属性)的entity

GET http://atlasserverhost:port/api/atlas/entities?type={type_name}&p rSEO靠我operty={unique_attribute_name}&value={unique_attribute_value

(7)更新entity的一个attribute属性

POST http://atlSEO靠我asserverhost:port/api/atlas/entities/{GUID}

❑  血缘关系

Json中每两个Table(entity)之间需要一个Process进行连接,形成一条血缘关系图,首末两SEO靠我端使用inputs,outputs进行entity关联。

{

    "entity":{

        "typeName":"Process",

        "attributes":{

"qualifiedName":"table_03@SEO靠我datag@10.10.66.30",

            "createdBy":"caozqaAPI",

            "createTime":"2017-08-25T13:15:25.369Z",

"updatedBy":"caozSEO靠我qaAPI",

            "updateTime":"2017-08-25T14:12:45.246Z",

            "name":"table_01",

"comment":"rdbms_table API insert tSEO靠我est",

            "description":"rdbms_table  手动输入",

            "owner":"caozqa",

            "type":"table",

"contact_info":"table_03_infoSEO靠我",

            "inputs":[{

                "guid": "eddcde3c-92a2-4cfc-86d1-6ea43f6497b0",

                "typeName": "rdbms_table"

            }],

"outputs":[{SEO靠我

                "guid": "f438d921-ff4c-4838-bdca-3b868bbed825",

                "typeName": "rdbms_table"

            }]

        }

    }

}

代码中可以找到一个Process类,该类继承自SEO靠我Asset类型,所以自带有name,owner,description,quailifiedName四种属性,它自己特有的inputs和outputs表示该过程的输入输出,它是Atlas血缘管理中所有SEO靠我类型的超类,在概念上,它可以用于表示任何数据变换操作。

例如,将原始数据的 hive 表转换为存储某个聚合的另一个 hive 表的 ETL 过程可以是扩展过程类型的特定类型。流程类型有两个特定的属性,输SEO靠我入和输出。输入和输出都是 DataSet 实体的数组。

因此,Process 类型的实例可以使用这些输入和输出来捕获 DataSet 的 lineage 如何演变,例如hive_process,sqooSEO靠我p_process 类型,在rdbms中直接使用Process 来存储血缘关系。

►  查询API的方式,采用base验证,get请求:

http://ip:port/api/atlas/v2/lineaSEO靠我ge/58182d3b-0777-4297-aae8-949368ef7bc5

总结:这一篇文章中介绍了Atlas相关的基础知识及架构原理,我们可以了解到Atlas的Rest API使用以及数据血缘相关SEO靠我的治理。

参考资料:

https://www.jianshu.com/p/4eee91bc926c

https://www.lagou.com/lgeduarticle/72927.htm

想了解更多关于人工SEO靠我智能的资讯

欢迎关注公众号:普适极客

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2