“你能给我 X 的数据吗?”——数据科学家可能经常收到这样的问题,我们的团队也是如此。
尽管在大多数情况下,人们索要的数据并非他们真正需要的,但这却是一个信号,表明有些事情不对劲。
我们为什么为数据分析团队引入 OKR
我们意识到,收到这些问题的原因之一是我们未能为自助服务分析奠定基础。我们必须面对现实,承认眼前存在的问题:
- 我们在教育人们如何使用和分析数据方面做得不好;
- 由于不同数据源之间集成不佳,非工程师或没有数据库和 SQL 知识的人无法合并数据进行分析;
- 数据科学成为了数据驱动决策的瓶颈,并且由于我们的速度太慢,甚至阻碍了数据驱动决策;
我们需要一种更好的策略来使数据更易于访问——并且我们需要一个框架来统一团队并跟踪进度。那时我们转向了 OKR(目标与关键成果)。
什么是 OKR,为什么它对分析团队有用?
必须进行战略转变,以提高数据可访问性并实现自助服务分析,而且我们需要一个框架来正确地统一团队并能够衡量我们的进展。在此期间,我们的公司开始研究 OKR(目标与关键成果)。OKR 是一种面向团队的目标设定方法,可帮助您设定可衡量的目标。关键思想是,您需要定义 **宏大的目标**,每个目标由 **3-5 个关键成果** 来衡量,可以使用以下模板:
我将通过 [关键成果] 来实现 [目标]。
我们的数据科学团队希望成为先驱,并尝试使用该框架。
我们的第一个 OKR:使公司范围内的数据可访问
- 我们希望共同制定团队目标,以提高一致性和目标所有权;
- 我们希望能够以透明的方式衡量我们的进展;
- 我们的日常工作应与我们想要实现的目标紧密相关;
我们一起制定并分析了当前情况,以得出目标和关键成果。我们的目标是为未来的更大进步奠定基础,并开始设置数据仓库结构,其中包含预先连接和处理好的表,这些表易于我们的业务用户进行分析。因此,我们设定的一个示例目标是 **“公司中的每个人都可以访问数据”**。
在 Metabase 中跟踪 OKR 进度
为了保持目标可见且可操作,我们在 Metabase 中创建了一个仪表板来跟踪 OKR 进度。每周,我们在 OKR 检查中一起回顾仪表板。
这包括我们用来衡量成功的以下关键成果:
- 所有新的 Metabase 问题都使用集中的数据仓库
- Metabase 中的问题遵循一致的文件夹结构
- 仓库中的每个表都有描述
- 业务用户使用的每个列都有描述
乍一看,这些听起来像是基本得不能再基本了的关键成果。然而,它们在衡量基本可访问性方面发挥了关键作用。
我们在 Metabase 中创建了一个 仪表板 来衡量我们的进度,并在我们每周的 OKR 进度检查中查看数据。

我们为在 Metabase 中设置 OKR 仪表板所采取的步骤
免责声明:以下步骤针对使用 BigQuery 的仓库设置以及运行 PostgreSQL 数据库的 Metabase 实例进行了定制。
- 将 Metabase 连接到您的 BigQuery 项目(文档)
- 将 Metabase 连接到存储 Metabase 数据的 PostgreSQL 数据库(连接到 PostgreSQL 数据库的文档)
- 创建您想在仪表板中看到的问题(参考下面的模板查询)
- 将所有新创建的问题合并到一个 仪表板 中。
查询模板
如果您想构建类似的东西,这里有一些查询模板可以帮助您入门。为了使其适用于您,您可能需要替换以下查询中的一些变量:
<YOUR_DATA_REGION>:您的数据存储区域,例如 region-europe-west1 <YOUR_GOOGLE_PROJECT_NAME>:您的 Google Cloud 项目名称
带描述的 dbt 仓库表百分比
显示使用 dbt 创建的仓库表和视图的描述进度。
我们为此使用了这个 SQL 查询:
WITH descriptions AS (
SELECT
table_name,
1 AS has_description,
FROM `<YOUR_DATA_REGION>.INFORMATION_SCHEMA.TABLE_OPTIONS`
WHERE
option_name = 'description'
AND option_value <> '""'
AND table_schema LIKE 'dbt%'
)
SELECT
SUM(COALESCE(has_description, 0)) / COUNT(*) AS ratio
FROM `<YOUR_DATA_REGION>.INFORMATION_SCHEMA.TABLES`
LEFT JOIN descriptions USING(table_name)
WHERE
table_catalog = '<YOUR_GOOGLE_PROJECT_NAME>'
AND table_schema = 'dbt_marts'
带描述的仓库列百分比
显示带有描述的仓库表列的进度。
我们为此使用了这个 SQL 查询:
SELECT
SUM(IF(description IS NOT NULL AND description != '', 1, 0)) /
COUNT(*) AS ratio,
FROM `<YOUR_DATA_REGION>.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS`
WHERE
table_catalog = '<YOUR_DATA_REGION>'
AND table_schema = 'dbt_marts'
按数据源新创建的 Metabase 问题
显示每月按数据源划分的新创建问题所占的份额。不包括使用 Metabase 数据库的问题。
我们为此使用了查询生成器。

最终思考:为什么 OKR 对数据分析团队有效
为我们的数据分析团队实施 OKR 帮助我们从被动支持(回答无休止的临时请求)转变为主动赋能(构建赋能他人的系统)。我们朝着成为推动战略而非仅报告战略的团队迈出了更坚实的一步。
如果您的团队因一次性数据请求而不堪重负,或者在团队目标一致性方面遇到困难,那么设定 OKR 可能是您工作取得清晰度、所有权和动力的改变。