OLX Group 是全球互联网巨头 Prosus 公司的一部分。Prosus 是一个全球互联网集团,也是全球最大的技术投资者之一。Prosus 投资了腾讯,Delivery Hero,Udemy 等公司。

OLX Group 为购买,出售和交换产品和服务提供了领先的平台,在全球拥有 20 多个品牌。目前业务覆盖 30 多个国家/地区,在全球设有 35 个以上办事处。OLX 有 7500 多名员工,其中有上千名在产品与技术部门工作。每月都会有 3.5 亿人通过我们的平台购买,出售或交换商品或服务,平均每天用户访问平台会产生超过 40 亿个事件。

在 OLX Group,我们相信数据的力量。我们每天收集的数据都会影响我们的业务决策。我们会构建各种仪表板,机器学习模型等来辅助决策。

Kylin 在数据架构中的作用

接下来我来介绍一下 Kylin 在我们的数据基础架构中的作用。先介绍一下 OLX 的数据流。首先,我们会使用一些内部工具从产品数据库和设备中收集数据。所有数据都存储在数据湖中,作为我们的数据存储区。

在这里需要特别提及的是,我们已经建立了一个数据湖,但只有公司内部的少数人才能访问它,也是完全符合数据保护法案的。
apache-kylin-on-aws-olx

在收集和治理数据之后,OLX 中的每个团队都可以向专用的精简数据存储(称为存储库)请求一些数据。这样,我们就可以完全控制我们数据的使用。
最后,我们会使用 Odyn 的数据处理运营数据中心的功能。用户可以计划自己的 ETL 和/或其他工作负载,并将结果存储回存储库中。这些处理好的数据已准备好接入用作加速分析查询的加速层的 Apache Kylin。

apache-kylin-on-aws-olx

现在我们来关注 Kylin 在 OLX Group 数据架构中的作用。大家可以看到我们的 Apache Kylin 平台设置的流程。我们使用 Kubernetes 来部署 Apache Kylin,Spark 和 Hive。值得一提的是,为了将 Apache Hive 在 Kubernetes 上用起来,OLX Group 会将 Apache Spark 作为引擎的一部分。同时,我们使用 Amazon EMR 将 Amazon Kylin 的 HBase 集群与 Hadoop HDFS 托管在一起,并且将数据备份到 S3 中。该数据架构还拥有一个自动还原过程,当发现部署中发生崩溃时,该过程可以随时从 S3 恢复所有环境。OLX Group 将 OKTA 用作用户登录的 SAML 联邦身份认证,也把 OpenLDAP 用于用户授权。我们会将 Tomcat 会话存储在 Memcached 中,来将部署的停机时间降至零。该数据架构使用 Amazon Aurora 存储 Hive 元存储数据。

我们拥有和 OLX 其余数据基础架构完全集成的 Apache Kylin。分析师和非技术用户可以使用一致、全面监控、稳定且可扩展的跨团队环境,轻松顺畅地构建多维数据集并使用 Apache Kylin。我们还为 Apache Kylin 提供了量身定制的每日 HBase 备份和自动还原功能。

Kylin 实践分享

apache-kylin-on-aws-olx

接下来我来分享一些案例和使用 Kylin 时遇到的一些困难。如前所述,我们在多个地方使用数据。我们遇到的第一个困难就是为我们的全局报表构建一组仪表板。 我们的目标是使它们能够以亚秒级的延迟快速查询,而且还具有足够的灵活性以计算给定过滤条件下的非累加度量。同时也能与 Tableau(我们的主要可视化工具)配合使用。

另一个具体问题是建立自助服务分析平台。 与仪表板不同,在自助服务工具中,我们无法真正预测用户将如何准确使用度量和维度,这意味着我们不知道 Cube 应当提供的查询。因此,Cube 的目标是更加灵活。在这种情况下,我们可以接受边缘情况下较慢的响应时间。

最后,我想向大家分享一些数字。到 2020 年 11 月,我们在生产中使用了 39 个 Cube,支持 Tableau 用,目前有超过 300 位分析师在使用,执行了将近 40 万次分析查询,返回了超过 5,000 亿行的数据,并扫描了 500 TB 以上的数据。

更多相关实践的分享,欢迎大家观看完整会议视频👇
https://www.bilibili.com/video/BV1CK4y157J4

Author
Mateusz Jerzyk
OLX Group 数据基础架构团队高级数据工程师。2019 年曾协助举办柏林站 Apache Kylin Meetup。
标签:
Apache Kylin
AWS
EMR
Kubernetes
数据基础架构
数据湖