長期以來,將您的批次管線遷移到串流意味著要準備好處理 JVM 語言和高維護分散式框架的混合,以及學習遠遠超出您應學習的串流系統內部原理。雖然這可能適合擁有龐大人力和時間預算的團隊,但它使得串流更難以被我們其他人採用。
現代資料堆疊如何改變這種情況?
從批次轉換到串流永遠都充滿挑戰,但它肯定可以減輕痛苦。隨著現代資料堆疊 (MDS) 重塑資料工程和分析的未來,有些工具專注於透過提供以下內容來降低進入門檻:
1) 更輕鬆、更快速地存取更新鮮的資料;
2) 融入您常用堆疊的熟悉介面;
3) 最少的營運負擔。
同時,「速度不夠快」仍然是分析中的常見瓶頸,從資料轉換到視覺化。 Materialize 是一個旨在改變這種情況的工具,它是一個專為串流分析和 MDS 而建置的資料庫。
串流分析實務
讓我們使用這個示範來分解使用 Materialize 和 Metabase 建置端對端分析管線所涉及的基本步驟
1. 連線到串流資料來源
第一步是讓 Materialize 知道您的資料位於何處以及資料的外觀。在此示範中,我們使用 Kafka 作為來源,但您也可以從 PostgreSQL 等關聯式資料庫開始,並將複寫串流推送到 Materialize(又稱變更資料擷取)。
2. 使用 SQL 建立資料轉換模型
接下來,您需要將轉換定義為 SQL 查詢(您甚至可以使用 dbt!)。這些查詢可能任意複雜,並且可以使用子查詢和 n 向聯結等,因為這裡有一個訣竅:Materialize 不會從頭重新讀取來源資料並重新計算所有內容,而是會將查詢結果索引在記憶體中,並在新的來源資料串流傳入時以增量方式更新它們。
3. 將結果視覺化
為了完成它,您可以使用 Materialize 與 Metabase 的原生整合來追蹤這些結果。所有查詢都只是從自我更新的具體化檢視中讀取資料,因此您可以將儀表板設定為每秒自動重新整理,而不會讓服務層崩潰,並且確信您正在為終端使用者提供最新鮮、一致的洞察。