Chevron Left

查看所有社区故事

我们如何利用 OKR 提升数据科学团队的数据架构

2024年9月28日

投稿人

Thomas Schmidt

Agrando

photo of Thomas Schmidt

Thomas 是 Agrando 的首席数据科学家,该公司通过数字化力量,使区域农业结构适应未来发展。您可以在 LinkedIn 和 Twitter(@somtom91)上找到 Thomas。

“你能给我 X 的数据吗?” —— 数据科学家们可能经常收到这样的问题,我们团队也不例外。

尽管在大多数情况下,人们索要的数据并非他们真正需要的数据,但这仍然是一个不寻常的信号。

我们为什么要为数据分析团队引入 OKR

我们意识到,收到这些问题的原因之一是我们未能建立自助分析的基础。我们需要面对现实,承认手头的问题:

  • 我们在如何使用和分析数据方面对员工的培训工作做得不好;
  • 由于不同数据源之间的集成不佳,非工程师或缺乏数据库和 SQL 知识的人员无法进行数据合并分析;
  • 当我们效率过低时,数据科学成为了数据驱动决策的瓶颈,甚至阻碍了决策;

我们需要更好的策略来提高数据的可访问性——并且需要一个框架来统一团队并跟踪进展。那时我们开始转向 OKR(目标与关键结果)。

什么是 OKR,它们为何对分析团队有用?

战略需要转向更高的数据可访问性并实现自助分析,同时我们需要一个框架来正确协调团队并衡量我们的进展。在此期间,我们公司开始研究 OKR(目标与关键结果)。OKR 是一种帮助团队设定可衡量目标的设定方法。其核心思想是定义 雄心勃勃的目标,每个目标都可以通过 3-5个关键结果 进行衡量,可以使用以下模板:

我将通过 [关键结果] 来衡量 [目标]

我们的数据科学团队希望成为先行者,尝试这一框架。

我们的第一个 OKR:让全公司的数据可访问

  • 我们希望作为一个团队共同定义目标,以提高团队协调性和目标主人翁意识;
  • 我们希望能够以透明的方式衡量我们的进展;
  • 我们的日常工作应与我们希望实现的目标紧密相连;

我们坐在一起分析了当前情况,以推导出目标和关键结果。我们的目标是为未来更大的发展奠定基础,并开始建立一个数据仓库结构,其中包含预连接和处理的表格,方便我们的业务用户进行分析。因此,我们为自己设定的一个示例目标是 “公司内所有人都可访问数据”

在 Metabase 中跟踪 OKR 进展

为了让我们的目标清晰可见且可操作,我们在 Metabase 中创建了一个仪表板来跟踪 OKR 进展。每周,我们都会在 OKR 例会期间共同审阅该仪表板。

这包括我们用于衡量成功的以下关键结果:

  • 所有新的 Metabase 问题都使用集中式数据仓库
  • Metabase 中的问题遵循一致的文件夹结构
  • 仓库层中的每个表都有描述
  • 业务用户使用的每个列都有描述

乍一看,这些似乎是非常基本的关键结果。然而,它们在衡量基本可访问性方面发挥了关键作用。

我们在 Metabase 中创建了一个仪表板,以便在每周的 OKR 进展检查中衡量我们的进展并查看数据。

a screenshot from Metabase where OKR are used

我们在 Metabase 中设置 OKR 仪表板的步骤

免责声明:以下步骤是针对使用 BigQuery 和运行 Postgres 数据库的 Metabase 实例的数据仓库设置量身定制的。

  1. 将 Metabase 连接到您的 BigQuery 项目(文档
  2. 将 Metabase 连接到存储 Metabase 数据的 Postgres 数据库(关于如何连接到 Postgres 数据库的文档
  3. 创建您想在仪表板中看到的问题(请与下面的模板查询进行比较)
  4. 将所有新创建的问题组合到一个 仪表板中。

查询模板

如果您想构建类似的功能,这里有一些查询模板可以帮助您入门。为了让它们对您有效,您可能需要替换以下查询中的一些变量:

<您的数据区域>:您的数据存储区域,例如 region-europe-west1 <您的 Google 项目名称>:您的 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 数据库的问题。

我们为此使用了查询构建器。

a screenshot of Metabase query interface a screenshot of Metabase query interface

最终思考:为什么 OKR 对数据分析团队有效

为我们的数据分析团队实施 OKR 帮助我们将工作重心从被动支持(回答无休止的临时请求)转向主动赋能(构建赋能他人的系统)。我们离成为一个驱动战略而非仅仅报告战略的团队更近了一步。

如果您的团队被一次性数据请求压得喘不过气,或者在团队协调方面遇到困难,那么设定 OKR 可能是您需要做出的改变,它能为您的工作带来清晰度、主人翁意识和动力。

投稿人

Thomas Schmidt

Agrando

photo of Thomas Schmidt

Thomas 是 Agrando 的首席数据科学家,该公司通过数字化力量,使区域农业结构适应未来发展。您可以在 LinkedIn 和 Twitter(@somtom91)上找到 Thomas。

您可能还喜欢

预测下一个点击

Ukrit Wattanavaekin

Metabase

为什么应该投资数据目录

Ali Baghshomali

Mentat Analytics

撰写社区故事的技巧

Metabot

Metabase

您可能还喜欢

预测下一个点击

Ukrit Wattanavaekin

Metabase

为什么应该投资数据目录

Ali Baghshomali

Mentat Analytics

撰写社区故事的技巧

Metabot

Metabase

© . All rights reserved.