跳到主要內容

DS 301 實作中心

使用合成的月度分析資料包,練習把 notebook 改寫成 pipeline、處理 data contract 失敗、設計 idempotent 重跑、檢查 observability、演練 rollback,以及撰寫 runbook。

資訊

DS 301 實作資料為合成教學資料,所有來源系統、批次與數值皆為示例,不代表任何真實對象或機構。

注意

請只使用課程提供的合成檔案進行練習。除非獲得授權,切勿將機密的機構或公司資料、個人資料或敏感資料貼入 AI 工具或練習環境;使用真實營運資料前,請先確認所屬機構的規範。

下載實作檔案

月度分析資料包(乾淨版)

DS301_Analytics_Package_Clean.csv

一份月度分析資料:run_id、source_system、batch_id、event_time、ingested_at、entity_id、metric、value、schema_version。用於 Guided Lab。

下載

月度分析資料包(實作版,含挑戰)

DS301_Analytics_Package_Practice.csv

相同欄位結構,但刻意設計了判斷挑戰:late arrival 事件、一次 schema 變更、重複的 batch_id,以及至少一筆違反 contract 的資料。用於實作中心與 Independent Lab。

下載

資料字典(繁體中文)

DS301_Data_Dictionary_zh-TW.csv

分析資料包檔案的欄位型態、單位、粒度、允許值與來源說明(繁體中文)。

下載

Data dictionary (English)

DS301_Data_Dictionary_en.csv

英文版資料字典,欄位與定義與中文版一致。

下載

Guided Lab 起始 Notebook(Notebook → Pipeline 改寫)

DS301_Guided_Lab_Starter.ipynb

附有指引與待完成項目的起始 Notebook,練習把一段探索程式拆成 ingest/validate/transform/analyze/publish 五個 stage。

Independent Lab 起始 Notebook / 範本

DS301_Independent_Lab_Starter.ipynb

用於 Analytics Workflow Canvas + Executable Workflow Prototype + Runbook 的起始 Notebook 與檢核清單範本。

實作任務

實作 A:Notebook Refactor

把一段探索用的 notebook 程式碼,拆成具有明確 input/output 的 function 與 stage。

使用檔案: 月度分析資料包(實作版,含挑戰)、資料字典(繁體中文)

步驟

  1. 找出目前程式碼中讀取、清理、篩選、彙總的自然斷點。
  2. 為每個斷點寫一個 function,明確定義輸入型態與輸出型態。
  3. 確認每個 function 不依賴前一個 cell 遺留在記憶體中的變數。
  4. 為至少一個容易出錯的 function(例如清理或聚合)撰寫一個簡單測試。

要完成的產出

  • 拆分後的 function 清單與各自的 input/output
  • 至少一個測試案例
  • 重跑其中一個 stage而不影響其他 stage 的示範

實作 B:Data Contract Failure

針對實作資料,定義一份 data contract,並示範它如何在資料違反規則時提早讓 pipeline 失敗。

使用檔案: 月度分析資料包(實作版,含挑戰)、資料字典(繁體中文)

步驟

  1. 列出必要欄位、允許的 metric 值與允許的缺值比例。
  2. 寫一個 validate 函式,區分 blocking error 與 warning。
  3. 對實作資料執行驗證,找出其中違反 contract 的至少一筆資料。
  4. 說明如果沒有這層驗證,這筆錯誤資料會如何影響下游結果。

要完成的產出

  • 一份完整的 data contract 定義
  • 驗證函式與其判斷邏輯
  • 至少一項被攔下的 blocking error 與其影響說明

實作 C:Idempotent Rerun

檢查一段寫入邏輯是否 idempotent,並修正成安全可重跑的版本。

使用檔案: 月度分析資料包(實作版,含挑戰)、Guided Lab 起始 Notebook(Notebook → Pipeline 改寫)

步驟

  1. 找出目前寫入輸出的邏輯,判斷它是 append 還是覆寫/替換。
  2. 重跑同一批輸入兩次,觀察輸出表的列數或總額是否改變。
  3. 把寫入邏輯改成先刪除同範圍舊結果、再寫入新結果的 idempotent 版本。
  4. 再次重跑兩次,確認輸出結果與重跑次數無關。

要完成的產出

  • 修正前後的寫入邏輯對照
  • 兩次重跑前後輸出列數/總額的比較
  • 你如何確認寫入邏輯已經是 idempotent 的說明

實作 D:Observability Checklist

為一段 pipeline 加上必要的 observability 紀錄,並檢查記錄是否足以診斷問題。

使用檔案: 月度分析資料包(實作版,含挑戰)、Independent Lab 起始 Notebook / 範本

步驟

  1. 為 pipeline 加上 run_id,並確認同一次執行的所有 log 都能被串連。
  2. 在每個 stage 前後記錄 row counts。
  3. 記錄 validation 結果與資料的 freshness(涵蓋到哪個時間點)。
  4. 模擬一次資料量異常(例如故意過濾掉大部分資料),確認你的紀錄能不能讓人發現這個異常。

要完成的產出

  • 一份包含 run_id、row counts、validation 結果與 freshness 的 log 範例
  • 一次模擬異常的偵測紀錄
  • 你認為還缺少哪些觀測項目的說明

實作 E:Rollback Scenario

設計一個版本化的輸出機制,並演練當新版本結果有誤時如何 rollback。

使用檔案: 月度分析資料包(實作版,含挑戰)、Guided Lab 起始 Notebook(Notebook → Pipeline 改寫)

步驟

  1. 設計一個保留前一版輸出的機制(例如版本化的檔案或資料表快照)。
  2. 發布一個新版本的彙總結果。
  3. 假設新版本被發現有嚴重錯誤,演練切換回前一版的具體步驟。
  4. 記錄這次 rollback 演練花了多久、哪些步驟需要人工確認。

要完成的產出

  • 版本化輸出的設計說明
  • rollback 演練的具體步驟
  • 演練後發現的任何流程缺口

實作 F:Runbook Drill

為至少兩種常見的 pipeline 失敗情境撰寫 runbook,並用一個模擬情境測試它是否好用。

使用檔案: 月度分析資料包(實作版,含挑戰)、Independent Lab 起始 Notebook / 範本

步驟

  1. 列出至少兩種可能的失敗情境(例如上游 API 暫時逾時、資料格式永久性錯誤)。
  2. 為每種情境寫下判斷方式、處置步驟與升級對象。
  3. 找一位同學或同事,只依你寫的 runbook(不額外說明)模擬處理其中一個情境。
  4. 記錄對方在依照 runbook 操作時遇到的任何疑惑或缺漏,並修正 runbook。

要完成的產出

  • 至少兩種失敗情境的 runbook
  • 一次模擬測試的紀錄
  • 依測試結果修正後的 runbook 版本

完成標記只記錄在這個瀏覽器(加入梯次後會同步)。實作成果請保存在你自己的檔案或 Notebook。

同步我的進度加入梯次後,進度可跨裝置保存,講師也能看到

資訊

加入後,你已完成的模組編號會連同「學員代碼」傳送給講師,講師可以看到你的進度。請使用講師提供的代碼,不要輸入姓名、公司機密或其他個資。進度資料與該梯次的其他資料一起保存。

接下來做什麼?