国外企业指标管理实践:Airbnb(上)

文摘   科技   2024-06-28 14:08   北京  


国外的许多企业,尤其是大型科技公司和跨国公司,都有着成熟的指标平台支持业务运营和决策过程。例如,Google和Facebook使用自家的数据分析工具来监控用户行为和业务表现;Amazon通过复杂的指标系统来跟踪电子商务和云计算服务的性能;Airbnb开发了Minerva指标平台进行标准化指标计算。

其中,Airbnb投入大量资源构建了指标平台Minerva,其设计理念和实践在国外的数据管理和分析应用领域被广泛讨论。今天我们就一起来深度剖析Minerva指标平台。


Minerva缘起


Airbnb在成立之初也许并不是一家数据驱动型公司,2010年,Airbnb只有一名全职数据分析师,他的笔记本电脑就是Airbnb的数据仓库。随着业务范围在2010年初不断扩大,数据在规模和种类上都不断增长,Airbnb招兵买马有了更多数据科学家。从这个时期开始,Airbnb不断升级数据基础设施,投入资金构建了一套名为“core_data”的核心数仓。

随着“core_data”重要性的不断上升,企业内越来越多的团队希望使用它进行分析、预测和实验。因此,每隔一天就会在“core_data”上手动创建新表,但这些团队其实无法判断核心数仓是否已经存在类似的表。因此,Airbnb核心数仓的复杂性不断增加,数据加工链路无法追踪。当上游发现数据问题并修复,很可能无法传递到下游所有作业。数据科学家和工程师们不得不花费几周来调查数据差异,效率低下,数据问题也很难得到解决。

核心数仓的派生表激增导致了下游分析问题严重

因此,经常会出现一个非常简单的业务指标,不同团队会给出不同的数字,而且完全不知道哪个数字是正确的。比如,CEO想知道上周哪个城市的预订量最多,数据科学和财务部门会通过不同的表、指标定义和业务逻辑给出不同的答案。这就导致了数据科学家、业务团队、决策者都会对数据质量产生怀疑,对数据分析的信任度下降。

面对这些痛点,Airbnb开始了长期的数据基础设施改造。首先是从零开始重建部分关键的业务数据模型,在核心数仓构建统一认证的、精简的、规范化的表,避免不必要的表连接;然后,将这些表整合在一起,创建面向分析的数据集,在业务逻辑发生变化时补填数据;最后,在不同的应用和分析工具中统一、准确地呈现数据。

至此,Airbnb的指标平台Minerva应运而生。Minerva将事实表和维度表作为输入,实现数据反范式化,并将聚合数据提供给下游应用程序。Minerva API 填补了上游数据和下游消费之间的差距,使数据工程团队能够灵活地修改核心表,同时保持对各种下游应用的支持。Minerva API在Airbnb下一代数仓架构中发挥着至关重要的作用。

Minerva在Airbnb的新数仓架构中发挥着核心作用


Minerva的设计原则


根据以上痛点,Airbnb为Minerva确定了几条设计原则。

标准化(Standardized):数据在一个地方统一被准确定义,任何用户都可以查找该定义。

声明式(Declarative):用户定义“是什么”而不是“怎么做”。指标计算、存储或服务的过程完全抽象化,用户不需要了解细节。

可扩展(Scalable):Minerva在计算层和操作上都可扩展。

自恢复(Self-healing):通过智能警报发现数据链路的异常,并实现自动化回填。

一致性(Consistent):数据始终保持一致。如果定义或业务逻辑发生变化,Minerva将自动执行回填,保持最新数据。

高可用(Highly available):数据集更新时,不停机,不影响数据消费。

可验证(Well tested):切换到生产环境之前,用户可以多方面的验证原型和并修改。

接下来我们看一下,部分设计是如何实现的。


标准化

Standardized


在以往的核心数仓中,仅仅表的标准化是不够的,指标的标准化是实现可靠分析应用的关键。毕竟,用户消费的不是表,他们消费的是指标、维度和报告

因此,Minerva专注于指标和维度,而不是表和列。在Minerva定义一个指标,创建者需要提供重要的自描述元数据,通过配置文件明确所有权、血缘和指标描述等信息。在Minerva之前,所有这些元数据都属于公司知识库,但是却并没有明确记录下来,或者分散在各种BI工具中的图表定义里。而在Minerva中,所有定义都是受版本控制的代码,这些配置文件的修改必须经过严格的审查过程。

Minerva配置系统的核心是事件源和维度源,它们分别对应星型模式设计中的事实表和维度表。

事件源和维度源是Minerva的基本组成部分

事件源定义了构建指标的原子事件,维度源包含可以与指标一起使用的属性划分。事件源和维度源用在Airbnb定义、追踪和记录指标和维度。


声明式

Declarative


在Minerva之前,创建一个准确且响应迅速的仪表板并不容易。管理数据集、满足查询性能、避免指标分歧等都是很重的运维工作。Minerva的价值就是大幅简化这些繁琐、耗时的工作流程,让用户能够迅速将数据转化分析应用。

数据科学工作流程改进

使用Minerva,用户可以很方便的定义一个维度集,与临时创建的数据集不同,维度集具有几个用户友好的属性:

①用户只定义“是什么”,不需要关心“怎么做”,终端用户不需要了解复杂的实现细节。

②数据集遵循Airbnb最佳实践,从数据质量检查到连接再到回填,操作经济、高效。

③数据存储高效,经过优化提高下游BI应用的响应速度。

④数据集在Minerva定义公开透明,可被其他用户重复利用,进而减少数据集冗余。

程序化非规范化生成用户可以轻松配置的维度集

通过专注于“是什么”而不是“怎么做”,Minerva提高了用户效率,让用户专注于研究业务趋势、发现问题。由此,Minerva在Airbnb内部便可以顺利推广。


可扩展

Scalable


目前,Minerva支撑5000多个数据集、80多个团队和上千用户,平台成本就成了一个大问题。Minerva通过优化平台计算流程让用户尽可能重用已有的数据,确保一致性的同时减少计算资源的浪费。

Minerva计算流程可以分解为几个不同的阶段:采集数据检查连接处理和服务

采集:根据更新触发机制,将上游数据数据采集到静态的Minerva中。

数据检查:在处理和创建维度集之前,进行数据质量检查,确保上游数据格式正确,如①数据源不为空、②时间戳不为空、③主键唯一、④维度值与预期一致等等。

连接:根据连接键生成维度集。不同维度集引用的相同数据,从相同的上游表中以相同的转换逻辑,进行数据源获取、计算和连接。为提升系统整体效率,还会添加中间数据集。

处理和服务:数据可以进一步聚合和优化,提高最终用户的查询性能,并将数据形成服务。

高级Minerva计算流程

篇幅有限,关于Minerva的自恢复一致性高可用可验证,我们将在下篇文章中详细介绍。

Airbnb作为旅游民宿平台,受大环境影响明显,尤其是在疫情期间市场发生巨变,Airbnb通过Minerva迅速将数据转化为分析和决策。在下一篇中,也会详细介绍Airbnb在特殊时期如何利用Minerva指标平台驱动公司业务。





往期推荐

偶数发布对话式数据分析平台Kepler,会聊天就会数据分析

一次讲清楚实时湖仓数据处理架构如何落地

《分析型数据库技术要求》标准发布,偶数科技等厂商深度参与


大模型、实时需求推动湖仓平台走向开放

Gartner发布2023年最新技术成熟度曲线,偶数科技位列湖仓一体代表厂商

OushuDB × 东方证券:数据仓库信创国产化最佳实践

从北京到南京:偶数在能源行业的数据迁移实践

信通院联合偶数科技等企业发布《云原生湖仓一体白皮书》


↑扫描上方二维码↑
拉你进入技术交流群

偶数成立于2016年,是国家级专精特新“小巨人”企业。专注于云数据平台产品和解决方案,自主研发云原生分布式数据库OushuDB及实时湖仓数据平台Skylab。总部位于北京,在上海、南京、广州、武汉等地设有分支机构。偶数服务了国家电网、中国移动、建设银行等众多世界500强客户。获得国际著名投资机构红杉中国、腾讯、红点中国与金山云的四轮投资,是微软加速器和腾讯加速器成员企业。被评为福布斯中国企业科技50强,Gartner Cool Vendor,IDC Innovator。


点击下方阅读原文获取行业报告

偶数
专注于云数据平台产品和解决方案
 最新文章