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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

2021年大数据Flink(三十):Flink ​​​​​​​Table API  SQL 介绍

發(fā)布時間:2023/11/28 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021年大数据Flink(三十):Flink ​​​​​​​Table API  SQL 介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

???????Table API?& SQL 介紹

為什么需要Table API & SQL

???????Table API& SQL發(fā)展歷程

架構升級

查詢處理器的選擇

了解-Blink planner和Flink Planner具體區(qū)別如下:

注意:

API穩(wěn)定性

性能對比


Table API?& SQL 介紹

為什么需要Table API & SQL

https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/

?

?

Flink的Table模塊包括 Table API 和 SQL:

Table API 是一種類SQL的API,通過Table API,用戶可以像操作表一樣操作數(shù)據(jù),非常直觀和方便

SQL作為一種聲明式語言,有著標準的語法和規(guī)范,用戶可以不用關心底層實現(xiàn)即可進行數(shù)據(jù)的處理,非常易于上手

Flink Table API 和 SQL 的實現(xiàn)上有80%左右的代碼是公用的。作為一個流批統(tǒng)一的計算引擎,Flink 的 Runtime 層是統(tǒng)一的。

?

  • Table API & SQL的特點

Flink之所以選擇將 Table API & SQL?作為未來的核心 API,是因為其具有一些非常重要的特點:

?

1. 聲明式:屬于設定式語言,用戶只要表達清楚需求即可,不需要了解底層執(zhí)行;

2. 高性能:可優(yōu)化,內(nèi)置多種查詢優(yōu)化器,這些查詢優(yōu)化器可為 SQL 翻譯出最優(yōu)執(zhí)行計劃;

3. 簡單易學:易于理解,不同行業(yè)和領域的人都懂,學習成本較低;

4. 標準穩(wěn)定:語義遵循SQL標準,非常穩(wěn)定,在數(shù)據(jù)庫 30 多年的歷史中,SQL 本身變化較少;

5. 流批統(tǒng)一:可以做到API層面上流與批的統(tǒng)一,相同的SQL邏輯,既可流模式運行,也可批模式運行,Flink底層Runtime本身就是一個流與批統(tǒng)一的引擎

?

???????Table API& SQL發(fā)展歷程

架構升級

自 2015 年開始,阿里巴巴開始調(diào)研開源流計算引擎,最終決定基于 Flink 打造新一代計算引擎,針對 Flink 存在的不足進行優(yōu)化和改進,并且在 2019 年初將最終代碼開源,也就是Blink。Blink 在原來的 Flink 基礎上最顯著的一個貢獻就是 Flink SQL 的實現(xiàn)。隨著版本的不斷更新,API 也出現(xiàn)了很多不兼容的地方。

在 Flink 1.9 中,Table 模塊迎來了核心架構的升級,引入了阿里巴巴Blink團隊貢獻的諸多功能

?

在Flink 1.9 之前,Flink API 層 一直分為DataStream API 和 DataSet API,Table API & SQL 位于 DataStream API 和 DataSet API 之上。可以看處流處理和批處理有各自獨立的api (流處理DataStream,批處理DataSet)。而且有不同的執(zhí)行計劃解析過程,codegen過程也完全不一樣,完全沒有流批一體的概念,面向用戶不太友好。

在Flink1.9之后新的架構中,有兩個查詢處理器:Flink Query Processor,也稱作Old Planner和Blink Query Processor,也稱作Blink Planner。為了兼容老版本Table及SQL模塊,插件化實現(xiàn)了Planner,Flink原有的Flink Planner不變,后期版本會被移除。新增加了Blink Planner,新的代碼及特性會在Blink planner模塊上實現(xiàn)。批或者流都是通過解析為Stream Transformation來實現(xiàn)的,不像Flink Planner,批是基于Dataset,流是基于DataStream。

?

查詢處理器的選擇

查詢處理器是 Planner 的具體實現(xiàn),通過parser、optimizer、codegen(代碼生成技術)等流程將 Table API & SQL作業(yè)轉(zhuǎn)換成 Flink Runtime 可識別的 Transformation DAG,最終由 Flink Runtime 進行作業(yè)的調(diào)度和執(zhí)行。

Flink Query Processor查詢處理器針對流計算和批處理作業(yè)有不同的分支處理,流計算作業(yè)底層的 API 是 DataStream API, 批處理作業(yè)底層的 API 是 DataSet API

Blink Query Processor查詢處理器則實現(xiàn)流批作業(yè)接口的統(tǒng)一,底層的 API 都是Transformation,這就意味著我們和Dataset完全沒有關系了

?

Flink1.11之后Blink Query Processor查詢處理器已經(jīng)是默認的了

https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/

?

?

?

?

了解-Blink planner和Flink Planner具體區(qū)別如下:

https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/common.html

?

?

?

注意:

https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/common.html

API穩(wěn)定性

?

?

性能對比

注意:目前FlinkSQL性能不如SparkSQL,未來FlinkSQL可能會越來越好

下圖是Hive、Spark、Flink的SQL執(zhí)行速度對比:

?

總結(jié)

以上是生活随笔為你收集整理的2021年大数据Flink(三十):Flink ​​​​​​​Table API  SQL 介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。