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公司的应用实践的更多相关文章

  1. mysql group replication观点及实践

    一:个人看法 Mysql  Group Replication  随着5.7发布3年了.作为技术爱好者.mgr 是继 oracle database rac 之后. 又一个“真正” 的群集,怎么做到“ ...

  2. 流媒体与实时计算,Netflix公司Druid应用实践

    Netflix(Nasdaq NFLX),也就是网飞公司,成立于1997年,是一家在线影片[租赁]提供商,主要提供Netflix超大数量的[DVD]并免费递送,总部位于美国加利福尼亚州洛斯盖图.199 ...

  3. CI Weekly #7 | Instgram/Quora 等大公司如何做持续部署?

    终于,你们期待的 flow.ci iOS 项目持续集成 开始公测了.在这几个工作日, flow.ci 做了些许「功能优化」与「问题修复」,性能和体验都在持续优化中.比如: iOS 快速入门文档更新: ...

  4. 契约测试框架-Pact实践

    在前一篇博客中我们讲到契约测试是什么,以及它能给我们软件交付带来什么价值,本次将介绍一个开源的契约测试框架Pact,它最初是用ruby语言实现的,后来被js,C#,java,go,python 等语言 ...

  5. 中小公司PMO不一样期间的责任

    中小公司,又称中小型公司或中小企,它是与所在行业的大公司对比在人员规划.财物规划与运营规划上都对比小的经济单位.此类公司一般可由单自个或少数人供给资金构成,其招聘人数与营业额皆不大,因此在运营上多半是 ...

  6. 《深入实践Spring Boot》阅读笔记之一:基础应用开发

    上上篇「1718总结与计划」中提到,18年要对部分项目拆分,进行服务化,并对代码进行重构.公司技术委员会也推荐使用spring boot,之前在各个技术网站中也了解过,它可以大大简化spring配置和 ...

  7. 构建安全可靠的微服务 | Nacos 在颜铺 SaaS 平台的应用实践

    作者 | 殷铭  颜铺科技架构师 本文整理自架构师成长系列 3 月 19 日直播课程. 关注"阿里巴巴云原生"公众号,回复 "319",即可获取对应直播回放链接 ...

  8. Android手机QQ的UI自动化实践

    本文首发于果的博客园,原文链接:https://www.cnblogs.com/yuxiuyan/p/14992682.html, 转载请注明出处. UI自动化 我们为什么要搞UI自动化 可能很多同学 ...

  9. TCP长连接实践与挑战

    点这里立即申请 本文介绍了tcp长连接在实际工程中的实践过程,并总结了tcp连接保活遇到的挑战以及对应的解决方案. 作者:字节跳动终端技术 --- 陈圣坤 概述 众所周知,作为传输层通信协议,TCP是 ...

随机推荐

  1. CDD All In One

    CDD All In One 组件驱动开发 (CDD) refs https://www.componentdriven.org/ https://www.learnstorybook.com/int ...

  2. 互联网公司技术岗实习/求职经验(实习内推+简历+面试+offer篇)

    找工作的事基本尘埃落定了,打算把这大半年来积累的经验写下来,基本都是我希望当年找实习的时候自己能够知道的东西,帮师弟师妹们消除一点信息不平等,攒攒RP~ 不要像我当年那样,接到电话吓成狗,没接到电话吓 ...

  3. HTML5 Canvas 2D library All In One

    HTML5 Canvas 2D library All In One https://github.com/search?q=Javascript+Canvas+Library https://git ...

  4. JavaScript Inheritance All in One

    JavaScript Inheritance All in One constructor inheritance prototype chain inheritance "use stri ...

  5. nodejs 调用win32 api

    video 教程文件 win32 api >node -v v12.16.1 >npm install -g node-gyp >npm i @saleae/ffi >node ...

  6. 倒计时2天!2021 NGK新加坡区块链峰会与你不见不散!

    1月31日14时,NGK将于新加坡召开"2021 NGK新加坡区块链峰会",并将在全球开启同步直播.   据了解,本次峰会将汇聚全球二十多位顶尖区块链专家学者,与NGK灵石技术团队 ...

  7. NGK Global伦敦路演:“区块链+能源”必将推动世界性能源革命

    随着区块链技术的发展和应用的不断完善深入,市场的热情也开始活跃高涨,在万众期待下,NGK Global在英国伦敦的路演于7月25日圆满举办. 此次伦敦路演会议中众多行业精英,各社区代表.星盟投资公司资 ...

  8. springboot学习过程随记

    1.整合shiro+jwt(若忘记需结合测试代码springboot-mybatisplus-shiro-demo看) 配置比较简单 定义一个类继承AuthorizingRealm 如下: (1)pu ...

  9. SpringBoot配置本地文件映射路径

    1.前言 在springboot的项目中,如果需要通过项目方式访问本地磁盘的文件,不仅可以使用nginx代理的方式,还可以使用springboot配置的方式进行访问. 实例原因说明:由于上传的图片是要 ...

  10. C#测试--内部类测试

    C#测试--内部类测试 在被测试的代码库的AssemblyInfo.cs中添加"[assembly: InternalsVisibleTo("UnitTest项目名称") ...