【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】