数据发现开源工具调研
必要性
数据发现平台的目是帮助更好的发现、理解和使用数据。就是解决以下问题:数据存在哪里?如何使用这些数据?数据做什么?数据是如何创建的?数据是如何更新的?
通过 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为主开发语言与团队现状最符,但太偏技术化。
演示环境:
- DataHub:https://demo.datahubproject.io/
工具 | Atlas | Amundsen | DataHub |
---|---|---|---|
开发者 | Cloudera | Lyft | |
架构 | 元数据摄取的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个公司或组织 |
参考链接
- [Data Discovery Platforms and Their Open Source Solutions (eugeneyan.com)](https://eugeneyan.com/writing/data-discovery-platforms/?utm_campaign=Three Data Point Thursday&utm_medium=email&utm_source=Revue newsletter)
- Onebridge | Data Catalogs for Metadata Management
- 数据治理工具-元数据管理 (daimajiaoliu.com)
- Data Catalogs, the Luxury of Choice | by Fadi Maali | Zendesk Engineering
- 2103.07532.pdf (arxiv.org)
- How LinkedIn, Uber, Lyft, Airbnb and Netflix are Solving Data Management and Discovery for Machine Learning Solutions - KDnuggets
- End-to-End Data Discovery, Observability, and Governance on AWS with LinkedIn’s Open-source DataHub | Programmatic Ponderings
- 数据治理方案技术调研 Atlas VS Datahub VS Amundsen - 云+社区 - 腾讯云 (tencent.com)
- Apache Atlas Alternatives — Amundsen, DataHub, Metacat, Databook (atlan.com)
- Github 1.9K Star的数据治理框架-Amundsen - 知乎 (zhihu.com)