現(xiàn)狀描述
1、業(yè)務(wù)歷史數(shù)據(jù)可以變更
2、拉鏈表按天打?qū)?br> 3、拉鏈表模型分區(qū)字段設(shè)計不合理,通用的過濾字段沒有作為分區(qū)分桶字段
4、拉鏈表表數(shù)據(jù)量略大、模型數(shù)據(jù)分區(qū)不合理和服務(wù)器資源限制,計算任務(wù)執(zhí)行超時【3-4年,用戶數(shù):132W】
5、基于拉鏈表打?qū)捄蟮奶毂硇修D(zhuǎn)列【最多列達到300列】,sum(case when … end),沒有提前過濾數(shù)據(jù)
優(yōu)化
1、完善模型設(shè)計,設(shè)計主鍵和分桶字段
1)在單表計算:若大表存放多種類型數(shù)據(jù),數(shù)據(jù)分類字段要做為分區(qū)或分桶字段,可以實現(xiàn)數(shù)據(jù)快速過濾
2)多表關(guān)聯(lián):在大表合理設(shè)置了主鍵、分區(qū)或分桶的前提下,建議把關(guān)聯(lián)字段做份分區(qū)或分桶字段【要綜合考慮驗證,設(shè)置過多分區(qū)分桶字段可能也會影響數(shù)據(jù)性能】
2、提前進行數(shù)據(jù)過濾和分級分類計算
前提:拉鏈表數(shù)據(jù)量較大或打?qū)捄髷?shù)據(jù)量較大
1)若拉鏈表數(shù)據(jù)量較大且包含多種類型數(shù)據(jù),需要進行打?qū)挶硖幚怼疽粭l打?qū)挸啥鄺l】,那么打?qū)挶砗蟮臄?shù)據(jù)量會翻幾倍甚至更多從而導(dǎo)致性能很慢或者執(zhí)行超時;
》》》建議1:在打?qū)挼倪^程中按類別均勻拆分數(shù)據(jù)打?qū)挼蕉鄠€臨時表
》》》建議2:增加任務(wù)并行度【在資源允許的前提下,大部分任務(wù)提高并發(fā)度可以解決性能問題:set parallel_fragment_exec_instance_num=8;】
2)若拉鏈表數(shù)據(jù)量較大【同一種類型數(shù)據(jù)】,需要進行打?qū)挶硖幚怼疽粭l打?qū)挸啥鄺l】,那么打?qū)挶砗蟮臄?shù)據(jù)量會翻幾倍甚至更多從而導(dǎo)致性能很慢或者執(zhí)行超時;
》》》建議1:在打?qū)挼倪^程中可以按時間拆分為當前和歷史數(shù)據(jù)表【數(shù)據(jù)歸檔處理】
》》》建議2:增加任務(wù)并行度【在資源允許的前提下,大部分任務(wù)提高并發(fā)度可以解決性能問題:set parallel_fragment_exec_instance_num=8;】
3)若拉鏈表打?qū)捄蟛煌愋蛿?shù)據(jù)在下游計算邏輯不一致,建議根據(jù)數(shù)據(jù)類型或其他類型拆分數(shù)據(jù)
3、根據(jù)指標需求進行熱點數(shù)據(jù)特殊優(yōu)化
前提:資源有限,1個并發(fā)度運行文章來源:http://www.zghlxwxcb.cn/news/detail-624629.html
1)拉鏈表按分類拆分【過濾】后再按天打?qū)挼蕉鄠€寬表;
2)計算邏輯:計算第1-150天和150+的數(shù)據(jù),打?qū)挸?51行;
》》》可以分兩類計算:第一類計算第1-150天【150列】再關(guān)聯(lián)計算150+列
3)若按以上邏輯計算任務(wù)還是執(zhí)行超時,把數(shù)據(jù)拆分當前表和歷史表,使用兩個insert
優(yōu)化參數(shù)
set enable_vectorized_engine = true; – 開啟向量化【 doris 1.1 版本中默認開啟】文章來源地址http://www.zghlxwxcb.cn/news/detail-624629.html
到了這里,關(guān)于doris - 數(shù)倉 拉鏈表 按天全量打?qū)挶硇阅軆?yōu)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!