如何為你的數(shù)據(jù)選擇合適的流處理器?
譯文【51CTO.com快譯】對于云中的流數(shù)據(jù)管道,有許多端到端解決方案可用。更不用說導(dǎo)航不同流處理工具的許多術(shù)語了。
正確的解決方案還將在很大程度上取決于最終用戶及其需求。由于要考慮這么多問題,為你的組織找到合適的框架是一項(xiàng)挑戰(zhàn)。
因此,在本指南中,我們將闡明在為數(shù)據(jù)選擇流處理器時應(yīng)該考慮什么。
什么是流處理?
流處理器使用戶能夠快速對連續(xù)的數(shù)據(jù)流做出反應(yīng)。它們還以毫秒為單位檢測各種條件。
任何需要對實(shí)時數(shù)據(jù)做出即時反應(yīng)的應(yīng)用程序都需要流處理器。例如,一旦達(dá)到特定溫度,溫度傳感器就會發(fā)出警報(bào)。
因此,流處理通常是實(shí)時分析的同義詞。它允許用戶在沒有太多延遲的情況下攝取、處理和分析數(shù)據(jù)。
你可以在此處找到對流處理的更深入介紹。
DIY 與托管流處理器
在選擇合適的流處理器時,你可以自己構(gòu)建應(yīng)用程序或選擇現(xiàn)有工具。使用現(xiàn)有的流處理架構(gòu)可以節(jié)省你的時間和金錢,并避免基礎(chǔ)架構(gòu)的低效率。
如果你沒有設(shè)置類似應(yīng)用程序的經(jīng)驗(yàn),這將特別方便。但是,有許多流處理框架可供選擇。因此,在查看不同的引擎之前,先列出你的框架需要支持的功能。
流處理系統(tǒng)的基本功能包括:
- 使用消息代理進(jìn)行數(shù)據(jù)攝取
- 使用流式 SQL編寫查詢
- 流處理 API 和查詢編寫環(huán)境
- 高可用性 (HA)、最小 HA 和高可靠性
- 流式機(jī)器學(xué)習(xí)
- 消息處理保證
- 亂序事件
- 大規(guī)模系統(tǒng)性能(框架是否可擴(kuò)展?能否處理大窗口?)
- 拖放式 GUI 的用戶友好性
首先,列出必備功能。然后,列出你的可選功能。這將指導(dǎo)你為你的數(shù)據(jù)搜索最佳流處理器。
你還需要確定正確的流處理引擎類型。主要有以下三種類型:
1、開源組合引擎
組合流處理引擎依賴于有向無環(huán)圖 (DAG) 的早期定義。這發(fā)生在處理數(shù)據(jù)之前。
雖然這簡化了代碼,但開發(fā)人員必須仔細(xì)規(guī)劃他們的框架以避免處理效率低下。
這些引擎被認(rèn)為是第一代流處理器,管理起來通常很復(fù)雜。開源組合引擎的示例包括 Apache Storm、Samza 和 Apex。
2、托管聲明引擎
這些引擎可以鏈接流處理功能。因此,引擎在接收數(shù)據(jù)時計(jì)算 DAG,并可以在運(yùn)行時優(yōu)化 DAG。
這種類型的流處理引擎更易于管理,并帶有一系列托管服務(wù)選項(xiàng)。但是,管道的初始設(shè)置仍然是一項(xiàng)昂貴的投資。
成本涉及從源到存儲和分析的所有內(nèi)容。Apache Spark 和 Flink 都是具有托管服務(wù)的聲明式引擎。
3、完全托管的自助服務(wù)引擎
最后,還有完全托管的自助服務(wù)引擎。這些是流處理的最新發(fā)展。
該引擎運(yùn)行 DAG 并提供端到端解決方案,包括直接將數(shù)據(jù)流式傳輸?shù)酱鎯A(chǔ)架構(gòu)中。
完全托管的引擎還會組織數(shù)據(jù)并將其提供給分析框架。
設(shè)置、管理和行政
不同的流處理器具有不同的設(shè)置、管理和管理要求。這是選擇正確工具之前的另一個重要考慮因素。
為了說明這一點(diǎn),我們可以比較Amazon Kinesis 與 Kafka。
例如,Apache Kafka 可能需要幾天甚至幾周的時間才能設(shè)置完整的生產(chǎn)就緒需求。
過程的長短取決于你的團(tuán)隊(duì)可用的專業(yè)知識。此外,該框架是一個需要自己的開源系統(tǒng):
- 簇
- 節(jié)點(diǎn)多
- 復(fù)制
- 分區(qū)
托管服務(wù)的設(shè)置速度要快得多。此外,它們可以在數(shù)小時內(nèi)運(yùn)行,因?yàn)樘峁┥虒⒐芾砘A(chǔ)設(shè)施、存儲、網(wǎng)絡(luò)和配置。
換句話說,你可以在短時間內(nèi)獲得流式傳輸數(shù)據(jù)所需的一切。
托管服務(wù)還將負(fù)責(zé)硬件和軟件的持續(xù)維護(hù)、供應(yīng)和部署。
成本和定價模型
與不同流處理器類型相關(guān)的定價模型是為你的數(shù)據(jù)選擇流處理器的最終考慮因素。
開源解決方案通常需要大量的技術(shù)資源。你的組織可能負(fù)責(zé)為基礎(chǔ)設(shè)施的設(shè)置和管理的 24/7 運(yùn)營負(fù)擔(dān)提供資金。
你還需要為專用硬件提供資金。相比之下,完全托管的服務(wù)通常提供即用即付的定價模式。你不必為設(shè)置投資前期成本。
支付的金額可能取決于吞吐量所需的標(biāo)準(zhǔn)分片數(shù)量。在此模型中,你可以節(jié)省設(shè)置基礎(chǔ)設(shè)施的時間和金錢費(fèi)用。
為你的數(shù)據(jù)選擇合適的流處理器
了解流處理及其所有要求可能具有挑戰(zhàn)性。
但是,我們希望本文能幫助你專注于選擇流處理引擎的最重要考慮因素。市場上有許多工具,托管服務(wù)通常是最現(xiàn)代、最靈活的解決方案。
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】