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