溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Flink中Table API是什么意思

發(fā)布時(shí)間:2021-12-31 10:30:56 來源:億速云 閱讀:146 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下Flink中Table API是什么意思,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

什么是Table API
  1. Table API & SQL 是一種聲明式的 API。用戶只需關(guān)心做什么,不用關(guān)心怎么做,比如圖中的 WordCount 例子,只需要關(guān)心按什么維度聚合,做哪種類型的聚合,不需要關(guān)心底層的實(shí)現(xiàn)。

  2. 高性能。Table API & SQL 底層會有優(yōu)化器對 query 進(jìn)行優(yōu)化。舉個例子,假如 WordCount 的例子里寫了兩個 count 操作,優(yōu)化器會識別并避免重復(fù)的計(jì)算,計(jì)算的時(shí)候只保留一個 count 操作,輸出的時(shí)候再把相同的值輸出兩遍即可,以達(dá)到更好的性能。

  3. 流批統(tǒng)一。上圖例子可以發(fā)現(xiàn),API 并沒有區(qū)分流和批,同一套 query 可以流批復(fù)用,對業(yè)務(wù)開發(fā)來說,避免開發(fā)兩套代碼。

  4. 標(biāo)準(zhǔn)穩(wěn)定。Table API & SQL 遵循 SQL 標(biāo)準(zhǔn),不易變動。API 比較穩(wěn)定的好處是不用考慮 API 兼容性問題。

  5. 易理解。語義明確,所見即所得。

Table API 特性
  • Table API 使得多聲明的數(shù)據(jù)處理寫起來比較容易。
    怎么理解?比如我們有一個 Table(tab),并且需要執(zhí)行一些過濾操作然后輸出到結(jié)果表,對應(yīng)的實(shí)現(xiàn)是:tab.where(“a < 10”).inertInto(“resultTable1”);此外,我們還需要做另外一些篩選,然后也對結(jié)果輸出,即 tab.where(“a > 100”).insertInto(“resultTable2”)。你會發(fā)現(xiàn),用 Table API 寫起來會非常簡潔方便,兩行代碼就把功能實(shí)現(xiàn)了。

  • Table API 是 Flink 自身的一套 API,這使得我們更容易地去擴(kuò)展標(biāo)準(zhǔn)的 SQL。當(dāng)然,在擴(kuò)展 SQL 的時(shí)候并不是隨意的去擴(kuò)展,需要考慮 API 的語義、原子性和正交性,并且當(dāng)且僅當(dāng)需要的時(shí)候才去添加。
    對比 SQL,我們可以認(rèn)為 Table API 是 SQL 的超集。SQL 有的操作,Table API 可以有,然而我們又可以從易用性和功能性地角度對 SQL 進(jìn)行擴(kuò)展和提升。

如何獲取一個Table
  • 第一步,注冊對應(yīng)的 TableSource

  • 第二步,調(diào)用 Table environement 的 scan 方法獲取 Table 對象

注冊 Table Source的3種方法
  • 通過 Table descriptor 來注冊

  • 通過自定義 source 來注冊

  • 通過 DataStream 來注冊

如何輸出一個Table
  • Table descriptor

  • 自定義 Table sink

  • 輸出成一個 DataStream

以上是“Flink中Table API是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI