返回目錄
A
數據決策的藝術:從資料蒐集到洞察生成 - 第 2 章
第二章:資料蒐集與整合
發布於 2026-02-25 05:32
# 第二章:資料蒐集與整合
> **故事背景**:在一個高速成長的電商公司裡,墨羽行被任命為資料科學團隊的召集人。公司正處於大規模擴張階段,從單一線上商店擴至跨境市場,產生了前所未有的資料洪流。墨羽行知道,沒有一個高效、可靠的資料蒐集與整合機制,任何高深的模型都只會是紙上談兵。
## 1️⃣ 先決條件:明確需求與商業目標
> **場景**:墨羽行召開第一次「資料盤點會議」。他先問每位同事:
>
> - 我們要解決什麼業務問題?
> - 需要哪些資訊?
> - 最終的決策是什麼?
>
> 透過這個對話,他將業務語言轉化為「資料需求矩陣」——一張表格將業務需求、資料來源、欄位清單、更新頻率以及合規限制一一列舉。
## 2️⃣ 資料來源圖譜:從外部 API 到內部資料倉
| 類型 | 典型來源 | 典型工具 | 常見挑戰 |
|------|----------|----------|----------|
| **外部 API** | 社群媒體、支付閘道、行動追蹤 | Python Requests, Postman, Swagger | 版權、速率限制、結構不一致 |
| **Web Scraping** | 競爭對手網站、新聞稿 | BeautifulSoup, Scrapy, Selenium | 防爬策略、HTML 變動 |
| **資料庫** | SQL Server、Oracle、MongoDB | JDBC/ODBC, PyMongo, MongoEngine | 權限控制、複雜查詢 |
| **資料倉** | Snowflake、Redshift、BigQuery | dbt, SnowSQL, BigQuery client |
| **資料湖** | S3、Azure Blob、GCS | AWS Glue, Azure Data Factory, Dataflow |
> **小提示**:每個來源都應該配備一個「元資料清單」——描述資料結構、型別、欄位含義、來源說明與更新頻率。
## 3️⃣ 建構 ETL/ELT 流程:自動化的第一線
> **步驟 1:擷取(Extract)**
> - 使用 **Airflow DAG** 定義定時任務,確保每個資料源都能在可預期的時間點抓取。
> - 針對 API,加入重試機制與 Exponential Backoff,避免短時間內因速率限制被暫停。
>
> **步驟 2:轉換(Transform)**
> - 以 **dbt** 撰寫模型:資料型別轉換、缺失值填補、欄位重命名、資料正規化。
> - 引入資料品質規則:
> - 範例:`CHECK (email LIKE '%@%.%')`
> - 範例:`CHECK (order_date <= CURRENT_DATE)`
>
> **步驟 3:載入(Load)**
> - 將清理後的資料寫入資料湖(如 S3),使用 Parquet 或 ORC 格式以節省儲存與提升查詢效率。
> - 同時維護「資料鏡像表」在資料倉中,為 BI 報表提供即時存取。
sql
-- dbt 轉換範例:clean_customer.sql
WITH raw AS (
SELECT * FROM {{ source('raw', 'customers') }}
)
SELECT
id,
TRIM(name) AS name,
LOWER(email) AS email,
DATE_TRUNC('day', signup_ts) AS signup_date
FROM raw
WHERE email IS NOT NULL
AND signup_ts IS NOT NULL;
## 4️⃣ 資料治理:元資料、版本控制與合規
> **元資料管理**:使用 **Amundsen** 或 **DataHub** 建立「資料目錄」,讓團隊能搜尋欄位、查看資料血統(Lineage)與資料品質指標。
>
> **版本控制**:將 ETL 腳本放在 Git,並配合 **dbt Cloud** 的「資料建模版本」功能,確保任何變更都有可追溯歷史。
>
> **合規與隱私**:若資料包含個人身份資訊(PII),必須在資料湖層加密(AES‑256),並使用 **Apache Ranger** 或 **AWS Lake Formation** 定義存取權限。
## 5️⃣ 數據管道監控與自動化
| 監控項目 | 工具 | 目標 |
|-----------|------|------|
| 失敗率 | Airflow UI、Prometheus | <1% |
| 變更頻率 | GitHub Actions | 及時回滾 |
| 資料品質 | Great Expectations | 100% 合格 |
| 延遲 | Datadog APM | <5 秒 |
> **案例**:在某次促銷活動期間,Airflow 失敗率突然上升至 3%——經調查發現是 API 的速率限制。透過即時監控報告,墨羽行與開發團隊在 30 分鐘內調整重試邏輯,恢復正常。
## 6️⃣ 總結:資料蒐集與整合的 3 大原則
1. **需求先行**:從商業目標出發,確定資料需求。
2. **自動化為主**:利用工作流排程、ETL/ELT 框架降低人工干預。
3. **治理與合規**:維護元資料、版本控制與安全加密,確保資料可持續使用。
> **實務提醒**:在資料湖設計初期,先將「資料分區」設計好(如按日期或地域),以免後續查詢成本驟升。
---
> **展望**:下一章,我們將進入「資料清理與探索」,學習如何從「雜沓」的資料中抽取洞察,並為建模奠定堅實基礎。