REA Group是一家专门面向房地产与实业资产的跨国数字广告公司。
他们主要为消费者提供房地产购买、出售与租赁服务,同时发布各类房产新闻、装修技巧以及生活方式层面的内容。每一天,都有数百万消费者访问REA Group网站。
REA Group每天都需要进行大量的数据分析工作,去分析用户,财务等信息,该公司也掌握了大量的数据。
但是要使用数据,就必须先找到数据所在。在数据工作中面临做多的问题是:这些数据是否存在?我该如何访问?数据存在哪?最后更新时间是什么时候?
实际上,数据科学家和分析人员将大约20%的时间仅用于查找所需的数据,这占用了他们大量的时间和精力。
很多公司都存在类似的问题,也有很多数据治理的解决方案,但是没有一个完美的解决方案。在评估了多种方案以后,REA Group公司最终选择了Lyft的开源元数据引擎Amundsen。本文将介绍其应用实现过程,以及如何进行了定制化的改造。
为什么选择Amundsen
选择合适的解决方案最重要的是充分了解自己的需求,选择最合适自己的。
每一种方案擅长的领域不同,而此次需要的重点是帮助使用者搜索数据,获取有关该数据的基本信息,以及知道该问谁寻找更多的信息。
所以选择Amundsen是基于以下因素:
- 适合 想要的大多数功能,包括与BigQuery和Airflow的集成,都已经在Amundsen中提供。在搜索结果中设置优先级,以查看最常用的表也是可以使用的功能。还需要用户可以查看所有表的元数据。这些都是Amundsen开箱即用的功能。
- 自动化 Amundsen专注于显示自动生成的元数据。这样可以节约大量的人力去手工维护。
- 易于使用 Amundsen具有清晰,直观,快速的UI。
- 开源 开源的优势不仅仅是免费,而且可以灵活的进行定制化研发,而且Amundsen的社区非常活跃,正处于上升期。
但是,在选择Amundsen时,也有很多问题没有解决。
例如,Amundsen当前缺少数据血缘功能,无法显示数据的来龙去脉。
所以必须确定好,如果进行定制化研发,是否有足够的人员可以跟进,这将是额外的开销。
如何实施Amundsen
Amundsen有三个主要的微服务:Frontend服务,Search服务(依赖Elasticsearch)和Metadata服务(依赖Neo4j或者Atlas)
在REA Group,Google BigQuery是其主数据库。技术堆栈主要基于Amazon Web Services(AWS)。
因此,我们针对Amundsen的整个解决方案都部署在AWS中。
所有三个Amundsen微服务都作为容器部署在Amazon Elastic Container Service(ECS)上,Neo4j数据库存储所有元数据,前端通过元数据服务进行查询。
部署好Amundsen的相关服务以后,下一步的难题就是从BigQuery获取元数据,这里使用了Amundsen数据生成器库,Extractor从BigQuery提取元数据并将其引入Neo4j,而Indexer将Neo4j的元数据索引到Elasticsearch中。
定制化研发了Amundsen表详细信息页面
高级搜索页面
未来
在2020年11月发布的Beta版以后,REA Group得到非常好的使用反馈。
但也有很多的问题,比如表描述的缺失,所以必须鼓励数据发布者填写这些描述。随着不断的迭代,REA Group也会为开源社区做出进一步的贡献。包括如何将Amundsen用作其他数据治理工作的补充,例如隐私和数据质量。
随着越来越多的公司意识到元数据的重要性,Amundsen由于其功能,易用性和开源性也会成为最优选择~