日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【译】用SQL统一所有:一种有效的、语法惯用的流和表管理方法

發布時間:2024/8/23 数据库 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【译】用SQL统一所有:一种有效的、语法惯用的流和表管理方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在還沒有一個統一的流式SQL語法標準,各家都在做自己的。本文在一些業界應用的基礎上提出了一個統一SQL語法的建議。Spark同樣存在這個問題,社區版本在流式SQL上遲遲沒有動作。EMR Spark在今年上半年提供了自己設計版本的流式SQL支持,也會在后續的更新中吸收和支持這些優秀的設計建議。

原文:https://blog.acolyer.org/2019/07/03/one-sql-to-rule-them-all/

資料:One SQL to rule them all: an efficient and syntactically idiomatic approach to management of streams and tables Begoli et al., SIGMOD’19

在數據處理方面,似乎最終都會回歸到SQL上!今天選擇的這篇文章作者來自于Apache Beam,Apache Calcite以及Apache Flink的專家們,闡述了他們在構建流式處理SQL接口的經驗。最終整理了一些SQL標準的擴展建議。

The thesis of this paper, supported by experience developing large open-source frameworks supporting real-world streaming use cases, is that the SQL language and relational model as-is and with minor non-intrusive extensions, can be very effective for manipulation of streaming data.

這篇文章的論點是,在開發使用大規模開源框架解決現實世界的實際流式場景經驗下,SQL語言及關系性模型在當前及非侵入式擴展后,對于流數據的操作非常有效。

文章中很多觀點已經在Apache Beam,Apache Calcite以及Apache Flink中實現,或者作為眾多選擇之一。Streaming SQL已經在阿里巴巴,華為,Lyft,Uber及其他一些公司中應用。下面是一些他們的反饋,為啥做這樣的選擇:

  • 開發和應用成本相對于那些非聲明性流處理 API要低得多。
  • 比起非標準化的查詢語言,熟悉SQL更容易開發應用。
  • 常見的窗口聚合及join等處理任務,基于event-time可以更方便的表達及更高效的執行。
  • 當應用出錯或者服務中斷時,可以很方便地使用同一個查詢語句對記錄存儲的數據進行處理。

1. 基本原則

Combined, tables and streams cover the critical spectrum of business operations ranging from strategic decision making supported by historical data to near- and real-time data used in interactive analysis… We believe, based on our experience and nearly two decades of research on streaming SQL extensions, that using the same SQL semantics in a consistent manner is a productive and elegant way to unify these two modalities of data…

總的來說,表和流覆蓋了業務運營的關鍵范圍,從歷史數據支持的戰略決策到交互式分析中使用到的近實時數據。我們相信,基于我們的經驗和近 20 年對流式 SQL 擴展的研究,以一致的方式使用相同的 SQL 語義是統一這兩種數據模式的高效和優雅方式。

正如作者指出的一樣,過去許多年里已經進行了很多前期工作,文章中也借鑒了很多其中大部分。最重要的是,它們是基于使用Apache Flink、Beam以及Calcite所獲得的經驗教訓。

相比于傳統的關系性視圖,流式應用多了一個Time概念。請注意,在一個用戶多次查詢中,一個可變的數據表實際上就是一個隨時間變化的表,即time-varying relation (TVR)。也就是說,任何一次查詢結果,都只是代表了那個時間點的表數據。

A time-varying relation is exactly what the name implies: a relationship whose contents may vary over time… The key insight, stated but under-utilized in prior work, is that streams and tables are two representations for one semantic object.

一個時變表就像它的名字所蘊含的一樣:表的數據內容可能隨著時間變化而變化。在以前的工作中,指出但未充分利用的觀點是,流和表是一個語義對象的兩個表示形式。

按照定義,TVR支持所有的關系型操作,即使在涉及時變關系數據的場景中也是如此。所以文中提出的第一個建議實際上就是no-op!所以讓我們使用它們,并明確說明SQL是在TVRs上操作的。

我們確實需要做一些擴展來支持event-time。我們尤其需要小心地區分event-time和processing-time。我們還需要理解,事件并不一定是按照事件時間順序呈現的。

We propose to support event time semantics via two concepts: explicit event timestamps and watermarks. Together, these allow correct event time calculation, such as grouping into intervals (or windows) of event time, to be effectively expressed and carried out without consuming unbounded resources.

我們提出通過兩個概念來支持event-time語義:顯式的時間時間戳以及watermarks。兩相結合,就可以正確地支持event-time計算,例如按時間窗口group,這樣可以高效的表達和計算,而無需消耗大量的資源。

Watermark可以追溯至Millwheel,?Google Cloud Dataflow,直到Apache Beam and Apache Flink。在處理時間的每一刻,watermark確定了一個時間戳,這個時間戳確定在處理時間上事件完整性的時間界限。

文章第三塊講述了控制關系型數據如何呈現以及何時物化數據行。例如:查詢結果是立刻更新來反映任何輸入的新數據,還是在一個時間窗口末尾處展示完整的數據更新。

2. 示例

NEXmark(一個流式查詢的benckmark) Query7實現了一個監控競拍中最高價物品的邏輯。每10分鐘,查詢返回最高的bid及相關的itemid。

下面這張圖展示了如何使用Streaming SQL來表達。我沒有對業務邏輯做過多的描述,而是對查詢本身進了注釋。希望這已經足夠讓你們理解要點了。

輸入以下數據:

8:21分查詢時,會得到如下TVR:

但如果在8:13分查詢時,結果又不一樣:

注意,正如目前所表達的,查詢返回時間點結果,但是如果我們愿意,我們可以使用物化延遲的方式來改變結果的展示方式。例如“SELECT ... EMIT AFTER WATERMARK;”,查詢結果只會在watermark到達了時間窗口末尾時才更新。

所以,在8:16,我們會看到:

然后到了8:21,會看到:

如果希望看到不帶watermark的窗口行,但只要得到周期性的局和結果,我們可以使用“SELECT ... EMIT STREAM AFTER DELAY”(這里STREAM表示我們希望流式地展示查詢結果)。

3. SQL擴展

希望這能給你帶來幫助。目前,該建議包含對標準SQL的7個擴展:

  • Watermarked event time column:關系型表中帶有watermark的類型為TIMESTAMP的列。watermark由系統進行維護。
  • Grouping on event timestamps:當“Group By”字句作用于時間列時,只包含那些key小于時間列定義的watermark的groups。
  • Event-time windowing functions:以Tumble和Hop開頭,參數包括數據表和時間列描述符,返回一個添加了時間列的數據表。Tumble產生間距相等的不相交窗口,Hop生成同等大小的滑動窗口。
  • Stream materialization:“EMIT STREAM”會產生一個按時間變化的結果表,區別于傳統的查詢結果。新增一個列來指明一個數據行是否是上一行的撤回,該行的日志更新處理時間偏移量以及相對于同一事件時間分組的其他更新的序列號。
  • Materialization delay: 當查詢帶有“EMIT AFTER WATERMARK”修飾語,只有完整的結果行才會物化。
  • Periodic materialization: 當查詢帶有“EMIT AFTER DELAY d”修飾語,查詢結果間隔d個周期才會輸出出來。
  • Combined materialization delay: 當查詢帶有“EMIT AFTER DELAY d AND AFTER WATERMARK ”修飾語,查詢結果間只會在隔d個周期且數據完整的時候才會輸出出來。

3.1 Hop示例

3.2 Emit Stream示例

4.經驗教訓

文章中的第5節列出了從Apache Calcite、Flink和Beam中學到的經驗教訓,這些經驗教訓為設計提供了參考。我沒有足夠時間來一一介紹,下面節點比較吸引我的注意:

  • 因為事件時間戳只是常規屬性,可以在普通表達式中引用,所以表達式結果可能不會與watermark保持一致,這在查詢計劃中需要考慮。
  • 用戶發現很難推斷查詢中事件時間的最佳使用情況,這可能導致使用不合預期的語義執行計劃。

5. 未來工作

對我來說,印象深刻的是用盡量少的改動達到目的。文章中的“future work”部分顯示,文中提出的那些擴展還需要進一步完善才行。

例如,我注意到的一點是,SQL標準定義中規定SQL查詢中的time是查詢的時間點(要么是當前時間,要么是使用“AS OF SYSTEM TIME”指定的時間)。這意味著您還不能在stream尾上表達視圖(你可以使用類似“CURRENT_TIME - INTERVAL ‘1’ HOUR”的表達式,但是查詢執行時,“CURRENT_TIME”取一個固定值)。


原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的【译】用SQL统一所有:一种有效的、语法惯用的流和表管理方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 丁香婷婷综合激情 | 奇米色婷婷 | 久久精品免费在线 | 欧美成人精品一区二区男人小说 | 日韩在线精品强乱中文字幕 | 99久久精品免费看国产四区 | 天天综合久久综合 | 激情五月综合色婷婷一区二区 | 五月综合激情网 | 橹图极品美女无圣光 | 亚洲我射 | 久久国产精品电影 | 自拍视频网站 | 欧美尹人| 一区二区三区四区中文字幕 | 日韩免费在线 | 亚洲午夜毛片 | 久久国产精品网 | 美女免费黄色 | 国产精品国色综合久久 | 欧美黄片一区二区三区 | 水蜜桃久久 | 一区二区三区在线观看av | 国产一在线 | 国产精品免费av一区二区三区 | 日本在线观看a | 少妇高潮惨叫久久久久 | 欧美性极品 | 国产69精品久久久久久久 | 国产婷婷色一区二区三区在线 | 国产特黄一级片 | 国产九九九| 欧美久久一级 | 捆绑凌虐一区二区三区 | 99福利网 | 91亚色视频在线观看 | 国产呦小j女精品视频 | 国产精品扒开腿做爽爽爽男男 | 欧美大片在线看 | 精品国产一区二区三区久久狼黑人 | 在线艹| 色一情一交一乱一区二区三区 | 中出在线播放 | 女人天堂网站 | 男女超碰 | 国产精品伦一区二区三级视频 | 孕妇毛片| 91综合国产 | 亚洲色成人www永久在线观看 | aaaaaabbbbbb毛片 | 天天撸一撸| 美女福利视频在线观看 | 水蜜桃色314在线观看 | 解开人妻的裙子猛烈进入 | 开心激情播播网 | 亚洲中文在线一区 | 免费看三级黄色片 | 国产3级在线 | 日本大胆裸体做爰视频 | 欧美偷拍视频 | 97久久国产精品 | 麻豆av电影网 | 久艹av| 成人五区| 久久青 | 日本欧美一区二区三区不卡视频 | 精品国产鲁一鲁一区二区张丽 | 日本一级黄色录像 | 人人爽人人爽人人片av | h片免费在线观看 | 正在播放国产一区 | 国产原创av在线 | 亚洲精品久久久久avwww潮水 | 欧洲黄色录像 | www.97av.com| 少妇欧美激情一区二区三区 | 免费成年人视频 | 蜜桃av免费| 久久国产一二三 | 国产成人av在线 | 99国产精品久久久久久久成人 | www.亚洲欧美 | 欧美精品极品 | 国产尤物视频 | 奇米影音 | 黄色av资源| 综合亚洲欧美 | 99在线免费 | 久久伊人草 | 大尺度做爰无遮挡露器官 | 91亚洲精品久久久蜜桃 | 殴美毛片 | 有码在线播放 | av中文字| 777亚洲 | 日本韩国中文字幕 | 影音先锋中文字幕在线 | 在线看成人 | 另类少妇人与禽zozz0性伦 |