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是 ...
随机推荐
- CSS ::marker All In One
CSS ::marker All In One CSS pseudo element / CSS 伪元素 /* user agent stylesheet */ ::marker { unicode- ...
- Linux directory tree
Linux directory tree https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard https://en.wikipedi ...
- Google Advanced Search Skills
Google Advanced Search Skills site:
- flutter web in action
flutter web in action flutter for web https://flutter.dev/web https://flutter.dev/docs/get-started/w ...
- 微信小程序 components
微信小程序 components wx-xcx-components https://developers.weixin.qq.com/miniprogram/dev/component/ https ...
- js 斩掉单行注释和多行注释
var json = ` // e { /* hello */ name:/* a */ 'ajanuw' // c /** * * hello * ? adsd * todo */ // c } ` ...
- 微服务学习.net5+consul
趁着刚过完年,还没有开始做业务的时候,学习下consul 概念自己去官网看,这里只讲下具体实现 官网下载https://www.consul.io/downloads 我下载的是Windows版本 启 ...
- MPAndroidChart实现LineChart(折线图)
一.参照油管视频做法 1.引入依赖 新建Android工程,然后分别在build.gradle(Project:...)添加 maven { url 'https://jitpack.io' } 在b ...
- Linux进程管理工具Supervisor的安装配置
目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...
- 解决 DatePickerDialog 在 Android7.0 API24 上使用 AlertDialog.THEME_TRADITIONAL、AlertDialog.THEME_HOLO_DARK、AlertDialog.THEME_HOLO_LIGHT等样式时无法显示为 Spinner 样式的问题
DatePickerDemoForAndroid24 解决 DatePickerDialog 在 Android7.0 API24 上使用AlertDialog.THEME_TRADITIONAL.A ...