L222 大數據處理技術
完成後你能:分辨 ETL 與 ELT、批次與串流處理,說出資料倉儲、資料湖與交易原子性的意思,並看懂 pandas 處理缺失值與資料型別的寫法。
這個單元約 20 分鐘:讀重點,練 2 題,再用 3 題沒做過的題目驗證。
- 讀重點
下方的白話重點與例子 - 練 2 題
- 驗證 3 題
步驟 1・讀重點
先看懂這些
L22201 數據收集與清理
- pandas 偵測缺失值:isnull() 和 isna() 完全一樣,isNaN() 不是 pandas 的方法
- CSV 的整數欄位有缺失值時會被讀成 float64,要保留缺失值又轉成整數,用可空整數型別 Int64(大寫 I)
- 類別資料編碼:One-Hot 不會引入順序,標籤編碼(Label Encoding)會讓沒有順序的類別看起來有大小
df.isna().sum() # 每一欄缺幾筆
df['Year'] = df['Year'].astype('Int64') # 可以放缺失值的整數
L22202 數據儲存與管理
| 架構 | 存什麼 | 特性 |
|---|---|---|
| 資料倉儲(Data Warehouse) | 整理過的結構化資料 | 寫入前先定義結構,適合報表與分析(OLAP) |
| 資料湖(Data Lake) | 各種格式的原始資料 | 先存再處理,適合多樣化資料與 AI 訓練 |
| 交易資料庫 | 日常交易(OLTP) | 重視 ACID |
| 圖形資料庫 | 節點與邊 | 關係本身可以帶屬性,例如按讚的時間與裝置存在邊上 |
- 原子性(Atomicity):一筆交易全部成功,或全部回復(Rollback),不會只更新一半
- 知識圖譜要支援語意查詢與推理,用 RDF 三元組(主詞、謂詞、受詞)
L22203 數據處理技術與工具
| 流程 | 順序 | 常見場景 |
|---|---|---|
| ETL | 擷取 → 轉換 → 載入 | 傳統資料倉儲 |
| ELT | 擷取 → 載入 → 轉換 | 資料湖、雲端倉儲 |
- 批次處理:累積一批資料再一起處理,例如 Hadoop MapReduce
- 串流處理:資料一進來就處理,Kafka 用 Producer、Topic、Consumer 傳遞事件
- Spark 是分散式運算框架,批次與串流都能處理
- IoT 即時監控:感測器 → 邊緣運算 → 串流處理 → 雲端資料湖 → 模型推論
- 近似分位數:在可以接受的誤差內快速估計分位數,支援即時分析
考試陷阱
- ETL 是先轉換再載入,ELT 是先載入再轉換,選項常把順序對調
- astype(int) 遇到缺失值會出錯,要用可空整數型別 Int64
- 原子性講的是全部成功或全部回復,不是資料格式一致