Chevron Left

查看所有社区故事

我们如何使用OKR来提升数据科学团队的数据栈

2022年4月28日

贡献者

托马斯·施密特

Agrando

photo of Thomas Schmidt

托马斯是Agrando的首席数据科学家,该公司利用数字化力量使地区农业结构更适合未来。您可以在LinkedIn和Twitter上找到托马斯,用户名@somtom91

“你能给我X的数据吗?” - 数据科学家可能会经常收到这样的问题 - 我们团队也是如此。

尽管在大多数情况下,人们要求的数据并不是人们实际需要的,但这是一个信号,表明有些事情不对劲。

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

  • 我们在教育和人们如何使用和分析数据方面做得不好;
  • 由于不同数据源之间集成不良,非工程师或没有数据库和SQL知识的人无法进行数据分析;
  • 数据科学成为了数据驱动决策的瓶颈,甚至在我们行动缓慢时阻止了它们;

OKR是什么,以及为什么我们决定为我们的数据科学团队使用它们

需要转向更具数据可访问性的策略,并启用自助式分析,我们需要一个框架来正确地协调团队并能够衡量我们的进展。当时,我们的公司开始关注OKR(目标与关键结果)。OKR是一种团队目标设定方法,有助于你设定可衡量的目标。关键思想是定义可以由3-5个关键结果衡量的雄心勃勃的目标,以下模板可以采用

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

我们的数据科学团队希望成为先驱,并尝试这个框架。以下是一些选择这条道路的原因:

  • 我们希望作为一个团队共同制定目标,以增加一致性和目标所有权;
  • 我们希望能够以透明的方式衡量我们的进展;
  • 我们的日常工作应与我们要实现的目标紧密相连;

我们一起分析和确定了当前情况,以推导出目标和关键结果。我们的目标是未来迈出更大步伐的基础,并开始设置一个数据仓库结构,其中包括预连接和预处理的表格,这些表格容易为我们的业务用户分析。因此,我们设定的一个示例目标是“数据对公司每个人都是可访问的”。

使用Metabase仪表板跟踪数据科学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 DB的文档
  3. 创建您希望在仪表板中查看的问题(与下面的模板查询进行比较)
  4. 仪表板中将所有新创建的问题组合在一起。

查询模板

以下是一些查询模板,可以帮助您开始构建类似的功能。为了让它适用于您,您可能需要在以下查询中替换一些变量

<YOUR_DATA_REGION>:您的数据存储区域,例如 region-europe-west1 <YOUR_GOOGLE_PROJECT_NAME>:您的谷歌云项目名称

具有描述的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框架实现团队一致性帮助我们改进了数据堆栈,并朝着在公司实现自助分析迈出了巨大的步伐。

贡献者

托马斯·施密特

Agrando

photo of Thomas Schmidt

托马斯是Agrando的首席数据科学家,该公司利用数字化力量使地区农业结构更适合未来。您可以在LinkedIn和Twitter上找到托马斯,用户名@somtom91

您可能还会喜欢

预测下一点击

Ukrit Wattanavaekin

Metabase

选择无聊的数据技术

Jacob O’Bryant

Thesample.ai

数据目录尝试:原因和做法

Juan Sebastián Suarez Valencia

Meisterlabs

撰写社区故事提示

Metabot

Metabase

您可能还会喜欢

预测下一点击

Ukrit Wattanavaekin

Metabase

选择无聊的数据技术

Jacob O’Bryant

Thesample.ai

数据目录尝试:原因和做法

Juan Sebastián Suarez Valencia

Meisterlabs

撰写社区故事提示

Metabot

Metabase