为什么您的团队需要一个指标层
“仪表板 A、B 和 C 上的用户数量不同。您能解释一下是怎么回事吗?”
“这份报告中这个计数器的定义已经过时了。我们能尽快修复它吗?”
如果您从事过分析工作,您可能已经无数次听到过这些问题。不一致的指标会导致混乱、浪费时间和对数据失去信任。当报告中显示相同指标的不同数字时,业务用户难以做出决策。与此同时,数据团队最终疲于救火,而不是专注于战略工作。
罪魁祸首?缺乏一个集中的指标层,这是一种在一个地方定义和存储指标的方式,以便组织中的每个人都使用相同的逻辑。
什么是指标层?
指标层(也称为无头 BI 或指标存储)位于数据仓库和商业智能 (BI) 工具之间。它充当定义和管理不同仪表板、报告和应用程序之间指标的单一事实来源。
可以这样理解
- GitHub 集中管理和版本控制您的代码。
- 您的数据仓库充当原始数据和转换数据的中央存储。
- 指标层确保关键指标的业务逻辑在所有 BI 工具中保持一致。
指标层应位于数据存储位置和数据消费方式之间,以实现统一的定义。
您的组织有多个仪表板。它可能也有多个商业智能 (BI) 工具。您真的想在每个输出中一次又一次地定义指标的业务逻辑吗?如果业务发展,逻辑发生变化怎么办?这会增加在某人查看并做出决策时,某个实例稍微偏离或过时的可能性。但是,在多个地方使用一个商定的单一明确定义可以解决这个难题,并且是 DRY 原则(不要重复自己)的一个很好的例子。
如何定义和构建指标层
您不需要进行大量的工程工作即可开始。这里有一个简单的方法:
第 1 步:定义您的指标
首先,写下每个关键指标应如何计算。
提出以下问题
- 我应该使用哪个时间范围?每日?每周?每月?
- 计算用户时如何处理重复项?
- 什么使一个用户“活跃”或“不活跃”?
- 我应该应用哪些过滤器或标志?
一个好的第一步是编写 SQL 查询并将其存储在共享文档中。但是,在报告之间复制和粘贴 SQL 会很快变得混乱。
第 2 步:集中化指标定义
将您的指标定义移动到一个可以被多个 BI 工具访问的单一位置。
一些常见方法:
- 在数据仓库中创建视图或表,用于存储预计算的指标。
- 使用语义层定义可重用的指标。
- 将指标定义存储在 YAML 中(如果使用外部无头 BI 工具)。
第三步:测试和实施
定义指标后,在不同报告中测试它们,以确保它们返回一致的结果。目标是确保无论指标出现在哪里——仪表板、嵌入式报告或 API 调用——它始终显示相同的数字。
结构良好的指标层可减少不一致性,减少重复工作,并建立对数据的信任。
在 Metabase 中阅读更多关于指标的信息。