資料管線架構——由來源到洞察
資料管線架構,畫在一張互動畫布上:來源系統、變更資料擷取、資料擷取層、串流與批次處理、資料倉庫,以及令迴圈收口的取用。
資料管線把資料由產生它的系統,送到用得著它的地方:來源供應給擷取層,處理把資料轉換,儲存把它保存下來,而儀表板與模型則把它變成決定。
資料管線架構——由來源到洞察
The interactive FlowJam canvas for this explanation — every lane, row and arrow above is a real QueryChart diagram you can open and edit.
How to read this visual
- 由上而下讀「收集」那一欄:來源產生資料,擷取層把它搬走,而佇列為它做緩衝。
- 「轉換」那一欄分成串流與批次——兩條路徑,在「儲存」匯合到同一個目的地。
- 把「供應」那一欄當作回報來讀:儲存同時餵養分析與機器學習,而兩者都餵養業務。
收集資料
「來源系統——應用程式、資料庫、日誌、API」點名了每一個產生資料的地方,而「變更資料擷取追蹤新的資料」就是現代管線跟得上進度的方法——監看來源資料庫,把每一項改動當作一個事件發出,令管線持續獲得資料。「訊息佇列為這道資料流做緩衝」則是那個避震器:如果下游處理慢了下來,資料會排隊等候,而不是被丟掉。
轉換資料
處理那條泳道按速度一分為二:「串流處理器即時轉換資料」在事件抵達的一刻就處理它們,應付對延遲敏感的用途;「批次作業按排定的時間轉換資料」則負責沉重的歷史資料合併與匯總,這樣既更便宜,也更容易除錯。兩者都通往「資料倉庫保存已清理、已合併的資料」——那個關於一切、單一而且可以查詢的一致視圖。
供應資料,並令迴圈收口
「分析儀表板查詢這個倉庫」與「機器學習模型以這些資料訓練」是保存下來的資料被取用的兩種方式,而「洞察回流到業務之中」就是那個回流的迴圈——洞察改變一個決定,決定改變產品,產品又產生新的資料。正因為有這個迴圈,結尾才畫成回流而不是完結:一條沒有這個迴圈的管線是一項成本,不是一項資產。
Key relationships and takeaways
- 五條泳道就是管線的解剖圖:來源、擷取、處理、儲存、取用。
- 串流與批次是穿過同一條管線的兩條路徑,按延遲與成本來選擇。
- 變更資料擷取令擷取變成持續進行,所以倉庫追蹤的是來源本身,而不是每晚一次的傾印。
- 倉庫是每一個取用者都會讀的那個單一而一致的視圖。
- 管線的價值在於回到業務的那個迴圈——洞察必須改變決定。
When to use this visual
- 在一支團隊選工具之前,先教會他們資料管線的層次,令工具對得上角色。
- 設計一條新的管線:這張畫布指出串流/批次的決定,以及儲存的決定各自落在哪裡。
- 覆核一條現有的管線——少了一個佇列,或者沒有變更資料擷取,都是這張圖會明白顯示出來的一個階段。
運作方式
寫上你真實的來源
把這些通用的來源換成你實際的系統——你的交易資料庫、你的事件分析、你的 SaaS 匯出——每個來源一個方框。
選定你的處理路徑
在串流與批次那兩個方框上標註你各自實際使用的工具,並註明哪些事件走哪一條路徑。
描出倉庫的結構描述
在儲存那個方框上註明你的資料倉庫與主要的資料表,令這張圖顯示出那個已清理的視圖實際包含甚麼。
畫出品質與監控的關卡
在處理與儲存之間加上資料品質檢查,並為整條管線加一個監控方框,每一個都以一個明確的警報或隔離狀態作結。
常見問題
甚麼是資料管線?
資料管線是把資料由產生它的地方送到用得著它的地方的那套系統,途中經過擷取、處理、儲存與取用幾個階段。它的工作是收集資料,令資料變得一致而且可以查詢,然後供應給用到它的儀表板、報表與模型——而且是持續地供應,不是靠一次次脆弱的人手匯出。
串流處理與批次處理有甚麼分別?
串流處理在事件抵達時就把它們轉換,帶來低延遲——以秒或分鐘計——代價是系統更複雜、更昂貴。批次處理則對累積下來的資料執行排定的作業,結果以小時計,但成本較低,也更容易除錯。真實的管線兩者都會運行:對時間敏感的資料走串流,沉重的歷史工作走批次。
甚麼是變更資料擷取?
變更資料擷取(CDC)監看一個來源資料庫,為每一次新增、更新或刪除發出一個事件,令下游系統幾乎在改動發生的同時就知道。它以一道持續的改動流,取代每晚一次的全量傾印,而這正是倉庫可以近乎即時地追蹤它的來源、而不是一日一次的原因。
資料管線為甚麼需要訊息佇列?
因為生產者與消費者的速度並不一樣。佇列把兩者解耦:生產者發出一個事件之後就繼續做自己的事,而如果下游處理慢了下來,事件會在佇列裡等候,不會被丟掉,也不會卡住生產者。這種緩衝令管線能承受突發高峰與慢速階段,這也是圖解把佇列放在擷取之後緊接位置的原因。
用 QueryChart(FlowJam)編輯這張圖解
把上面這張資料管線畫布開啟為你自己的圖表——把各個階段改名為你自己的技術棧,並描出你的資料流向。