Skip to main content
QUICK REVIEW

[论文解读] One SQL to Rule Them All

Edmon Begoli, Tyler Akidau|arXiv (Cornell University)|May 28, 2019
Advanced Database Systems and Queries参考文献 26被引用 7
一句话总结

本文提出了一种统一的SQL框架,用于通过时间可变关系、事件时间语义和受控物化处理流数据和关系型数据。通过在标准SQL中引入最小化、语法上自然的扩展(如 EMIT AFTER DELAY 和 EMIT AFTER WATERMARK),该框架在保持流处理中完整SQL功能的同时,支持具有正确事件时间行为的稳健、灵活且高效的实时处理。

ABSTRACT

Real-time data analysis and management are increasingly critical for today`s businesses. SQL is the de facto lingua franca for these endeavors, yet support for robust streaming analysis and management with SQL remains limited. Many approaches restrict semantics to a reduced subset of features and/or require a suite of non-standard constructs. Additionally, use of event timestamps to provide native support for analyzing events according to when they actually occurred is not pervasive, and often comes with important limitations. We present a three-part proposal for integrating robust streaming into the SQL standard, namely: (1) time-varying relations as a foundation for classical tables as well as streaming data, (2) event time semantics, (3) a limited set of optional keyword extensions to control the materialization of time-varying query results. Motivated and illustrated using examples and lessons learned from implementations in Apache Calcite, Apache Flink, and Apache Beam, we show how with these minimal additions it is possible to utilize the complete suite of standard SQL semantics to perform robust stream processing.

研究动机与目标

  • 在统一、一致的SQL语义下统一流与表处理,以提升开发人员生产力和系统一致性。
  • 在不牺牲与标准SQL算子向后兼容性的前提下,实现在SQL中稳健的事件时间处理。
  • 提供最小化、可扩展的扩展,以控制流环境中查询结果的物化方式和时机。
  • 通过标准化的SQL扩展支持现实世界用例,如延迟到达事件、周期性更新和变更日志流。
  • 基于Apache Flink、Beam和Calcite的实现,为SQL标准制定提供实践洞见。

提出的方法

  • 引入时间可变关系作为基础概念,其中关系随时间演变,可被视为从时间到关系的函数。
  • 通过扩展SQL以本机处理与事件关联的时间戳,提出事件时间语义,实现对乱序数据的正确处理。
  • 引入 EMIT AFTER DELAY 和 EMIT AFTER WATERMARK 作为可选关键字,以控制结果物化的频率和时机。
  • 通过允许查询输出以变更日志(更新流)的形式呈现,支持流物化,从而实现递归流查询。
  • 定义灵活的物化控制模型,支持周期性与水印触发的发射,支持通知和高吞吐量聚合等用例。
  • 通过逐点应用的方式,在时间可变关系上复用现有SQL算子(如 JOIN、GROUP BY、WINDOW),保持完整的SQL表达能力。

实验结果

研究问题

  • RQ1如何扩展标准SQL,使其本机支持流数据,同时保持完整的关系语义?
  • RQ2为实现在SQL中正确且高效的事件时间处理,需要哪些最小化语法扩展?
  • RQ3如何控制流查询结果的物化,以支持通知和高吞吐量聚合等多样化用例?
  • RQ4时间可变关系能否作为批处理与流处理SQL处理的统一基础?
  • RQ5如何扩展SQL以在流处理环境中支持自定义窗口逻辑和相关时间表访问?

主要发现

  • 所提出的扩展允许将完整的标准SQL算子应用于时间可变关系,实现无语义限制的一致且强大的流处理。
  • 通过时间可变关系本机支持事件时间语义,可正确处理乱序事件和延迟数据。
  • 物化控制机制(如 EMIT AFTER DELAY 和 EMIT AFTER WATERMARK)可实现高效、可预测且灵活的结果发射,支持实时和类似批处理的模式。
  • 该框架支持复杂用例,如部分结果的周期性更新以及准时/延迟行发射,已在Beam和Flink实现中得到验证。
  • 通过允许流输出作为输入流被消费,该方法支持递归流查询,扩展了流系统中SQL的表达能力。
  • 作者证明,最小化、语法上自然的SQL扩展能够统一批处理与流处理,同时保持与现有SQL标准和工具链的兼容性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。