数据治理(2) - 元数据管理Atlas

Pros

  1. 支持主流数据源,例如正在用的hive(库,表,列,处理过程)以及sqoop(数据库,处理过程)。此外还有hbase,kafka等。
    业务视角:
  2. 数据字典。有UI界面,可以查看到hive表的schema,表注释,分区字段,存储路径,创建/更新的时间及操作用户等审计日志。可以查看到hive表字段的类型,注释等。
  3. 检索。可以根据表名,表注释,字段注释等进行模糊搜索,快速定位需要查找的表或者字段。
  4. 自动实时采集。例如新建hive表,或者对已存在的hive进行修改,自动实时同步变更信息,无需人工维护更新字典及清洗逻辑
    开发视角:
  5. 血缘关系。维护表级和字段级的血缘关系,可以清楚看到表间上下游的关系,以及清洗的逻辑。当在表中发现有垃圾数据时,可以回溯到该数据是从上游哪个源头引入的。同时,如果需要修改已有的表,也可以看到会影响下游的哪些表。
  6. 表有维护last access time,可以判断哪些表已经废弃,可用于对废弃表的清理
  7. 标签体系,结合ranger(如果使用)做权限管理。可以在atlas对表或者字段打各类标签tag,例如对手机号phone字段标上“PII”个人隐私,在ranger里配置限制特定账号对打上PII标签的数据的读/写权限。

Cons

  1. hive元数据来源于其定义,例如建表语句中的comment注释,当前在用的部分表是没有添加注释的,而且对于枚举值都不会列举出来,这样导致某些表/字段没有任何中文注释/描述,需要查找上下游来确定。在atlas UI界面上的表/字段都有description描述项(类似于备注),但目前没有找到直接在ui上更新该描述的方法,也不知道此描述从何而来。对于枚举项,仍然需要再另外维护文档。
  2. UI界面无法添加修改表的owner责任人。
  3. 没有访问热度统计信息,无法用于区分冷热数据参考。
  4. 暂未支持flink,spark的运行时血缘。
  5. UI界面没有显示所属主题域,所在层等信息
  6. 部署需要引入额外的组件。hbase(用于存储元数据信息), solr/es(用于搜索),kafka(用于自动同步更新元数据变更)。除了单独部署这些组件,atlas也提供内嵌hbase和solr的方式(多用于开发环境验证使用)。
  7. 无数据预览,分区信息。需要结合其他工具,例如cdh套装里的hue。

竞品

  1. Linkedin Datahub是另一个常用的开源工具,具备数据字典,血缘关系,标签等,也可以自修改维护描述,责任人等。基于docker部署。atlas相对datahub成熟,参考资料较为丰富,与apache其他组件适配度更高些。demo: https://demo.datahubproject.io/