iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
AI & Data

「知其然,更知其所以然:什麼是 Real-time (Streaming) Pipeline?從造輪子到 Flink 與 RisingWave」 系列

這次 30 天技術寫作挑戰,我選擇聚焦 Real-time (Streaming) Pipeline。系列將從「知其然,更知其所以然」的角度出發,先動手寫一個簡單的 streaming framework,帶大家理解事件驅動、狀態管理與窗口計算等核心概念,再進一步探索業界主流的 Flink 與 RisingWave。希望透過「先造小輪子,再開大卡車」的方式,讓大家不只看懂技術,還能真正體會它為什麼重要。三十天不一定能成就一部史詩,但一定能收穫一套完整的 Streaming 心法。

參賽天數 14 天 | 共 14 篇文章 | 7 人訂閱 訂閱系列文 RSS系列文
DAY 1

達標好文 【知其然,更知其所以然】Day 1: Data Pipeline 為什麼需要 Streaming?用 Batch 不行嗎?

AI 時代到來,數據驅動不再只是「資料多」,而是要「即時可用」。推薦系統、fraud detection、AI decision engine,這些需求都希望資...

2025-08-21 ‧ 由 wudihero2 分享
DAY 2

【知其然,更知其所以然】Day 2:第一直覺可能會用 HTTP 做 Streaming?

昨天聊了 Stream Processing Engine 的演進,今天來談談一個有趣現象:為什麼遇到即時處理需求時,有可能會想到使用 HTTP? HTTP:工...

2025-08-22 ‧ 由 wudihero2 分享
DAY 3

【知其然,更知其所以然】Day 3: Lambda Architecture 的出現

承接前兩天的討論,當我們意識到同步模型的局限性後,自然會想:「那就直接用 Streaming 處理所有數據吧!」但在 2010 年代初期,純 Streaming...

2025-08-23 ‧ 由 wudihero2 分享
DAY 4

【知其然,更知其所以然】Day 4: 手寫 Consumer 實作 Lambda Architecture Speed Layer

在上一篇我們聊過 Lambda Architecture 的三個層: Batch Layer:慢但精準,處理全量歷史數據,保證最終一致性 Speed L...

2025-08-24 ‧ 由 wudihero2 分享
DAY 5

【知其然,更知其所以然】Day 5: Speed Layer 效能瓶頸與優化

在上一篇我們實作了基礎的 Speed Layer 架構,包含 Source、Sink、SimpleStreamingEngine 三個核心組件。一開始系統運作良...

2025-08-25 ‧ 由 wudihero2 分享
DAY 6

【知其然,更知其所以然】Day 6:批量寫入的威力 - 讓 Kafka Consumer 暢行無阻

在資料流處理的世界裡,很多人覺得「即時」等於「一條一條馬上寫入 DB」。但這就好比外送員每接到一單,就立刻停下手上的工作、騎車送到客人家 - 送得慢、油耗高,還...

2025-08-26 ‧ 由 wudihero2 分享
DAY 7

【知其然,更知其所以然】Day 7: Backpressure

我們講到 Speed Layer 就像一隊外送員,專門把 Kafka 新鮮出爐的訂單火速送到資料庫。但是,衝得快不代表不會翻車。今天我們來看第三種真實會發生的「...

2025-08-27 ‧ 由 wudihero2 分享
DAY 8

【知其然,更知其所以然】Day 8: Checkpoint 與進度保存

昨天我們學會了讓系統在過載時「踩煞車」,但還有個更重要的問題:外送員怎麼知道自己送到哪裡了?今天來聊聊 Checkpoint。 外送員的記憶難題:我送到第幾個包...

2025-08-28 ‧ 由 wudihero2 分享
DAY 9

【知其然,更知其所以然】Day 9: Join

原本我們的即時數據儀表板就像一個簡潔的咖啡店櫃台 - 只顯示今天賣了多少杯咖啡(orders)。老闆每天早上都會滿意地看著螢幕上跳動的數字,點點頭說:「嗯,生意...

2025-08-29 ‧ 由 wudihero2 分享
DAY 10

【知其然,更知其所以然】Day 10:Join 太慢?Streaming 幫你提前攤平

回顧:上篇的痛點 重要提醒本文所有程式碼皆為教學與概念演示用的 Pseudo Code,可以幫助你理解並解決實際場景的問題,但這裡的程式碼不能直接使用,主要目的...

2025-08-30 ‧ 由 wudihero2 分享