Apache Doris 2.0.3 版本正式釋出

SelectDB發表於2023-12-20

親愛的社群小夥伴們, Apache Doris 2.0.3 版本已於 2023 年 12 月 14 日正式釋出,該版本對複雜資料型別、統計資訊收集、倒排索引、資料湖分析、分散式副本管理等多個功能進行了最佳化 ,歡迎大家下載體驗。

此外,由衷感謝 104 位貢獻者,他們為 Apache Doris 2.0.3 版本提交了超過 1000 個功能最佳化項以及問題修復,為效能及穩定性提升做出重要貢獻。

新增特性

自動統計資訊收集

統計資訊是 CBO 最佳化器進行代價估算時的依賴,透過收集統計資訊有助於最佳化器瞭解資料分佈特性、執行計劃成本估算以及執行計劃選擇,用於查詢效率的提升。

2.0.3 版本開始,Apache Doris 支援了自動統計資訊收集,並預設為開啟狀態。在每次匯入事務提交後,Apache Doris 會記錄匯入事務更新的表資訊,並估算表統計資訊的健康度。當健康度低於配置引數時,Doris 將自動觸發統計資訊收集作業。為了降低統計資訊作業的資源開銷,Apache Doris 會自動採取取樣的方式收集統計資訊,使用者也可根據需求調整引數以獲得更準確的資料分佈資訊。

更多資訊請參考:

資料湖框架支援複雜資料型別

Java UDF、JDBC catalog、Hudi MOR 表等功能支援複雜資料型別

Paimon catalog 支援複雜資料型別

Paimon catalog 支援 Paimon 0.5 版本

增加更多內建函式

新最佳化器支援 BitmapAgg 函式

支援 SHA 系列摘要函式

聚合函式 min_by 和 max_by 支援 bitmap 資料型別

增加 milliseconds/microseconds_add/sub/diff 函式

增加 json_insert, json_replace, json_set JSON 函式

改進最佳化

效能最佳化

在過濾率高的倒排索引 match where 條件和過濾率低的普通 where 條件組合時,大幅降低索引列的 IO

最佳化經過 where 條件過濾後隨機讀資料的效率

最佳化在 JSON 資料型別上使用老的 get_json_xx 函式的效能,提升 2-4 倍

支援配置降低讀資料執行緒的優先順序,保證寫入的 CPU 資源和實時性

增加返回 largeint 的 uuid-numeric 函式,效能比返回 string 的 uuid 函式快 20 倍

Case when 的效能提升 3 倍

在儲存引擎執行中裁剪不必要的謂詞計算

支援 count 運算元下推到儲存層

最佳化支援 and or 表示式中包含 nullable 型別的計算效能

支援更多場景下 limit 運算元提前到 join 前執行的改寫,以提升執行效率

增加消除 inline view 中的無用的 order by 運算元,以提升執行效率

最佳化了部分情況下的基數估計和代價模型的準確性,以提升執行效率

最佳化了 JDBC catalog 的謂詞下推邏輯和大小寫邏輯

最佳化了 file cache 的第一次開啟後的讀取效率

最佳化 Hive 表 SQL cache 策略,使用 HMS 中儲存的分割槽更新時間作為 cache 是否失效的判斷,提高 cache 命中率

最佳化了 Merge-on-Write compaction 效率

最佳化了外表查詢的執行緒分配邏輯,降低記憶體使用

最佳化 column reader 的記憶體使用

分散式副本管理改進

最佳化跳過刪除分割槽、 colocate group、持續寫時均衡失敗、冷熱分層表不能均衡等;

安全性提升

審計日誌外掛的配置使用 token 代替明文密碼以增強安全性

log4j 配置安全性增強

日誌中不顯示使用者敏感資訊

Bugfix 和穩定性提升

複雜資料型別

修復了 map/struct 對定長 CHAR(n) 沒有正確截斷的問題

修復了 struct 巢狀 map/array 寫入失敗的問題

修復了 count distinct 不支援 array/map/struct 的問題

解決 query 中出現 delete 複雜型別之後,升級過程中出現 BE crash 的問題

修復了 jsonb 在 where 條件中 BE crash 問題

修復了 outer join 中有 array 型別時 BE crash 的問題

修復 orc 格式 decimal 型別讀取錯誤的問題


倒排索引

修復了關閉倒排索引查詢時 OR NOT 組合 where 條件結果錯誤的問題

修復了空陣列的倒排索引寫入時 BE crash 的問題

修復輸出為空的情況下 index compaction BE crash 的問題

修復新增列沒有寫入資料時,增加倒排索引 BE crash 的問題

修復 1.2 版本誤建倒排索引後升級 2.0 等情況下倒排索引硬鏈缺失和洩露的問題

物化檢視

修復 group by 語句中包括重複表示式導致 BE crash 的問題

禁止檢視建立時 group by 子句中使用 float/double 型別

增強支援了 select 查詢命中物化檢視的功能

修復當使用了表的 alias 時物化檢視不能命中的問題

修復了建立物化檢視中使用 percentile_approx 的問題

取樣查詢

修復 table sample 功能在 partition table 上無法正常工作的問題

修復 table sample 指定 tablet 無法工作的問題

主鍵表

修復基於主鍵條件更新的空指標異常

修復部分列更新欄位名大小寫問題

修復 schema change 時 mow 會出現重複 key 的問題

匯入和 Compaction

修復 routine load 多表時 unkown slot descriptor 錯誤

修復記憶體統計併發訪問導致 BE crash 問題

修復重複取消匯入導致 BE crash 的問題

修復 broker load 時 broker 連線報錯問題

修復 compaction 和 scan 併發下 delete 謂詞可能導致查詢結果不對的問題

修復 compaction task 存在時列印大量 stacktrace 日誌的問題

資料湖相容性

解決 iceberg 表中包含特殊字元導致查詢失敗的問題

修復 Hive metastore 不同版本的相容性問題

修復讀取 MaxCompute 分割槽表錯誤的問題

修復備份到物件儲存失敗的問題

JDBC 外表相容性

修復 JDBC catalog 處理 Oracle 日期型別格式錯誤的問題

修復 JDBC catalog 讀取 MySQL 0000-00-00 日期異常的問題

修復從 MariaDB 讀取資料時間型別預設值為 current_timestamp 時空指標異常問題

修復 JDBC catalog 處理 bitmap 型別時 BE crash 的問題

SQL規劃和最佳化

修復了部分場景下分割槽裁剪錯誤的問題



修復了部分場景下子查詢處理不正確的問題



修復了部分語義解析的錯誤

修復 right outer/anti join 時,有可能丟失資料的問題

修復了謂詞被錯誤的下推穿過聚合運算元的問題

修正了部分情況下返回的結果 header 不正確的問題

包含有 nullsafeEquals 表示式(<=>)作為連線條件時,可以正確對規劃出 hash join

修復了 set operation 運算元中無法正確列裁剪的問題

行為變更

複雜資料型別 array/map/struct 的輸出格式改成跟輸入格式以及 JSON 規範保持一致,跟之前版本的主要變化是日期和字串用雙引號括起來,array/map 內部的空值顯示為 null 而不是 NULL。

預設情況下,當使用者屬性   resource_tags.location  沒有設定時,只能使用 default 資源組的節點,而之前版本中可以訪問任意節點。

支援 SHOW_VIEW 許可權,擁有 SELECT 或 LOAD 許可權的使用者將不再能夠執行  SHOW CREATE VIEW  語句,必須單獨授予 SHOW_VIEW 許可權。

 


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70017904/viewspace-3000783/,如需轉載,請註明出處,否則將追究法律責任。

相關文章