300萬(wàn)字!全網(wǎng)最全大數(shù)據(jù)學(xué)習(xí)面試社區(qū)等你來(lái)!
Flink1.19版本更新了,我們按例對(duì)最新版本的Flink中的核心能力進(jìn)行一下解讀。
我們的重點(diǎn)還是生產(chǎn)環(huán)境應(yīng)用和需要注意的問(wèn)題,以及對(duì)未來(lái)的一些判斷。
本次更新涉及到SQL/Runtime/CheckPoint這三個(gè)方面的改進(jìn),這也是目前整個(gè)引擎開(kāi)發(fā)最重要的幾個(gè)方向。
SQL能力優(yōu)化
SQL能力上的優(yōu)化需要大家特別關(guān)注的三個(gè)能力分別是:源表自定義并行度、sql hint配置TTL、Regular Join支持MiniBatch優(yōu)化。
源表自定義并行度
Flink 1.19版本中開(kāi)始支持通過(guò)設(shè)置scan.parallelism這樣的參數(shù)來(lái)配置并行度,不過(guò)目前支持的連接器是DataGen,還沒(méi)有大范圍的支持。
源表的并行度支持是非常重要的一個(gè)能力,對(duì)不同的source源,并行度解決的問(wèn)題不盡相同。
我們?cè)谙M(fèi)數(shù)據(jù)時(shí),增大消費(fèi)的并行度可以有效解決數(shù)據(jù)的消費(fèi)速度和關(guān)聯(lián)效率;對(duì)于RocketMQ、Mysql、Redis這樣的數(shù)據(jù)源尤其明顯,如果你的數(shù)據(jù)規(guī)模較大,消費(fèi)延遲,最有效的辦法之一就是加大消費(fèi)并行度;
但是Kafka是個(gè)特例,因?yàn)镵afka connector的獨(dú)特的設(shè)計(jì),一般在生產(chǎn)環(huán)境我們建議消費(fèi)并行度和Kafka的Partition保持一致,如果不設(shè)置的話會(huì)默認(rèn)當(dāng)前Flink任務(wù)的最大并行度。
官方預(yù)計(jì)下個(gè)版本優(yōu)先支持Kafka,但是我建議社區(qū)可以換個(gè)其他的source connetcor優(yōu)先實(shí)現(xiàn)。
SQL Hint配置TTL
官方給出了一個(gè)案例:
--?set?state?ttl?for?join
SELECT?/*+?STATE_TTL('Orders'=?'1d',?'Customers'?=?'20d')?*/?*
FROM?Orders?LEFT?OUTER?JOIN?Customers
????ON?Orders.o_custkey?=?Customers.c_custkey;
--?set?state?ttl?for?aggregation
SELECT?/*+?STATE_TTL('o'?=?'1d')?*/?o_orderkey,?SUM(o_totalprice)?AS?revenue
FROM?Orders?AS?o
GROUP?BY?o_orderkey;
在Flink1.18的基礎(chǔ)上,1.19版本使TTL的設(shè)置變得更加易用,是個(gè)很大的提升,我的判斷是大家基本上可以在生產(chǎn)環(huán)境嘗試使用了。對(duì)于減少state大小和降低任務(wù)資源消耗有很大幫助。
Regular Join支持MiniBatch優(yōu)化
關(guān)于Regular Join相信大家都陌生了,Regular Join在生產(chǎn)環(huán)境中的幾個(gè)非常嚴(yán)重的問(wèn)題其中之一就是性能問(wèn)題。因?yàn)樾枰l繁訪問(wèn)狀態(tài),如果你的任務(wù)狀態(tài)很大或者對(duì)狀態(tài)的訪問(wèn)非常頻繁,那么就會(huì)遇到性能瓶頸,Regular Join支持MiniBatch優(yōu)化在一定程度上能解決這個(gè)問(wèn)題,本質(zhì)上就是一個(gè)批次去重的過(guò)程。
Rumtime優(yōu)化
Flink1.19中開(kāi)始支持批作業(yè)的源表動(dòng)態(tài)并行度推導(dǎo),允許源連接器根據(jù)實(shí)際消耗的數(shù)據(jù)量動(dòng)態(tài)推斷并行度。在實(shí)際使用中,批任務(wù)的并行度的動(dòng)態(tài)推導(dǎo)是提高批作業(yè)性能的重要的手段,大家可以嘗試小范圍使用。不過(guò)現(xiàn)在還需要做一點(diǎn)定制開(kāi)發(fā),源連接器需要實(shí)現(xiàn)推理接口,以啟用動(dòng)態(tài)并行度推理。目前已經(jīng)支持FileSource連接器。
Checkpoint
1.19版本支持了一個(gè)能力,可以通過(guò)設(shè)置參數(shù)來(lái)設(shè)置Flink任務(wù)在讀取不同數(shù)據(jù)源數(shù)據(jù)的checkpointing.interval能力。什么意思呢?例如你的代碼需要先讀一個(gè)Hive表,再接著消費(fèi)Kafka的數(shù)據(jù)。這兩個(gè)階段就可以設(shè)置不同的checkpointing.interval。
execution.checkpointing.interval:?30sec
execution.checkpointing.interval-during-backlog:?30min
以上就1.19版本需要關(guān)注的新的能力,我們下個(gè)版本再見(jiàn)。
如果這個(gè)文章對(duì)你有幫助,不要忘記?「在看」?「點(diǎn)贊」?「收藏」?三連啊喂!
全網(wǎng)首發(fā)|大數(shù)據(jù)專家級(jí)技能模型與學(xué)習(xí)指南(勝天半子篇)
互聯(lián)網(wǎng)最壞的時(shí)代可能真的來(lái)了
我在B站讀大學(xué),大數(shù)據(jù)專業(yè)
我們?cè)趯W(xué)習(xí)Flink的時(shí)候,到底在學(xué)習(xí)什么?
193篇文章暴揍Flink,這個(gè)合集你需要關(guān)注一下
Flink生產(chǎn)環(huán)境TOP難題與優(yōu)化,阿里巴巴藏經(jīng)閣YYDS
Flink CDC我吃定了耶穌也留不住他!| Flink CDC線上問(wèn)題小盤(pán)點(diǎn)
我們?cè)趯W(xué)習(xí)Spark的時(shí)候,到底在學(xué)習(xí)什么?
在所有Spark模塊中,我愿稱SparkSQL為最強(qiáng)!
硬剛Hive | 4萬(wàn)字基礎(chǔ)調(diào)優(yōu)面試小總結(jié)
數(shù)據(jù)治理方法論和實(shí)踐小百科全書(shū)
標(biāo)簽體系下的用戶畫(huà)像建設(shè)小指南
4萬(wàn)字長(zhǎng)文 | ClickHouse基礎(chǔ)&實(shí)踐&調(diào)優(yōu)全視角解析
【面試&個(gè)人成長(zhǎng)】社招和校招的經(jīng)驗(yàn)之談
大數(shù)據(jù)方向另一個(gè)十年開(kāi)啟 |《硬剛系列》第一版完結(jié)
我寫(xiě)過(guò)的關(guān)于成長(zhǎng)/面試/職場(chǎng)進(jìn)階的文章文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-853988.html
當(dāng)我們?cè)趯W(xué)習(xí)Hive的時(shí)候在學(xué)習(xí)什么?「硬剛Hive續(xù)集」文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-853988.html
到了這里,關(guān)于Flink1.19版本生產(chǎn)環(huán)境應(yīng)用解讀!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!