365bet中国

【译】如何选择合适的流数据库

【译】如何选择合适的流数据库

原文标题:How To Choose the Right Streaming Database

原文链接:https://dzone.com/articles/how-to-choose-the-right-streaming-database

原文作者:Bobur Umurzokov

这篇文章可以帮助您了解SQL流是什么,何时以及为什么使用它,并讨论了选择正确的流数据库时要考虑的一些关键因素。

在当今的实时数据处理和分析世界中,流数据库已成为希望保持遥遥领先的企业的重要工具。这些数据库专门设计用于处理连续和大量生成的数据,非常适合物联网 (IoT)、金融交易和社交媒体分析等场景。但是,市场上有如此多的选择,选择合适的流数据库可能是一项艰巨的任务。

这篇文章可帮助您了解SQL流是什么,流数据库,何时以及为什么使用它,并讨论了在为您的企业选择合适的流数据库时应考虑的一些关键因素。

学习目标

您将在整篇文章中了解以下内容:

什么是流数据(事件流处理)

什么是流式SQL方法?

流式数据库功能和用例

排名前5位的流数据库(开源和SaaS)。

选择流式数据库的条件

在接下来的几节中,让我们快速回顾一些概念,例如什么是流数据、流式SQL和数据库。

什么是流数据?

流是随时间推移可用的事件/数据元素序列。数据流是一种实时处理和分析数据的方法,因为它是由各种来源生成的,例如传感器、电子商务购买、Web和移动应用程序、社交网络等等。它涉及以事件或消息的形式持续不断地收集、处理和传递数据。

您可以从不同的数据源(如消息代理Kafka、Redpanda、Kinesis、Pulsar或MySQL、或PostgreSQL数据库,使用其 Change Data Capture(CDC)从不同的数据源获取数据,这是识别和捕获数据变化的过程。

什么是流式SQL?

收集数据后,可以将此数据存储在流式数据库中(在下一节中将对此进行解释),在该数据库中,可以使用具有SQL流式处理的SQL查询进行处理和分析。它是一种使用SQL查询处理实时数据流的技术。它允许企业使用与批处理相同的SQL语言来实时查询和处理数据流。

数据可以从流中实时转换、过滤和聚合为更有用的输出,如物化视图(创建物化视图),以提供见解并实现自动化决策。

Materialized views are typically used in situations where a complex query needs to be executed frequently or where the query result takes a long time to compute. By precomputing the result and storing it in a materialized view (virtual tables), queries can be executed more quickly and with less overhead. PostgreSQL, Microsoft SQL Server, RisingWave or Materialize support materialized views with automatic updates.

实例化视图通常用于需要频繁执行复杂查询或查询结果需要很长时间才能计算的情况。通过预先计算结果并将其存储在具体化视图(虚拟表)中,可以更快地执行查询,并且开销更少。PostgreSQL,Microsoft SQL Server,RisingWave或Materialize支持自动更新的物化视图。

SQL流式处理的主要优势之一是,它允许企业利用其现有的SQL技能和基础设施来处理实时数据。这比学习新的编程语言(如Java和Scala)或处理数据流的工具更有效。

什么是流式数据库?

流数据库,也称为实时数据库,是一种数据库管理系统,旨在实时处理连续的数据流。它对处理和存储连续快速的大量级数据这一过程进行了优化。

流式数据库使用与传统数据库相同的declarative SQL和相同的数据抽象(表、列、行、视图、索引)。与传统数据库不同,数据存储在与写入结构匹配的表中(插入、更新),所有计算工作都发生在读取查询(选择)上;流数据库连续运行,在数据涌入时对其进行处理,并以具体化视图的形式将其保存到持久存储中。这允许对实时事件进行即时分析和响应,使企业能够根据最新信息做出决策并采取行动。

流式数据库通常使用针对快速高效的数据处理进行优化的专用数据结构和算法。它们还支持复杂事件处理(CEP)和其他实时分析工具,以帮助企业获得洞察力并从数据中实时提取价值。

流式数据库独有的功能之一是能够更新增量实例化视图。

您可以使用流数据库做什么?

以下是您可以使用流式数据库执行的一些操作:

收集和转换来自不同流/数据源的数据,例如 Apache Kafka。

为需要增量聚合的数据创建具体化视图。

使用简单的 SQL 语法查询复杂的流数据。

聚合和分析实时数据流后,您可以使用实时分析来触发下游应用程序。

5个顶级流数据库

由于有各种类型的流数据库可用,并且每种数据库都提供了许多功能。

下面,我分享了5个顶级流数据库(开源和SaaS),它们没有按特定的流行或使用顺序排列。

1. RisingWave.

2. Materialize.

3. Amazon Kinesis.

4. Confluent.

5. Apache Flink.

如何选择流式数据库

选择合适的流数据平台可能是一项具有挑战性的任务,因为有几个因素需要考虑。以下是选择流数据平台时要记住的一些关键注意事项:

数据来源:考虑平台可以引入和处理的数据源类型。确保平台可以处理所需的数据源。Kafka,Redpanda,Apache Pulsar,AWS Kinesis,Google Pub/Sub主要用作流源服务/消息代理。或者像PostgreSQL或MySQL这样的数据库。

可扩展性:考虑平台随着数据需求的增长而扩展的能力。某些平台的扩展能力可能受到限制,而其他平台可以处理大量数据和多个并发用户。确保缩放过程几乎可以立即完成,而不会中断数据处理。例如,开源项目 RisingWave 使用一致的哈希算法将数据动态分区到每个计算节点中。这些计算节点通过计算其独特的数据部分,然后相互交换输出来进行协作。对于云提供商中的流数据平台,它们支持开箱即用的自动扩展功能,因此这不是问题。

集成:考虑平台与其他系统和工具集成的能力,例如您当前正在使用或计划将来使用的 BI 和数据分析平台。确保平台支持与其他系统连接所需的协议和 API。RisingWave与许多BI服务集成,包括Grafana,Metabase,Apache Superset等。

性能:考虑平台的速度和效率。某些平台在查询速度、数据处理和分析方面可能比其他平台表现得更好。因此,您需要选择一个可以在几秒钟内提取、转换和加载数百万条记录的流式数据库。流数据平台的关键性能指标 (KPI) 是事件速率、吞吐量(事件速率乘以事件大小)、延迟、可靠性和主题数量(对于发布-订阅体系结构)。有时与基于 JVM 的系统相比,使用 Rust 等低级编程语言设计的平台可以非常快。

安全:考虑平台的安全功能,例如访问控制、数据加密和合规性认证,以确保您的数据受到保护。

易用性:考虑平台的易用性,包括其用户界面、文档和支持资源。确保该平台易于使用,并为您的团队提供足够的支持。

成本:考虑平台的成本,包括许可费、维护成本以及任何其他硬件或软件要求。确保该平台符合您的预算并提供良好的投资回报。

总结

总之,流数据库提供了几个独特的功能,包括实时数据处理、事件驱动架构、连续处理、低延迟、可扩展性、对各种数据格式的支持和灵活性。这些功能可实现更快的洞察、更好的决策制定以及在实时应用程序中更有效地使用数据。

最适合您的用例的流式数据库将取决于您的特定要求,例如支持的数据源、数量和速度、数据结构、可扩展性、性能、集成和成本。请务必根据这些因素仔细评估每个选项,以确定最适合您企业的选项。

相关推荐