時間:2024-02-13 10:23作者:下載吧人氣:32
記錄:256
寫SQL最高境界:SELECT * FROM 表名。當(dāng)然這是一句自嘲。探究一下SQL語句中JOIN的用法,直到經(jīng)歷這個場景,變得想驗證一下究竟。
把關(guān)系型數(shù)據(jù)庫A中表TEST_TB01和TEST_TB02遷移到大數(shù)據(jù)平臺M(MaxCompute大數(shù)據(jù)平臺)。TEST_TB01單表1000萬條記錄,TEST_TB02單表80萬條記錄。
在關(guān)系型數(shù)據(jù)庫中,TEST_TB01和TEST_TB02中有主鍵約束。在產(chǎn)生新增業(yè)務(wù)數(shù)據(jù)時,不會存在重復(fù)數(shù)據(jù)插入。但是,當(dāng)數(shù)據(jù)遷移到大數(shù)據(jù)平臺后,由于在大數(shù)據(jù)平臺中無主鍵約束功能。在產(chǎn)生新增業(yè)務(wù)數(shù)據(jù)時,TEST_TB01和TEST_TB02均均插入了重復(fù)數(shù)據(jù)。
在一個計算任務(wù)中,TEST_TB01和TEST_TB02根據(jù)某個字段JOIN連接,計算出了一份結(jié)果數(shù)據(jù),數(shù)據(jù)推送到使用方的關(guān)系型數(shù)據(jù)庫C。直接導(dǎo)致了C數(shù)據(jù)庫的對應(yīng)表的表空間撐爆,監(jiān)控預(yù)警。
原因:TEST_TB01和TEST_TB02有重復(fù)數(shù)據(jù),使用JOIN連接后,生成了10億+條數(shù)據(jù),共計200G+數(shù)據(jù),直接推送到C數(shù)據(jù)庫。
那次考慮不周,瞬間懵了,感覺SQL語句中的JOIN變得陌生極了。于是想探究一下以作記錄。
TEST_TB01建表語句:
create table TEST_TB01
(
sensor_id BIGINT,
part_id BIGINT
)
COMMENT ‘數(shù)據(jù)表一’;
網(wǎng)友評論