「你可以給我 X 的資料嗎?」— 資料科學家可能會經常收到的問題 — 我們的團隊也是如此。
即使在大多數情況下,人們要求的資料並不是他們真正需要的,但這也表示有些地方不太對勁。
我們意識到,我們收到這些問題的原因之一是,我們未能落實自助式分析的基礎。我們需要面對現實,承認當前存在的問題
- 我們在教育人們如何使用和分析資料方面做得不好;
- 由於不同資料來源之間的整合不良,對於非工程師或不具備資料庫和 SQL 知識的人來說,合併資料以進行分析是不可能的;
- 資料科學成為資料驅動決策的瓶頸,甚至在我們速度太慢時阻礙了決策的制定;
什麼是 OKR?以及我們為什麼決定將其應用於資料科學團隊
需要轉向更注重資料可近性並實現自助式分析的策略,而且我們需要一個框架來適當地調整團隊並衡量我們的進展。在那段時間,我們公司開始研究 OKR(目標與關鍵成果)。OKR 是一種團隊目標設定方法,可協助您設定可衡量的目標。其核心思想是,您定義遠大的目標,這些目標可以透過各自3-5 個關鍵成果來衡量,其中可以使用以下範本
我將[目標] 以 [關鍵成果] 來衡量。
我們的資料科學團隊希望成為先驅,並嘗試使用該框架。我們選擇這條道路的部分原因是:
- 我們希望團隊共同定義目標,以提高一致性和目標所有權;
- 我們希望能夠以透明的方式衡量我們的進展;
- 我們的日常工作應與我們想要實現的目標緊密連結;
我們齊聚一堂,分析現況,以得出目標和關鍵成果。我們的目標是為未來更大的發展奠定基礎,並開始建立資料倉儲結構,其中包含預先聯結和處理過的表格,方便我們的業務使用者進行分析。因此,我們為自己設定的一個範例目標是「公司中的每個人都能存取資料」。
使用 Metabase 儀表板追蹤資料科學的 OKR 進度
這包括我們用來衡量成功的以下關鍵成果
- Metabase 中的所有新問題都只使用資料倉儲;
- Metabase 中的問題以清晰的結構儲存;
- 所有倉儲表格都有描述;
- 倉儲層中供業務使用者使用的表格的所有欄位都有描述;
乍看之下,這些似乎是非常基本的關鍵成果。然而,事實證明,它們在衡量基本可近性方面發揮了關鍵作用。
我們在 Metabase 中建立了一個儀表板來衡量我們的進度,並在每週的 OKR 進度檢查中查看資料
我們在 Metabase 中設定 OKR 儀表板所採取的步驟
免責聲明:以下步驟是針對使用 BigQuery 的倉儲設定以及在 Postgres 資料庫上執行的 Metabase 執行個體量身定制的
- 將 Metabase 連接到您的 BigQuery 專案(文件)
- 將 Metabase 連接到儲存 Metabase 資料的 Postgres 資料庫(關於如何連接到 Postgres 資料庫的文件)
- 建立您想要在儀表板中看到的問題(與下面的範本查詢進行比較)
- 將所有新建立的問題合併到儀表板中。
查詢範本
如果您想要建立類似的東西,以下是一些查詢範本,可協助您入門。為了使其適用於您,您可能需要替換以下查詢中的一些變數
<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 框架實現的團隊協調,幫助我們改進了資料堆疊,並在實現公司自助式分析方面邁出了巨大的一步。