实时数据流工具和技术 – 概述
实时数据对业务具有潜在的高价值,但它也有一个容易过期的有效期。如果在某个时间窗口内没有实现该数据的价值,则其价值就会丢失,并且因此所需的决策或行动永远不会发生。这种数据源源不断、速度很快,因此我们称之为流数据。数据流需要特别关注,因为传感器读数快速变化、日志文件中的昙花一现、突然的价格变化都具有巨大的价值,但前提是及时发出警报。 尽管有许多可用的技术,但在考虑数据湖中的流式传输时,仍然需要有一个执行良好的数据湖,它在摄取方面提供严格的规则和流程。 以下是一些实时数据流工具和技术。 弗林克 是一个流数据流引擎,旨在为数据流上的分布式计算提供设施。将批处理视为数据流的特例,作为批处理和实时处理框架都很有效,但它把流放在第一位。提供了许多 ,其中包括静态数据 API,如 、适用于 、和 的 ,以及用于嵌入 的类 查询静态 API 代码。还拥有自己的机器学习库(称为 )、自己的 查询(称为 )以及图形处理库。 相比和,更加面向流。它是 和 的混合体。以批处理模式运行。还为连续流模型提供了高度灵活的流窗口。这确保了批量和实时流媒体都集成到一个系统中。
Apache Storm 是一个分布式实时计算系统
其应用程序被设计为有向无环图。 可以与任何编程语言一起使用。它以每个节点每秒处理超过一百万个元组而闻名,具有高度可扩展性并提供处理作业保证。是用 编写的,是一种类似 的函数优先编程语言。 用于分布式机器学习、实时分析和许多其他情况,特别是在高数据速度的情况下。在 上运行并与 生态系统集成。是一个不支持批处理的流处理引擎,是一个真正的实时处理框架,将流视为整个“事件”而不是一系列小批量。 具有低延迟性,非常适合必须作为单个实体摄取的数据。确实缺乏对 的直接支持。是批处理和流处理之间的桥梁,而 本身并不设计 阿根廷手机号码列表 用于处理批处理和流处理。 强调 以每秒/节点处理 万条 字节消息而闻名。 它是可扩展的,适用于跨机器集群运行的并行计算。 风暴是可靠的。它保证每个数据单元(元组)将被处理至少一次或恰好一次。仅当发生故障时才会重播消息。 运动 和 非常相似。尽管 是免费的,并且需要您将其打造成适合您的组织的企业级解决方案。但亚马逊通过提供 作为开箱即用的流数据工具来救援。由 称为分区的分片组成。对于利用实时或近实时访问大量数据存储的组织来说,非常适合。 解决了各种流数据问题。一种常见的用途是实时聚合数据,然后将聚合数据加载到数据仓库中。数据被放入 流中。这确保了耐用性和弹性。是一种托管、可扩展、基于云的服务,允许实时处理大型数据流。
Kafka 是一个集成应用程序/数据
流的分布式发布-订阅消息系统。它最初由 公司开发,后来成为 项目的一部分。因此,是一种快速、可扩展且可靠的消息传递系统,是 技术堆栈中支持实时数据分析或物联网 数据货币化的关键组件。 可以处理数 的数据,而不会产生太多数据。与传统的消息系统完全不同。它被设计为一个分布式系统,非常容易横向扩展。 的设计与 、等相比具有三个主要优势。 强调 高可靠性: 复制数据并且可以支持多个订阅者。如果发生故障,它会自动平衡消费者,这与类似的消息传递服务相比非常可靠。 出色的可扩展性: 是一个分布式系统,能够快速轻松地扩展,而不会导致任何停机。 高性能:对于发布和订阅,都提供高吞吐量。即使在处理数 的存储消息时,它也能够提供恒定的性能水平。 持久: 通过将消息保存在磁盘上来 文本服务 提供集群内复制,这使其成为持久的消息系统。 结论: 我们有很多在大数据系统中进行处理的选项。对于仅流式工作负载,具有广泛的语言支持,因此可以提供非常低的延迟处理。Kafka 和 Kinesis 正在快速迎头赶上,并提供自己的一系列优势。对于时间不敏感的仅批处理工作负载,是一个不错的选择。 对于混合类型的工作负载,Spark 提供高速批处理和微批处理用于流式处理。也开始流行,被定位为 的替代品。当然,最适合您的情况在很大程度上取决于要处理的数据的状态、您的基础设施偏好、实际业务用例以及您感兴趣的结果类型。