数据发现开源工具调研

必要性

数据发现平台的目是帮助更好的发现、理解和使用数据。就是解决以下问题:数据存在哪里?如何使用这些数据?数据做什么?数据是如何创建的?数据是如何更新的?

通过 Amundsen,Lyft 将其数据团队的生产力提高了20%。同样,DataHub 帮助 LinkedIn 实现了数据大众化——每周有1,500 名员工访问 DataHub,以搜索、发现和使用数据来完成他们的工作。

开源工具

  • Atlas(Apache,Cloudera)
  • Amundsen(LF AI & Data,Lyft)
  • DataHub(Apache,Linkedin

评估结论

推荐Datahub。功能完整;开源社区相当活跃;开发语言Java、Python为主,比较适合团队现状。

Amundsen优势在数据发现,微服务架构及Python+TypeScript语言为主两个方面与团队现状不符。

Atlas纯Java为主开发语言与团队现状最符,但太偏技术化。

演示环境:

工具 Atlas Amundsen DataHub
开发者 Cloudera Lyft LinkedIn
架构 元数据摄取的Hook 基于 ETL 的元数据摄取 基于插件的元数据摄取
特征 1. 搜索和发现
2. 使用 JanusGraph 作为元数据库和 Solr 进行搜索
3. 专注于分类、数据治理和血缘(表和列)
4. 细粒度访问控制(Ranger)
5. 数据分类和标记
6. 为 Hadoop 构建生态系统并使用 Hive 元数据与任何数据源一起工作
1. 易于设置、修改和部署
2. 搜索和发现
3. 多后端支持
4. 数据血缘(表和列)
5. 数据分类和标记
1. 搜索和发现
2. 使用 Kafka 与流生态系统集成并支持 GraphQL
3. 数据血缘(基于列的血缘在路线图中)
4. 细粒度的访问控制
5. 数据分类和标记
部署 没有官方部署建议 1. Kubernetes
2. AWS ECS
3. 独立docker
1. Kubernetes
2. 谷歌云 GKE(谷歌 Kubernetes 引擎)
3. 独立docker
认证 1. 文件
2. Kerberos SSO
3. LDAP
OAuth OIDC(OpenID 连接) 1. OAuth OIDC
2. JaaS (Java Authentication and Authorization Service)
鉴权 1. 基于 Ranger 的授权
2. 数据屏蔽
在路线图中 平台和元数据策略
路线图和更新 1. 一个公开的 JIRA 项目
2. Medium 上社区的博客文章
1. Amundsen 路线图
2. Medium 和 Stemma 的更新
3. GitHub(也可以让你贡献)
1. DataHub 路线图
2. 媒体更新

评估项

功能

  • Atlas:较少关注集成,而更多地关注:
    • 信息分类:用户可以使用词汇表添加特定于业务的上下文信息。
    • 数据治理:治理团队可以更好地控制数据库实体的分类。此外,词汇表和分类可以相互关联以简化管理。
    • 集成各种元数据源:使用 Hive,用户可以连接任意数量的元数据源,而无需自定义集成。此外,Atlas 默认完全支持所有基于 Hadoop 生态系统的数据源。
  • Amundsen:易于使用,支持多种后端环境,并提供复杂的预览功能,帮助用户更好地了解他们的数据。
  • DataHub:的优势在于其数据治理能力。这些包括:
    • 更精细的访问控制:DataHub 支持列级和数据集级分类、PII 标记、自动数据删除(以帮助遵守 GDPR)等。
    • 数据血缘:在其路线图中,DataHub 承诺列级血缘以及与 Great Expectations、dbt test 和 deequ等测试框架的集成。
工具 Atlas Amundsen DataHub
搜索和发现 支持 支持 支持
认证 支持 支持 支持
Airflow支持 不支持 支持 支持
DBT 不支持 支持 支持
多后端支持 不支持 支持 不支持
表血缘 支持 支持 支持
列血缘 支持 支持 不支持
细粒度的访问控制 支持 不支持 支持

语言

就开发语言来说Atlas最适合我们团队,Datahub次之,Amundsen匹配度最低。

框架 Atlas Amundsen DataHub
语言 Java:60.2%
JavaScript:30.9%
Python:2.9%
HTML:2.8%
SCSS:2.1%
Shell:0.8%
Other:0.3%
Python:67.8%
TypeScript:29.7%
SCSS:2.1%
HTML:0.1%
Makefile:0.1%
Scala:0.1%
Other:0.1%
Java:45.5%
Python:34.4%
TypeScript:17.9%
Shell:0.7%
JavaScript:0.6%
Dockerfile:0.2%
Other:0.7%

社区

  • Apache Atlas 有一个公共 JIRA 项目,但没有明确定义的路线图。文档主要是官网。
  • Amundsen:定期更新,并拥有一个支持该项目的大型社区。官方文档及社区博文。
  • 有一个公共路线图和广泛的社区支持。DataHub 也维护产品路线图并在 Medium 上分享频繁更新。
工具 开源时间 Star Fork Watch 版本数 Contributors Issues PR 最新版本
Atlas 2015年5月 1.3K 692 65 37 115 845,3714 78,101 2021-08-17
Amundsen 2019年10月 3.3K 836 245 95 205 103,507 21,1237 2022-05-17
DataHub 2020年2月 5.6K 1.5K 223 56 241 204,915 34,3982 2022-06-10

Issues、PR都是采用”Open数量 ,Closed数量“的数量展示。

底层架构

工具 数据库 搜索 服务
Atlas JanusGraph Solr REST API、Kafka
Amundsen neo4j Elasticsearch REST API
DataHub neo4j Elasticsearch REST API、GraphQL、Kafka

应用公司或组织

工具 Atlas Amundsen DataHub
公司或组织 Cloudera,其他无相关信息 Lyft、Databricks等38个公司或组织 LinkedIn、海博科技、上海华瑞银行等26个公司或组织

参考链接