日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是 Flink SQL 解決不了的問(wèn)題?

京東云 ? 來(lái)源:jf_75140285 ? 作者:jf_75140285 ? 2024-07-09 20:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

簡(jiǎn)介

在實(shí)時(shí)數(shù)據(jù)開(kāi)發(fā)過(guò)程中,大家經(jīng)常會(huì)用 Flink SQL 或者 Flink DataStream API 來(lái)做數(shù)據(jù)加工。通常情況下選用2者都能加工出想要的數(shù)據(jù),但是總會(huì)有 Flink SQL 覆蓋不了的問(wèn)題,但 SQL 的易用性又難以讓人釋?xiě)?。所以有些?chǎng)景在使用 FLink SQL 開(kāi)始就與需要額外注意,下面就介紹一種多表關(guān)聯(lián)時(shí)存在部分列更新(partial Update)場(chǎng)景,在 DataStream API 和 Flink SQL 開(kāi)發(fā)時(shí)都容易忽視的情況而導(dǎo)致的問(wèn)題。為了簡(jiǎn)化問(wèn)題描述,采用了Flink SQL 來(lái)闡述此類(lèi)問(wèn)題。

場(chǎng)景介紹

多表關(guān)聯(lián)時(shí)表 A 關(guān)聯(lián)表 B, 表 A 具有pk1, field1, field2, field3字段,表 B 具有 pk2, field4, field5, field6 字段,表 A 通過(guò) pk1 關(guān)聯(lián)表B pk2。使用 Flink SQL 會(huì)如下實(shí)現(xiàn):

CREATE TABLE jdq_source(
pk1 INT,
field1 STIRNG,
field2 STIRNG,
field3 STIRNG,
PRIMARY KEY(pk1) NOT ENFORCED
) WITH(...);

CREATE TABLE sr_sink(
pk1 INT,
field1 STRING,
field2 STRING,
field3 STRING,
field4 STRING,
field5 STRING,
field6 STRING,
PRIMARY KEY(pk2) NOT ENFORCED
) WITH (...);

INSERT INTO C
SELECT A.pk1,A.field1,A.field2,A.field3,B.pk2,B.field4,B.field5,B.field6 FROM jdq_source A
INNER JOIN sr_sink B
ON A.pk1 = B.pk2;

上述實(shí)例中有明顯特征:使用了Join 關(guān)聯(lián), 且需要注意的是寫(xiě)入的數(shù)據(jù)庫(kù) sink 是 StarRocks。StarRocks 存在如下特性:當(dāng)表是主鍵表時(shí)是不支持部分列更新( Partial Update)的,實(shí)際上大部分時(shí)候大家都用的是主鍵表。

然后在一個(gè)SQL查詢(xún)數(shù)據(jù)的接口就遇到了如下問(wèn)題:每次從接口查詢(xún)返回的結(jié)果都不穩(wěn)定,同樣的查詢(xún)條件不同時(shí)機(jī)返回的結(jié)果不一樣。SQL查詢(xún)語(yǔ)句如下:

select C.field1,C.field2,C.field3
FROM C group by field1,field2,field3;
為什么SQL查詢(xún)的結(jié)果會(huì)不一致呢?起初排查原因發(fā)現(xiàn) group by 返回結(jié)果有多條,而在SQL 中也沒(méi)有使用 order by 對(duì)數(shù)據(jù)進(jìn)行排序,所以導(dǎo)致了結(jié)果不穩(wěn)定。后又排查為什么會(huì)出現(xiàn)多條結(jié)果呢?于是懷疑 field1, field2, field3 有不符合預(yù)期的數(shù)據(jù)。如: 

20240530, 2, 3
20240530, 2, null
20240531, 2, 4

其中第2條是多余的,不應(yīng)該出現(xiàn)。結(jié)果發(fā)現(xiàn)可能是如下原因?qū)е碌模哼@3個(gè)字段 filed1, field2, filed3 在StarRocks數(shù)據(jù)庫(kù)中會(huì)一直在變化,不停的寫(xiě)入新值。導(dǎo)致 SQL 查詢(xún)時(shí)可以查到 field3 為 null 的數(shù)據(jù)。
為什么field3為不斷變化呢?究其原因是:StarRocks 主鍵表不支持部分列更新(Partial Update)。當(dāng)field3 為null時(shí),同樣會(huì)被寫(xiě)入 StarRocks。我們?cè)谕ㄟ^(guò)JDQ讀取表A field1, field2, field3 數(shù)據(jù)給表C寫(xiě)入數(shù)據(jù)時(shí),當(dāng)JDQ 消息隊(duì)列中表A的記錄存在亂序場(chǎng)景且field3 字段可能為null時(shí),最終寫(xiě)入StarRocks的field3 字段會(huì)出現(xiàn)時(shí)而為null,時(shí)而不為null。 所以SQL查詢(xún)接口中 group by的結(jié)果會(huì)出現(xiàn)不穩(wěn)定。

總結(jié)

為什么在開(kāi)發(fā)的時(shí)候當(dāng)時(shí)沒(méi)有發(fā)現(xiàn) StarRocks 主鍵表這個(gè)問(wèn)題呢?原因:1. 大家所關(guān)注的部分列更新,多數(shù)是關(guān)注insert into table_C(field1, field2, field3) 中不包含的字段field4,field5...等被更新為null,而當(dāng)前場(chǎng)景是會(huì)把 field3 為null的值也寫(xiě)入SR數(shù)據(jù)庫(kù)中,這不是我們期望的結(jié)果。2.表A作為主表,通常不會(huì)出現(xiàn)開(kāi)始field3有值后來(lái)又沒(méi)有值(null)的場(chǎng)景。出現(xiàn)這個(gè)現(xiàn)象大概率是因?yàn)樯嫌蜫DQ消息隊(duì)列中的數(shù)據(jù)亂序了,導(dǎo)致field3 為null的后出現(xiàn)了。而這種問(wèn)題又比較難發(fā)現(xiàn)。

什么情況下會(huì)出現(xiàn)此類(lèi)問(wèn)題呢?寫(xiě)入的數(shù)據(jù)庫(kù)不支持部分列更新場(chǎng)景時(shí)會(huì)出現(xiàn)。如StarRocks, Doris。因?yàn)镸ySQL, ES,ClickHouse的部分表引擎支持部分列更新,所以在MySQL, ES,ClickHouse中不會(huì)出現(xiàn)。

同理在 DataStream API 中如果表 A,表 B 關(guān)聯(lián)后的數(shù)據(jù)直接寫(xiě)入StarRocks 的話(huà),也會(huì)出現(xiàn)此類(lèi)問(wèn)題。
以上這個(gè)問(wèn)題在 Flink SQL 中無(wú)法解決,在 Flink DataStream API 中可以模擬部分列更新來(lái)避免此類(lèi)問(wèn)題。具體方法:在DatStream 任務(wù)中增加一個(gè)MapState, 用來(lái)在新數(shù)據(jù)到來(lái)時(shí)從MapState拿出緩存的數(shù)據(jù),并和新到來(lái)的數(shù)據(jù)進(jìn)行合并,來(lái)實(shí)現(xiàn)部分列更新功能,最后再寫(xiě)入 StarRocks。
雖然問(wèn)題不是Flink SQL導(dǎo)致的,但是上面的問(wèn)題可以通過(guò)Flink DataStream API來(lái)規(guī)避。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    807

    瀏覽量

    46963
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    MySQL 刪庫(kù)后怎么恢復(fù)?binlog2sql 之外,NineData 還能做什么

    很多團(tuán)隊(duì)遇到 MySQL 誤刪、誤更新時(shí),第一反應(yīng)都是搜 binlog2sql。它確實(shí)能解決一部分問(wèn)題,但企業(yè)生產(chǎn)環(huán)境中真正缺的,往往不是單點(diǎn)回滾腳本,而是從變更提交、預(yù)檢、審批、執(zhí)行到追蹤和回滾
    的頭像 發(fā)表于 04-15 11:49 ?94次閱讀
    MySQL 刪庫(kù)后怎么恢復(fù)?binlog2<b class='flag-5'>sql</b> 之外,NineData 還能做什么

    NineData SQL AI 智能補(bǔ)全上線(xiàn):寫(xiě) SQL,不必每次都從頭敲

    NineData推出SQLAI智能補(bǔ)全功能,通過(guò)AI技術(shù)實(shí)現(xiàn)上下文感知的SQL語(yǔ)句智能提示。該功能不僅能補(bǔ)全關(guān)鍵字,還能根據(jù)當(dāng)前輸入內(nèi)容預(yù)測(cè)后續(xù)查詢(xún)意圖,顯著提升多表關(guān)聯(lián)、復(fù)雜條件等場(chǎng)景下的編寫(xiě)效率
    的頭像 發(fā)表于 04-01 20:19 ?331次閱讀
    NineData <b class='flag-5'>SQL</b> AI 智能補(bǔ)全上線(xiàn):寫(xiě) <b class='flag-5'>SQL</b>,不必每次都從頭敲

    SQL分析選型:DMS/DAS與NineData該如何選擇

    阿里云 DMS 的慢SQL 趨勢(shì)、DAS 的 SQL 審計(jì)能力成熟,可滿(mǎn)足阿里云用戶(hù)基礎(chǔ)需求。NineData 側(cè)重跨云統(tǒng)一工作臺(tái)、研發(fā)與 DBA 協(xié)同,打通慢日志分析、性能診斷、規(guī)范審核、索引建議全鏈路,更適配企業(yè)級(jí)慢查詢(xún)持續(xù)治理。
    的頭像 發(fā)表于 03-25 17:20 ?1553次閱讀
    慢<b class='flag-5'>SQL</b>分析選型:DMS/DAS與NineData該如何選擇

    NineData 社區(qū)版的慢SQL分析,比查看日志+看EXPLAIN適合中小團(tuán)隊(duì)

    本文探討 NineData 社區(qū)版在 MySQL 慢 SQL 場(chǎng)景對(duì)中小團(tuán)隊(duì)的適用性。與 “查看日志 + 看 EXPLAIN” 傳統(tǒng)方式不同,它將慢 SQL 按模板聚合,能從大盤(pán)、模板、診斷等多維
    的頭像 發(fā)表于 03-17 14:07 ?138次閱讀
    NineData 社區(qū)版的慢<b class='flag-5'>SQL</b>分析,比查看日志+看EXPLAIN適合中小團(tuán)隊(duì)

    MySQL 慢 SQL 排查這件事,NineData 社區(qū)VS DBeaver/ Navicat 技術(shù)分析

    DBeaver Community 和 Navicat Premium Lite 都是很有價(jià)值的客戶(hù)端工具,在單條 SQL 的查詢(xún)和驗(yàn)證上,依然是 DBA 最順手的入口。 但 NineData
    的頭像 發(fā)表于 03-17 11:53 ?149次閱讀
    MySQL 慢 <b class='flag-5'>SQL</b> 排查這件事,NineData 社區(qū)VS DBeaver/ Navicat 技術(shù)分析

    TCP三次握手與四次揮手的詳細(xì)過(guò)程

    ——SYN_RECV 隊(duì)列溢出怎么排查?TIME_WAIT 堆積幾萬(wàn)個(gè)怎么處理?RST 到底是誰(shuí)發(fā)的?這些問(wèn)題光靠背書(shū)解決不了。
    的頭像 發(fā)表于 02-25 10:38 ?459次閱讀

    VSCODE+ESP-IDF運(yùn)行\(zhòng)'\'hello world\",partition-table進(jìn)程卡住

    變化,不知道是什么原因,軟件卸載重裝都試過(guò),網(wǎng)上的好多方法都試過(guò),就是解決不了,一直卡在這里,特別奔潰,請(qǐng)大佬指點(diǎn)一下!!!!
    發(fā)表于 12-28 22:09

    使用NVIDIA Nemotron RAG和Microsoft SQL Server 2025構(gòu)建高性能AI應(yīng)用

    在 Microsoft Ignite 2025 大會(huì)上,隨著 Microsoft SQL Server 2025 的發(fā)布,AI 就緒型企業(yè)數(shù)據(jù)庫(kù)愿景成為現(xiàn)實(shí),為開(kāi)發(fā)者提供強(qiáng)大的新工具,例如內(nèi)置向量
    的頭像 發(fā)表于 12-01 09:31 ?1086次閱讀
    使用NVIDIA Nemotron RAG和Microsoft <b class='flag-5'>SQL</b> Server 2025構(gòu)建高性能AI應(yīng)用

    使用env v2.0執(zhí)行scons --dist產(chǎn)生缺失依賴(lài)報(bào)錯(cuò)怎么解決?

    報(bào)錯(cuò);詳情請(qǐng)看圖片,我嘗試了從github上拉取最新的packages的包到本地bsp的工程中,但是依舊解決不了問(wèn)題。
    發(fā)表于 09-11 08:28

    SQL 通用數(shù)據(jù)類(lèi)型

    SQL 通用數(shù)據(jù)類(lèi)型 數(shù)據(jù)庫(kù)表中的每個(gè)列都要求有名稱(chēng)和數(shù)據(jù)類(lèi)型。Each column in a database table is required to have a name and a
    的頭像 發(fā)表于 08-18 09:46 ?887次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)被加密如何恢復(fù)數(shù)據(jù)?

    SQL Server數(shù)據(jù)庫(kù)故障: SQL Server數(shù)據(jù)庫(kù)被加密,無(wú)法使用。 數(shù)據(jù)庫(kù)MDF、LDF、log日志文件名字被篡改。
    的頭像 發(fā)表于 06-25 13:54 ?870次閱讀
    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—<b class='flag-5'>SQL</b> Server數(shù)據(jù)庫(kù)被加密如何恢復(fù)數(shù)據(jù)?

    KT6368A 藍(lán)牙芯片通過(guò) FCC、BQB、KC、CE 等認(rèn)證的操作指南

    固件 RF=7_20240718”,BQB 用 “KT6328A_F510_BQB_認(rèn)證固件_20220419.fw”。燒錄后替換原芯片即可測(cè)試,可參考相關(guān)文檔,認(rèn)證不通過(guò)多因硬件問(wèn)題,解決不了可聯(lián)系協(xié)助解決
    的頭像 發(fā)表于 06-18 13:44 ?1379次閱讀
    KT6368A 藍(lán)牙芯片通過(guò) FCC、BQB、KC、CE 等認(rèn)證的操作指南

    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理SQL命令詳解

    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理SQL命令詳解
    的頭像 發(fā)表于 06-17 15:12 ?7688次閱讀
    達(dá)夢(mèng)數(shù)據(jù)庫(kù)常用管理<b class='flag-5'>SQL</b>命令詳解

    大促數(shù)據(jù)庫(kù)壓力激增,如何一眼定位 SQL 執(zhí)行來(lái)源?

    你是否曾經(jīng)遇到過(guò)這樣的情況:在大促活動(dòng)期間,用戶(hù)訪(fǎng)問(wèn)量驟增,數(shù)據(jù)庫(kù)的壓力陡然加大,導(dǎo)致響應(yīng)變慢甚至服務(wù)中斷?更讓人頭疼的是,當(dāng)你試圖快速定位問(wèn)題所在時(shí),卻發(fā)現(xiàn)難以確定究竟是哪個(gè)業(yè)務(wù)邏輯中的 SQL
    的頭像 發(fā)表于 06-10 11:32 ?685次閱讀
    大促數(shù)據(jù)庫(kù)壓力激增,如何一眼定位 <b class='flag-5'>SQL</b> 執(zhí)行來(lái)源?

    禾賽激光雷達(dá)成為理想汽車(chē)的安全新標(biāo)配

    在節(jié)目中,李想提到一個(gè)關(guān)鍵認(rèn)知:“過(guò)去,人們很容易陷入一個(gè)誤區(qū)。認(rèn)為人類(lèi)靠眼睛就能開(kāi)車(chē),所以車(chē)輛使用攝像頭就能達(dá)到人類(lèi)開(kāi)車(chē)的水平。但其實(shí)我們今天要解決的是人類(lèi)解決不了的問(wèn)題。因?yàn)榇蠹覍?duì)于車(chē)輛的安全要求不滿(mǎn)足于現(xiàn)狀?!?/div>
    的頭像 發(fā)表于 05-16 15:46 ?1037次閱讀
    买车| 文化| 天气| 宜城市| 六盘水市| 高平市| 辽宁省| 教育| 辉南县| 许昌市| 义马市| 元谋县| 西畴县| 凯里市| 两当县| 迁西县| 天津市| 阳泉市| 和硕县| 朝阳县| 佛山市| 诏安县| 定襄县| 威海市| 微博| 连平县| 唐海县| 诸城市| 嘉峪关市| 淮北市| 佛冈县| 北京市| 安多县| 顺昌县| 石柱| 南澳县| 珠海市| 昔阳县| 泾阳县| 阿克苏市| 高州市|