什麼是 Data Product / Analytics Workflow
學習目標:定義使用者、輸入、輸出、freshness、品質期望與 owner。
你每個月手動跑一份 notebook,產出一張給主管看的月報表。上個月你請假,同事臨時接手,卻不知道這份 notebook 該用哪一份原始資料、輸出要放在哪裡、多久要更新一次,也不知道出錯了要找誰。這份分析從來沒有真正「產品化」:它只活在你的腦中與你的筆電裡。Data product 的第一步,不是寫程式,而是把這些隱性知識寫下來:誰會用這份輸出、他們期待多新的資料、什麼品質才算可信、誰對它的正確性負責。
| 問題 | 這門課資料包的答案 |
|---|---|
| 使用者是誰 | 每月營運會議的主管與各業務單位窗口 |
| 輸入是什麼 | 月度分析資料包:run_id, source_system, batch_id, event_time, ingested_at, entity_id, metric, value, schema_version |
| 輸出是什麼 | 一張依 source_system 與 metric 彙總的月度指標表,附驗證紀錄 |
| Freshness 期望 | 每月第 3 個工作天前完成上月資料 |
| Owner | 負責維護、修 bug、回答「這個數字怎麼來的」的那個人 |
import pandas as pd
# clean:月度分析資料包,一列代表某個來源系統在某個 batch 下、某個實體的一筆指標觀測
df = pd.read_csv("DS301_Analytics_Package_Clean.csv", parse_dates=["event_time", "ingested_at"])
df.shape
df.dtypes
df[["run_id", "source_system", "batch_id", "metric", "value", "schema_version"]].head()
# 先問:這份資料的 owner 是誰?如果 schema_version 變了,誰該被通知?
df["schema_version"].unique()一次性 notebook
「我跑一份 notebook,把結果貼進報告」。沒有人知道下次誰來跑、輸入資料多舊算過期、輸出品質怎麼算合格。
Data product
- 使用者與用途
- 寫清楚誰會用這份輸出、拿來做什麼決策。
- 輸入輸出契約
- 明確定義輸入資料的 schema 與輸出的格式、位置與更新頻率。
- 品質與 owner
- 定義什麼叫「這份輸出可信」,以及誰對它的正確性負責、誰接得住失敗。
資訊
- 只有你知道要去哪裡抓原始資料,流程全部記在腦袋裡
- 沒有人知道這份輸出多久要更新一次,也沒有人檢查它是否真的如期更新
- 「這個數字對不對」只能靠原作者口頭保證,沒有任何驗證紀錄
- 換一台機器或換一個人執行,就會因為路徑或帳密問題直接失敗
一份月度分析 notebook 只存在原作者的筆電裡,沒有人知道它的輸入來源、更新頻率與品質標準。這份分析缺少的最核心的東西是什麼?