欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),臺(tái)安企業(yè)網(wǎng)站建設(shè),臺(tái)安品牌網(wǎng)站建設(shè),網(wǎng)站定制,臺(tái)安網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,臺(tái)安網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

拓展FlinkSQL實(shí)現(xiàn)流與維表的join

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join

FlinkStreamSQL 已經(jīng)開(kāi)源在Github上 目前已獲380+Star

1、為什么要擴(kuò)展FlinkSQL?

實(shí)時(shí)計(jì)算需要完全SQL化

SQL是數(shù)據(jù)處理中使用最廣泛的語(yǔ)言。它允許用戶(hù)簡(jiǎn)明扼要地聲明他們的業(yè)務(wù)邏輯。大數(shù)據(jù)批計(jì)算使用SQL很常見(jiàn),但是支持SQL的實(shí)時(shí)計(jì)算并不多。其實(shí),用SQL開(kāi)發(fā)實(shí)時(shí)任務(wù)可以極大降低數(shù)據(jù)開(kāi)發(fā)的門(mén)檻,在袋鼠云數(shù)棧-實(shí)時(shí)計(jì)算模塊,我們決定實(shí)現(xiàn)完全SQL化。

數(shù)據(jù)計(jì)算采用SQL的優(yōu)勢(shì)

? 聲明式。用戶(hù)只需要表達(dá)我想要什么,至于怎么計(jì)算那是系統(tǒng)的事情,用戶(hù)不用關(guān)心。

? 自動(dòng)調(diào)優(yōu)。查詢(xún)優(yōu)化器可以為用戶(hù)的 SQL 生成最有的執(zhí)行計(jì)劃。用戶(hù)不需要了解它,就能自動(dòng)享受優(yōu)化器帶來(lái)的性能提升。

? 易于理解。很多不同行業(yè)不同領(lǐng)域的人都懂 SQL,SQL 的學(xué)習(xí)門(mén)檻很低,用 SQL 作為跨團(tuán)隊(duì)的開(kāi)發(fā)語(yǔ)言可以很大地提高效率。

? 穩(wěn)定。SQL 是一個(gè)擁有幾十年歷史的語(yǔ)言,是一個(gè)非常穩(wěn)定的語(yǔ)言,很少有變動(dòng)。所以當(dāng)我們升級(jí)引擎的版本時(shí),甚至替換成另一個(gè)引擎,都可以做到兼容地、平滑地升級(jí)。

實(shí)時(shí)計(jì)算還需要流與維表的JOIN

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join

在實(shí)時(shí)計(jì)算的世界里不只是流與流的JOIN

還需要流與維表的JOIN

在實(shí)時(shí)計(jì)算的世界里不只是流與流的JOIN,還需要流與維表的JOIN。在去年,袋鼠云數(shù)棧V3.0版本研發(fā)期間,當(dāng)時(shí)最新版本——flink1.6中FlinkSQL,已經(jīng)將SQL的優(yōu)勢(shì)應(yīng)用到Flink引擎中,但還未支持流與維表的JOIN。

關(guān)于FlinkSQL

FlinkSQL于2017年7月開(kāi)始面向阿里巴巴集團(tuán)開(kāi)放流計(jì)算服務(wù)的,雖然是一個(gè)非常年輕的產(chǎn)品,但是到雙11期間已經(jīng)支撐了數(shù)千個(gè)作業(yè),在雙11期間,Blink 作業(yè)的處理峰值達(dá)到了5+億每秒,而其中僅 Flink SQL 作業(yè)的處理總峰值就達(dá)到了3億/秒。

參考鏈接:https://yq.aliyun.com/articles/457438

這里先解釋下什么是維表;維表是動(dòng)態(tài)表,表里所存儲(chǔ)的數(shù)據(jù)有可能不變,也有可能定時(shí)更新,但是更新頻率不是很頻繁。在業(yè)務(wù)開(kāi)發(fā)中一般的維表數(shù)據(jù)存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)如MySQL,oracle等,也可能存儲(chǔ)在hbase,redis等NoSql數(shù)據(jù)庫(kù)。


2、所以要用FlinkSQL實(shí)現(xiàn)流與維表的join 分兩步:

一、用Flink api實(shí)現(xiàn)維表的功能

要實(shí)現(xiàn)維表功能就要用到 Flink Aysnc I/O 這個(gè)功能,是由阿里巴巴貢獻(xiàn)給Apache Flink的。

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join

Async I/O 是由阿里巴巴貢獻(xiàn)給社區(qū)的,于1.2版本引入,主要目的是為了解決與外部系統(tǒng)交互時(shí)網(wǎng)絡(luò)延遲成為了系統(tǒng)瓶頸的問(wèn)題。具體介紹可以看這篇文章:http://wuchong.me/blog/2017/05/17/flink-internals-async-io/

對(duì)應(yīng)到Flink 的api就是RichAsyncFunction 這個(gè)抽象類(lèi),繼層這個(gè)抽象類(lèi)實(shí)現(xiàn)里面的open(初始化),asyncInvoke(數(shù)據(jù)異步調(diào)用),close(停止的一些操作)方法,最主要的是實(shí)現(xiàn)asyncInvoke 里面的方法。

流與維表的join會(huì)碰到兩個(gè)問(wèn)題:

第一個(gè)是性能問(wèn)題。因?yàn)榱魉僖呛芸欤恳粭l數(shù)據(jù)都需要到維表做下join,但是維表的數(shù)據(jù)是存在第三方存儲(chǔ)系統(tǒng),如果實(shí)時(shí)訪問(wèn)第三方存儲(chǔ)系統(tǒng),不僅join的性能會(huì)差,每次都要走網(wǎng)絡(luò)io;還會(huì)給第三方存儲(chǔ)系統(tǒng)帶來(lái)很大的壓力,有可能會(huì)把第三方存儲(chǔ)系統(tǒng)搞掛掉。

所以解決的方法就是維表里的數(shù)據(jù)要緩存,可以全量緩存,這個(gè)主要是維表數(shù)據(jù)不大的情況,還有一個(gè)是LRU緩存,維表數(shù)據(jù)量比較大的情況。

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join

LRU維表的實(shí)現(xiàn)

第二個(gè)問(wèn)題是流延遲過(guò)來(lái)的數(shù)據(jù)這么跟之前的維表數(shù)據(jù)做關(guān)聯(lián)。這個(gè)就涉及到維表數(shù)據(jù)需要存儲(chǔ)快照數(shù)據(jù),所以這樣的場(chǎng)景用HBase 做維表是比較適合的,因?yàn)镠Base 是天生支持?jǐn)?shù)據(jù)多版本的。

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join

ALL維表的實(shí)現(xiàn)

二、解析流與維表join的SQL語(yǔ)法轉(zhuǎn)化成底層的FlinkAPI

因?yàn)镕linkSQL已經(jīng)做了大部分SQL場(chǎng)景,我們不可能在去解析SQL的所有語(yǔ)法,在把他轉(zhuǎn)化成底層FlinkAPI。

所以我們做的就是解析SQL語(yǔ)法,來(lái)找到j(luò)oin表里有沒(méi)有維表,如果有維表,那我們會(huì)把這個(gè)join的維表的語(yǔ)句單獨(dú)拆來(lái),用Flink的TableAPI和StreamAPi 生成新DataStream,在把這個(gè)DataStream與其他的表在做join這樣就能用SQL來(lái)實(shí)現(xiàn)流與維表的join語(yǔ)法了。

SQL解析的工具就是用Apache calcite,F(xiàn)link也是用這個(gè)框架做SQL解析的。所以所有語(yǔ)法都是可以解析的。

1. DEMO SQL

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join

2. Calcite解析Insert into語(yǔ)句,拆分出子語(yǔ)句

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join


3. Calcite繼續(xù)解析select語(yǔ)句

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join

Calcite繼續(xù)解析select語(yǔ)句

如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join

Calcite繼續(xù)解析select語(yǔ)句

關(guān)于如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

網(wǎng)站欄目:如何擴(kuò)展FlinkSQL實(shí)現(xiàn)流與維表的join
本文URL:http://aaarwkj.com/article10/pdigdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化網(wǎng)站營(yíng)銷(xiāo)、微信公眾號(hào)、網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷(xiāo)推廣、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
人妻中字幕出轨中文字幕| 激情一区二区三区视频| 国产高清自拍视频免费| 日韩人妻av免费电影| 亚洲精品熟女一区二区三区 | 亚洲av日韩av高潮| 国产经典三级在线观看| 日韩亚洲一区二区免费| 求个手机免费在线观看av网址| 日本一区二区欧美亚洲国产| 国内午夜福利精品视频| 国产91高清免费视频| 欧美精品福利一区二区| 最新国产成人免费在线视频| 成人免费毛片内射视频| 成人自拍偷拍在线视频| 久久人妻蜜桃一区二区三区| 五月婷婷六月丁香免费视频| 日韩欧美乱码一区二区| 我想看亚洲一级黄色录像| 久久免费国产精品电影| 久久久国产一区二区三区| 人妻少妇精品一区毛二区| 国产精品伊人久久精品| 国产欧洲日本一区二区| 97人妻人人澡人人爽| 久久亚洲中文字幕乱码| 精品一区二区亚洲精品| 亚洲国产成在人网站天堂| 亚欧熟女乱色一二三区日韩| 精品国产一区亚洲二区| 亚洲男人成人性天堂网站| 国产成人亚洲欧美激情| 欧美激情另类综合国内| 日韩国产亚洲欧美国产| 天堂av在线一区二区三区| 欧美日韩国产一区二区的| 精品人妻系列一区二区| 久久久久久精品人妻网| 日韩精品一区伦理视频| 日本丝袜福利在线观看|