回顧系列
- 場次 01:開發人員的代理架構設計路線圖
- 場次 02:Amazon Bedrock 數據自動化
- 場次 03:AgentCore 上的多代理
- 場次 04:實務建置代理式 AI:Nova Act 與 Strands Agents
- 場次 04:運用規格驅動開發,以 Kiro 加速移轉專案
- 場次 06:從「比對」到「理解」:由 AgentCore Memory 驅動的個人化 AI 搜尋實踐
- 場次 07:從觀察到最佳化:從 LLM 可觀測性邁向 AIOps,將即時洞察轉化為智慧自動化
- 場次 08:部署 TEAM 並打造最佳工程團隊
- 場次 09:五年來所謂無伺服器資料庫帶來的五個慘痛教訓
- 場次 14:如果 AI 替我工作會怎樣:Q Developer CLI 與 Kiro 如何改變我的日常工作
- 場次 16:兼顧速度與警覺:Amazon Bedrock Agent 開發的安全要點
- 場次 26:在單張 H100 上執行 OSS LLM:更聰明、更便宜、更快速
- 場次 28:現代化統一中繼資料架構:打破資料孤島的新方法
- 場次 29:無伺服器 MediaOps:運用 Amazon Web Services 上的 AI 自動化影片工作流程
- 場次 30:透過大規模效能測試建構兼具效率與可靠性的架構
- 場次 31:透過開放原始碼連結世界:技術、社群與全球開發者關係的實踐歷程
- 場次 33:建置串流 Iceberg 資料表以進行即時物流分析
- 場次 34:加速大規模機器人策略訓練:以 Kiro、Trainium 與 EKS 為基礎的自動化閉環架構
- 場次 35:透過規格驅動開發,從 Vibe 走向可行方案
- 場次 36:讓雲端成本分析更智慧:使用 Strands 與 AgentCore 建置 FinOps 智慧 Agent
- 場次 37:使用 CNCF Kagent、K8sGPT 與 Nova Sonic,轉型 K8s 對話式 Agentic AIOps
場次筆記
現代物流的挑戰:
- 管理卡車、駕駛、路線、燃料、維護、貨運與倉庫等多個資料串流。
- 需要即時營運檢視與長期分析。資料儲存需求:
- 提供最新且已聯結的檢視,以支援即時營運。
- 使用 Apache Iceberg 進行長期分析。技術堆疊:
- RisingWave:具備串流能力的資料平台。
- Lakekeeper:用於資料管理的開放式 REST catalog。
- Kafka:串流資料的事件骨幹。
- 物件儲存(例如 MinIO):資料儲存解決方案。目標:
- 示範如何使用指定的開放式技術堆疊建置串流 Iceberg 資料表。
- 為現代物流資料管理提供簡單且有效的解決方案。物流分析問題
- 現今的物流平台會產生:
- 卡車:車隊清冊與位置
- 駕駛:名冊與工作指派
- 貨運:起點、目的地與重量
- 倉庫:容量與站點
- 路線:預計抵達時間(ETA)與距離
- 燃料與維護:成本與可靠性訊號
- 挑戰:
- 營運團隊需要涵蓋所有這些串流、最新且已聯結的檢視。
- 資料團隊需要將相同資料放入 Iceberg,以進行 BI、AI 與歷史分析。我們將建置的內容(串流 Iceberg 模式)
- Kafka 將七個物流主題送入 RisingWave。
- 使用 SQL 表達多路串流聯結,並在 RisingWave 內持續具體化。
- 結果會從 RisingWave 持久化為原生 Apache Iceberg 資料表,存放在 MinIO 等 S3 相容物件儲存中。
- Spark、Trino 與 DuckDB 等引擎透過開放式 REST catalog 查詢相同的 Iceberg 資料表。為何使用 RisingWave 建置串流 Iceberg 資料表?
- [ 1 ] 批次優先的工作流程:
- 週期性工作、過時的聯結結果,以及繁重的資料管線。
- 需要另外使用 ETL 工具寫入 Iceberg。
- [ 2 ] RisingWave + 串流 Iceberg 資料表:
- 在 RisingWave MV 中持續更新聯結與彙總。
- 始終「近乎即時」的 Iceberg snapshot。
- 一條 RisingWave 資料管線同時支援即時儀表板與離線分析。
- 目標:由 RisingWave 負責串流資料管線與 Iceberg 寫入,讓 Iceberg 的使用體驗如同資料庫。
高階架構
- 我們的端對端技術堆疊:
- Kafka — 7 個物流主題的事件骨幹。
- RisingWave(串流資料庫)— 使用 SQL 擷取、聯結與彙總資料;管理具體化檢視。
- RisingWave Iceberg Table Engine + Lakekeeper — Iceberg 資料表上的開放式 REST catalog。
- MinIO — S3 相容物件儲存。
- 模式:Kafka → RisingWave → MinIO 中的 Iceberg → 任何引擎皆可透過 REST catalog 查詢。RisingWave 中的物流串流與多路串流聯結
- RisingWave 中的七個物流串流
- 本範例使用七個 Kafka 主題,這些主題會成為 RisingWave 中的 source:
- trucks — 車隊清冊、容量、目前位置。
- driver — 駕駛詳細資料與 assigned_truck_id。
- shipments — 起點、目的地、重量、卡車綁定關係。
- warehouses — 倉庫位置與容量。
- route — route_id、truck_id、driver_id、ETD/ETA、distance_km。
- fuel — 加油事件(時間、公升數、加油站)。
- maint — 維護歷史與成本。
- RisingWave 將每一項都視為串流資料表,可直接使用簡單的 PostgreSQL 風格 SQL 進行聯結。模式 1:RisingWave 中的多路串流聯結
- 在 RisingWave 中,我們將核心物流邏輯表達為一個多路串流聯結。
- LEFT JOIN drivers → trucks,以保留未配對的駕駛資料。
- JOIN shipments,以附加工作負載與目的地。
- JOIN warehouses,以加入容量與位置資訊。
- JOIN route,以取得 ETD/ETA 與距離。
- JOIN fuel 與 maint,以取得成本與可靠性訊號。
- 這會成為 logistics_joined_mv — RisingWave 內針對每個卡車/駕駛/路線,持續更新且反正規化的物流紀錄。
車隊 KPI、原生 Iceberg 資料表與跨引擎讀取
模式 2:RisingWave 中的車隊 KPI 檢視
- 在已聯結的 MV 之上,我們另外定義一個用於車隊 KPI 的 RisingWave MV:
- 每輛卡車的容量使用率(%)。
- 每輛卡車的燃料總成本與維護成本。
- 合併後的總營運成本。
- 目前路線情境(ID、ETD、ETA、distance_km)。
- 相關駕駛詳細資料。RisingWave 中的 overview 會成為即時車隊效能資料表 — 供 Grafana 與營運儀表板使用。模式 3:從 RisingWave 串流至原生 Iceberg
- 不使用自訂 writer 服務,而是:
- [ 1 ] 將 logistics_joined_iceberg 定義為由 RisingWave 管理的原生 Iceberg 資料表。
- [ 2 ] 其 schema 對應 logistics_joined_mv。
- [ 3 ] RisingWave 中的一小段設定可控制串流變更提交為 Iceberg snapshot 的頻率。模式 4:透過 REST catalog 進行跨引擎讀取
- 使用由 RisingWave 建立並註冊至 Lakekeeper REST catalog 的 Iceberg 資料表:
- [ 1 ] Spark 將 lakekeeper 掛載為 catalog
- [ 2 ] Trino / DuckDB / Dremio 可使用各自的 Iceberg connector 讀取相同資料表。
- [ 3 ] 所有引擎都會看到 RisingWave 持續更新的相同 Iceberg 資料。
- 不需複製、不使用專有資料表格式 — 只有由 RisingWave 寫入的標準 Iceberg。
從本機筆電到正式環境叢集:部署選項
- 部署選項:從筆電到叢集
- [ 1 ] 本機(用於學習與原型製作):
- 使用 Docker 執行 RisingWave、Kafka、MinIO 與 Lakekeeper。
- 非常適合在筆電上實驗串流聯結與 Iceberg 資料表。
- [ 2 ] 正式環境(用於實際工作負載):
- 透過 Kubernetes + Helm 部署 RisingWave 與技術堆疊的其餘部分。
- 使用適合您環境的儲存類別、資源限制與持久化設定。
- 在 RisingWave 中使用相同的 SQL 與模式 — 只是更耐久、更具擴充性,也更加自動化。簡化傳統 Iceberg 技術堆疊
- 傳統 Iceberg 部署通常需要:
- 獨立的串流處理引擎。
- 獨立運作的 Iceberg writer 工作。
- 外部壓縮與維護工作流程。
- 額外的整合機制,以確保 catalog、writer 與儲存保持一致。
- 使用 RisingWave:
- [ 1 ] 串流資料庫會處理資料擷取、聯結、具體化檢視與 Iceberg 寫入。
- [ 2 ] REST catalog + MinIO 讓一切保持完全開放且可互通。
- 更少的活動元件、更低的營運負擔。使用 RisingWave 的參考架構
- 可以將系統視為以 RisingWave 為中心的三個層級:
- [ 1 ] 串流 → RisingWave 資料表。
- Kafka 主題會成為 RisingWave 中的串流資料表。
- [ 2 ] 資料表 → RisingWave 具體化檢視。
- 串流聯結與彙總會成為即時 MV(logistics_joined_mv、truck_fleet_overview)。
- [ 3 ] 檢視 → 串流 Iceberg 資料表。
- RisingWave 只需少量設定與一個 INSERT....SELECT,即可將 MV 轉換成串流 Iceberg 資料表。
- 一旦將 RisingWave 視為「串流 SQL + Iceberg 引擎」,就能在許多領域重複使用此模型。物流以外的可重複使用模式
- RisingWave + Iceberg 模式適用於:
- 電子商務:訂單、庫存、定價、客戶事件。
- FinTech:交易、餘額、風險訊號。
- 工業 IoT:機器、感測器、警示、維護。
- 電信:工作階段、使用量、QoS 指標。
- 只要有多個即時串流,並且需要開放式長期儲存,就能以相同方式使用 RisingWave MV 與 Iceberg 資料表。重點摘要(RisingWave + Iceberg)
- 結合 Kafka、RisingWave、REST catalog、MinIO 與 Iceberg 的參考架構。
- 實用模式:多路串流聯結、KPI 檢視,以及從 RisingWave 原生寫入 Iceberg。
- 無需自訂 writer、臨時拼湊的壓縮工作或緊密的供應商綁定,即可取得即時物流分析。
