Amundsen在REA Group公司的应用实践
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由于其功能,易用性和开源性也会成为最优选择~
Amundsen在REA Group公司的应用实践的更多相关文章
- mysql group replication观点及实践
一:个人看法 Mysql Group Replication 随着5.7发布3年了.作为技术爱好者.mgr 是继 oracle database rac 之后. 又一个“真正” 的群集,怎么做到“ ...
- 流媒体与实时计算,Netflix公司Druid应用实践
Netflix(Nasdaq NFLX),也就是网飞公司,成立于1997年,是一家在线影片[租赁]提供商,主要提供Netflix超大数量的[DVD]并免费递送,总部位于美国加利福尼亚州洛斯盖图.199 ...
- CI Weekly #7 | Instgram/Quora 等大公司如何做持续部署?
终于,你们期待的 flow.ci iOS 项目持续集成 开始公测了.在这几个工作日, flow.ci 做了些许「功能优化」与「问题修复」,性能和体验都在持续优化中.比如: iOS 快速入门文档更新: ...
- 契约测试框架-Pact实践
在前一篇博客中我们讲到契约测试是什么,以及它能给我们软件交付带来什么价值,本次将介绍一个开源的契约测试框架Pact,它最初是用ruby语言实现的,后来被js,C#,java,go,python 等语言 ...
- 中小公司PMO不一样期间的责任
中小公司,又称中小型公司或中小企,它是与所在行业的大公司对比在人员规划.财物规划与运营规划上都对比小的经济单位.此类公司一般可由单自个或少数人供给资金构成,其招聘人数与营业额皆不大,因此在运营上多半是 ...
- 《深入实践Spring Boot》阅读笔记之一:基础应用开发
上上篇「1718总结与计划」中提到,18年要对部分项目拆分,进行服务化,并对代码进行重构.公司技术委员会也推荐使用spring boot,之前在各个技术网站中也了解过,它可以大大简化spring配置和 ...
- 构建安全可靠的微服务 | Nacos 在颜铺 SaaS 平台的应用实践
作者 | 殷铭 颜铺科技架构师 本文整理自架构师成长系列 3 月 19 日直播课程. 关注"阿里巴巴云原生"公众号,回复 "319",即可获取对应直播回放链接 ...
- Android手机QQ的UI自动化实践
本文首发于果的博客园,原文链接:https://www.cnblogs.com/yuxiuyan/p/14992682.html, 转载请注明出处. UI自动化 我们为什么要搞UI自动化 可能很多同学 ...
- TCP长连接实践与挑战
点这里立即申请 本文介绍了tcp长连接在实际工程中的实践过程,并总结了tcp连接保活遇到的挑战以及对应的解决方案. 作者:字节跳动终端技术 --- 陈圣坤 概述 众所周知,作为传输层通信协议,TCP是 ...
随机推荐
- 图解 git stash
图解 git stash # 暂存本地 变化 $ git stash # 复原 $ git stash pop The "git stash" command can help y ...
- 最新 Vue 源码学习笔记
最新 Vue 源码学习笔记 v2.x.x & v3.x.x 框架架构 核心算法 设计模式 编码风格 项目结构 为什么出现 解决了什么问题 有哪些应用场景 v2.x.x & v3.x.x ...
- HTML5 drag & drop & H5 DnD
HTML5 drag & drop H5 DnD https://html5demos.com/ demos https://html5demos.com/dnd-upload https:/ ...
- webpack async load modules & dynamic code splitting
webpack async load modules & dynamic code splitting webpack 按需/异步加载/Code Splitting webpack loade ...
- html5 useful skills blogs
html5 useful skills blogs preload & prefetch https://www.30secondsofcode.org/snippet/ary blogs h ...
- NGK算力持有好处多多!SPC、VAST等免费拿!
众所周知,NGK是分布式存储的,作为Web3.0以及数字经济时代的基础设施,为数字加密市场带来了全新的商业模式和经济业态,但是,这只是一个重要的起点,真正的价值还在后面! 为了满足NGK生态建设者强烈 ...
- C++实现String类
1 #include<iostream> 2 #include<cstring> 3 4 class String 5 { 6 public: 7 String(); 8 St ...
- c语言:分治算法之大数相乘
我们把整数A由规模n分为n1和n2,把整数B由规模m分为m1和m2,如下图: 则A分为n1位的A1和n2位的A1,B分为m1位的B1和m2位的B2,如下式所示: 以此类推,我们可以把A1.A2.B1. ...
- 关于GitHub 搭建 Hexo 总结
问题描述 在更新上传了一篇新博客后,本地运行http://localhost:4001正常,而连接到Github仓库便爆出404错误. 更新博客后,依次执行: 1 hexo clean 2 hexo ...
- docker启动ubuntu的桌面环境
一.概述 由于最近一段时间在家办公,国内服务器在阿里云,国外站点在aws.家里的移动宽带比较差,无法访问aws. 所以尝试在阿里云启动docker,找到一个lxde桌面环境的ubuntu镜像. 二.启 ...