什么是“无流水线”实时数据分析?

为实现实时分析,通常需要付出巨大努力来实现查询层。开源 StarRocks 可以支持一种无需传统数据流水线即可进行数据分析的方法。

译自 What’s ‘Pipeline-Free’ Real-Time Data Analytics?

各行业的组织正在处理大量需要广泛分析和查询的数据,以帮助他们更好地为客户服务。这些数据的纯规模可能涉及数万个指标和维度,以及数 PB 级的数据存储。

为实现实时分析,通常需要付出巨大的努力来实现查询层。许多组织转向开源替代方案,如 Apache DruidPresto,以及在单独的流水线中进行数据非规范化,以摄取各种数据源用于多表查询。

然而,这个过程需要大量资源和专业知识,需要工程师团队来实现和维护,导致时间和资源密集型的工作。即使是细小的模式更改也可能需要几天的努力,给大型组织带来挑战。

CelerData 的产品经理 Sida Shen 告诉 The New Stack:"许多人倾向于放弃实时分析,因为在处理软件时,他们面临组织复杂性。这是他们遇到的主要挑战,并且常常导致他们完全放弃这个想法。"

在本文中,我们探讨了一种无需传统数据流水线即可进行数据分析的替代方法。

传统数据流水线的局限

传统流水线缺乏灵活性,使修改数据模型或流水线变得麻烦。每个组件都会增加复杂性并增加故障的可能性。随着时间的推移,这些组件很可能会导致性能降低,更不用说高昂的运营成本。

适当的实时分析依赖于各种数据转换和数据清理过程。此外,预聚合(如非规范化等操作的预先计算)也被使用。(非规范化是指向关系数据库添加预计算的冗余数据,以改进读取性能。)

“无流水线”解决方案解决了数据刷新延迟问题,最小化延迟,并减少与非规范化和预聚合步骤相关的复杂性,这些步骤通常在实时分析中引入时间限制和延迟。

Shen 说:"实现实时分析的主要优势在于无流水线使其对更广泛的用户更易访问,包括那些可能不是有经验的工程师的用户。"

“由于复杂性较少,组织可以轻松管理其数据,并在数据库中保持其五个表不变,而无需诉诸于将其预先连接到一个表的麻烦过程。这种灵活性增加是一个重大利好,使整个数据更有效。”

按照 Torsten Volk 的说法,预聚合和非规范化是在企业内外的分布式数据源上启用实时查询以及仪表板和数据应用程序所需的“急救板”。

“这两种做法为查询性能和简单性牺牲了效率、灵活性和成本。”Volk 告诉 The New Stack,“我们连接的数据源越多,包含的历史数据越多,基础数据存储的大小就会越来越大,我们不得不编写的 SQL 来连接的数据库表也就越多。

“这使得管理和更新数据流水线变得更加困难,”他补充道,“所有这些因素大大降低了构建实时数据应用程序和查询的热情,阻止企业增强和自动化其决策能力。”

无流水线的实时分析替代方案可以显着减少组织在实时分析项目中面临的麻烦。

通过使用多表连接,您可以消除非规范化过程,并简化实时分析过程,在内部管理和实现数据预聚合方面提供重大优势。

连接用于将两个或多个表中的数据合并到统一的列关系数据库中。CelerData 称其在开源 StarRocks 中提供的连接对实时分析至关重要。这消除了大量步骤、资源和运营复杂性,使实时分析更易于管理和更有效率。

根据 CelerData 的数据,Airbnb 最近迁移到了 StarRocks。有了它,Airbnb 的工程师可以维护 snowflake 模式中的表,并在查询时即时执行连接。

Volk 说:“‘无流水线’的当前定义是指摆脱由数据科学家和分析师绕过标准基于行的数据库系统的连接数据所产生的开销。”

“每个为几十个表编写所需 SQL 代码的人都知道预测查询性能和查询成本有多难,以及下周重新理解自己的查询有多难。消除这种开销确实非常重要。”

开源替代方案

如前所述,许多组织由于设置数据流水线和管理非规范化过程的复杂性而在实时分析上挣扎。这通常阻止了他们全面采用实时数据分析,让他们感到不知所措,并选择了传统的批处理解决方案。

但是,有一个有前途的替代方案可以简化实时分析,并使更广泛的受众可以访问它。通过利用像 StarRocks 这样的工具,这是一个于 2020 年创建的开源项目,组织可以在无需广泛的数据流水线或额外的流处理工具的情况下实现实时分析。

Shen 说:“StarRocks 提供了内置的功能来支持这些操作,消除了对额外工具(如 Spark Streaming)的需求。”

到目前为止,自 2 月捐赠给 Linux 基金会以来,对联机分析处理(OLAP)数据库 StarRocks 的兴趣在 GitHub 上累积了超过 5,000 星和 1,200 个fork。

根据项目文档,StarRocks 是一个用于完整分析场景(包括多维分析、实时分析和 ad hoc 查询)的亚秒级大规模并行处理(MPP) OLAP 数据库。

虽然 CelerData 主要维护该项目,但它正在吸引开发者社区的关注,本月主要 GitHub 分支上有超过 1,500 个活跃 pull 请求,70 个活跃开发者和 624 个提交。

事实上,Volk 说,StarRocks已经吸引了“一个活跃的开发者社区”。他补充说:“这些指标确认了 StarRocks 项目是真实的,并且对一个可以开箱即用的实时分析数据库平台有巨大需求。”

在使用 StarRocks 时,预聚合发挥着至关重要的作用。通过提前进行计算,组织可以简化分析流程,显着减少资源和时间消耗。此外,通过无流水线实时分析,管理数据刷新更高效;该方法还将最小化延迟和数据可用性延迟。

获得灵活性

采用这种“无流水线”策略的最重要优势之一是灵活性。与强制组织将多个表预先连接到一个宽表的传统解决方案不同,无流水线分析允许它们在数据库中保持各个表。保持独立表和在不回填历史数据的情况下进行模式更改的自由可能对扩展和有效管理数据至关重要。

将 StarRocks 纳入实时分析中,可使组织轻松处理大量数据。无论它们是大公司还是小型软件即服务提供商,StarRocks 都适应各种用例和数据大小。低于 10 秒的端到端延迟确保了及时准确的结果,这使其成为寻求高效实时数据分析解决方案的组织的理想选择。

最终,通过采用 StarRocks 的无流水线实时分析,组织可以简化其流程,最小化复杂性,并释放数据分析工作的全部潜力。

Volk 说:“解决查询性能、查询成本、数据新鲜度和复杂性是一个关键的进步,因为它使实时分析更易于企业用例。这完全与从您已经“到处存在的数据”中挤出最大价值有关,这正是 StarRocks 数据库旨在帮助您实现的。”

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注