这是彭文华的第101篇原创
上周去听了爱奇艺的分享会,发现他们数据图谱用的就是Atlas。后来有朋友找我要爱奇艺数据图谱的产品,这有啥说的啊?哥们给不了你爱奇艺,但是能给你爱奇艺用的Atlas!
为啥叫Atlas?
希腊神话有个叫Atlas的大力神,因为起义失败,被罚扛着地球(一说天),后来他太累了,就让人拿着美杜莎的头,把他石化了。
因为他扛着整个地球,欧洲人发明地图的时候就借用了他的名字。所以atlas翻译过来就是“地图册”。另外,人的颈椎第一节也叫atlas,意指跟atlas一样,上面顶个球。有本书叫《阿特拉斯耸耸肩》,没准你读过。阿特拉斯抗着地球,然后又是第一节颈椎,它耸耸肩,你品,你细品。。。
扯回来啊~~广大数据厂商长期以来饱受数据治理的痛苦,也没有一个好的产品能用。于是一位英雄就出来了。Hortonworks公司发起数据治理倡议,做了一个数据治理的产品,叫啥呢?就叫数据地图吧!然后Apache Atlas(Apache数据地图)就出来了。
基本上你能想到的数据治理功能,Atlas都已经有了。引用一段Atlas的原话:
Apache Atlas为组织提供开放的元数据管理和治理功能,以建立其数据资产的目录,对这些资产进行分类和治理,并为数据科学家,分析师和数据治理团队提供围绕这些数据资产的协作功能。
Atlas能干啥?
Atlas超级好用啊,可以只通过配置,就能接入所有的元数据,并把数据的血统给画出来:
并且还可以通过很简单的操作,在上游进行操作后,会对下游所有表都打上相应的标签,便于做影响分析。
同时呢,Atlas还能跟Apache的数据生命周期管理组件、数据安全管理组件联合,形成一个超级强大的数据治理兄弟团,厉害吧?
至于Atlas的元数据管理功能我就不说了,那就是增删改查而已,只不过他支持动态元数据更新监控,也就是说那边表结构改了,这边就能感知出来,这也不难实现。
解剖Atlas
放个架构图镇楼~~
这是从apache atlas官网上扒下来的图。
最底层是存储引起,元数据是存在Hbase的,索引在solr里,上面是JanusGraph图数据库。现在索引也能放在ES里,上图没更新而已。
再往上一层就是Core核心层了。核心层包括三个部分:
- 类型系统(Type System): 就是用来定义各种元数据 对象实体的。
- 图形引擎(Graph Engine:): Atlas用图数据库保存和管理所有元数据,所以下面才会有JanusGraph存储元数据对象。
- 采集/导出(Ingest / Export):其实就是数据采集和导出功能,把所有的元数据采集到Atlas。
再往上就是集成层,可以通过kafka或者API进行数据集成。
然后就是元数据层,Atlas提供Hive、Sqoop、Falcon、Storm、Hbase的元数据提取组件,这些是开箱即用的。Falcon也是Apache的一个数据治理组件之一,是数据生命周期管理工具,重点是对数据管道的监控。
最后是应用层:
- 基于标签的策略:Atlas还可以与Apache 的Ranger组件集成,增强数据安全管控能力。
- Atlas Admin UI:Atlas提供一个管理界面,用来管理各种接入的元数据。通过类似于SQL的语言,查询Atlas管理的元数据类型和对象。
- 同时,Atlas还提供各种数据血缘、数据生命周期可视化、快速数据建模等各种应用。
咋样?还阔以吧?装上Atlas,基本上元数据管理的问题就解决了。各种数据血缘、影响分析的功能就直接搞定。这就是所谓的数据地图了。
Atlas咋用?
你可以到Apache Atlas官网去下载 点击:http://atlas.apache.org/
随便找一个版本就行了,不过要注意各个组件的版本要求,基本上问题都是这个原因导致的。