手把手教你設(shè)計(jì)大數(shù)據(jù)流水線
在數(shù)據(jù)架構(gòu)中,數(shù)據(jù)流水線一般以數(shù)據(jù)為起點(diǎn),以洞見為終點(diǎn)。如何從起點(diǎn)到終點(diǎn),取決于一系列的因素。圖1展示了一個(gè)數(shù)據(jù)架構(gòu)下的數(shù)據(jù)流水線。
圖1 大數(shù)據(jù)架構(gòu)設(shè)計(jì)中的數(shù)據(jù)流水線
如圖1所示,大數(shù)據(jù)流水線的標(biāo)準(zhǔn)工作流程包括以下步驟:
1)通過合適的工具收集數(shù)據(jù)(攝取)。
2)持久化存儲(chǔ)數(shù)據(jù)。
3)數(shù)據(jù)處理或分析。從存儲(chǔ)中獲取數(shù)據(jù),對(duì)其進(jìn)行操作,然后將處理后的數(shù)據(jù)再次存儲(chǔ)。
4)數(shù)據(jù)被其他處理/分析工具使用,或者被同一工具再次處理,從數(shù)據(jù)中獲得進(jìn)一步的結(jié)果。
5)為了使結(jié)果對(duì)業(yè)務(wù)用戶有用,使用商業(yè)智能(BI)工具將結(jié)果可視化,或者將結(jié)果輸入機(jī)器學(xué)習(xí)算法中進(jìn)行預(yù)測。
6)一旦將合理的結(jié)果呈現(xiàn)給用戶,這就為他們提供了對(duì)數(shù)據(jù)的洞見,然后他們可以采用這些數(shù)據(jù)進(jìn)行進(jìn)一步的業(yè)務(wù)決策。
你在流水線中部署的工具決定了獲得結(jié)果的時(shí)間,也就是從數(shù)據(jù)被創(chuàng)建到能從中獲得洞見之間的延遲。在考慮延遲的同時(shí),設(shè)計(jì)數(shù)據(jù)架構(gòu)的最佳方法是確定如何平衡吞吐量與成本,因?yàn)楦叩男阅芎碗S之而來的低延遲通常會(huì)導(dǎo)致更高的成本。
大數(shù)據(jù)處理流水線設(shè)計(jì)
許多大數(shù)據(jù)架構(gòu)所犯的關(guān)鍵性錯(cuò)誤之一是,試圖用一個(gè)工具包辦數(shù)據(jù)流水線的多個(gè)階段的數(shù)據(jù)處理。用一個(gè)服務(wù)器機(jī)群來端到端地處理從數(shù)據(jù)存儲(chǔ)、轉(zhuǎn)換到數(shù)據(jù)可視化的整個(gè)流水線可能是最簡單,但它也是最容易發(fā)生故障的。這種緊耦合的大數(shù)據(jù)架構(gòu)通常不能根據(jù)你的需求提供吞吐量和成本的最佳平衡。
建議數(shù)據(jù)架構(gòu)師對(duì)流水線進(jìn)行解耦,特別是將存儲(chǔ)和處理分為多個(gè)階段,這樣做有很多好處,包括提高容錯(cuò)能力。例如,如果在第二輪處理中出了問題,或者專門用于處理該任務(wù)的硬件出現(xiàn)故障,不必從流水線的起點(diǎn)重新開始,系統(tǒng)可以從第二個(gè)存儲(chǔ)階段恢復(fù)。將存儲(chǔ)與各個(gè)處理層解耦,使你有能力對(duì)多個(gè)數(shù)據(jù)存儲(chǔ)進(jìn)行讀寫。
圖2說明了設(shè)計(jì)大數(shù)據(jù)架構(gòu)流水線時(shí)需要考慮的各種工具和流程。
為大數(shù)據(jù)架構(gòu)進(jìn)行工具選型時(shí),應(yīng)該考慮以下幾點(diǎn):
- 數(shù)據(jù)結(jié)構(gòu)。
- 最大可接受的延遲。
- 最低可接受的吞吐量。
- 系統(tǒng)終端用戶的典型訪問模式。
圖2 大數(shù)據(jù)架構(gòu)設(shè)計(jì)中的工具與流程
數(shù)據(jù)結(jié)構(gòu)會(huì)影響數(shù)據(jù)處理工具以及存儲(chǔ)位置的選擇。數(shù)據(jù)的順序及要存儲(chǔ)和檢索的數(shù)據(jù)對(duì)象的大小也是必不可少要考慮的因素。獲得結(jié)果的時(shí)間取決于解決方案如何權(quán)衡延遲、吞吐量和成本。
用戶訪問模式是另一個(gè)需要考慮的重要因素。有些作業(yè)需要定期快速連接許多相關(guān)的表,有些作業(yè)則需要每天或按更低頻率使用存儲(chǔ)的數(shù)據(jù)。有些作業(yè)需要比較來自各種數(shù)據(jù)源的數(shù)據(jù),而有些作業(yè)只需要從一個(gè)非結(jié)構(gòu)化表中提取數(shù)據(jù)。了解終端用戶最常使用數(shù)據(jù)的方式將有助于確定大數(shù)據(jù)架構(gòu)的廣度和深度。接下來,我們將更加深入地探討大數(shù)據(jù)架構(gòu)中的每個(gè)流程和涉及的工具。
本文摘編自《解決方案架構(gòu)師修煉之道》,經(jīng)出版方授權(quán)發(fā)布。(ISBN:9787111694441)轉(zhuǎn)載請(qǐng)保留文章出處。