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