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