親愛的社群小夥伴們,歷時數月,我們很高興地宣佈,Apache Doris (incubating) 於 2022 年 4 月 18 日迎來了 1.0 Release 版本的正式釋出!這是 Apache Doris 在進入 Apache 基金會孵化以來的第一個 1 位版本,也是迄今為止對 Apache Doris 核心程式碼重構幅度最大的一個版本!有 114 位 Contributor 為 Apache Doris 提交了超過 660 項優化和修復,感謝每一個讓 Apache Doris 變得更好的你!
在 1.0 版本中,我們引入了向量化執行引擎、Hive 外部表、Lateral View 語法及 Table Function 表函數、Z-Order 資料索引、Apache SeaTunnel 外掛等重要功能,增加了對 Flink CDC 同步更新和刪除資料的支援,優化了諸多資料匯入和查詢過程中的問題,對 Apache Doris 的查詢效能、易用性、穩定性等多方特效進行了全面加強,歡迎大家下載使用!
特別鳴謝
每一個不曾發版的日子,背後都有無數貢獻者枕戈待旦,不敢停歇半分。在此我們尤其要感謝來自向量化執行引擎、查詢優化器、視覺化運維平臺 等 SIG (專項興趣小組)的小夥伴。自 2021 年 8 月 Apache Doris 社群 SIG 小組成立以來,來自百度、美團、小米、京東、蜀海、位元組跳動、騰訊、網易、阿里巴巴、PingCAP、Nebula Graph 等十餘家公司的數十名貢獻者作為首批成員加入到 SIG 中,第一次以專項小組的開源共同作業形式完成了向量化執行引擎、查詢優化器、 Doris Manager 視覺化監控運維平臺等如此重大功能的開發,歷時半年以上、開展技術調研和分享數十次、召開遠端會議近百次、累計提交 Commits 多達數百個、涉及程式碼行數高達十餘萬行,正是因為有他們的貢獻,才有 1.0 版本的問世,讓我們再次對他們的辛勤付出表示最真誠的感謝!
與此同時,Apache Doris 的貢獻者數量已超過 300 人( 點選回顧:),每月活躍的貢獻者數量超過了 60 人,近幾周平均每週提交的 Commits 數量也超過 80,社群聚集的開發者規模及活躍度已經有了極大的提升。我們十分期待有更多的小夥伴參與社群貢獻中來,與我們一道把 Apache Doris 打造成全球頂級的分析型資料庫,也期待所有小夥伴可以與我們一起收穫寶貴的成長。如果你想參與社群,歡迎通過開發者郵箱 [email protected] 與我們取得聯絡。
重要更新
過去 Apache Doris 的 SQL 執行引擎是基於行式記憶體格式以及基於傳統的火山模型進行設計的,在進行 SQL 運算元與函數運算時存在非必要的開銷,導致 Apache Doris 執行引擎的效率受限,並不適應現代 CPU 的體系結構。向量化執行引擎的目標是替換 Apache Doris 當前的行式 SQL 執行引擎,充分釋放現代 CPU 的計算能力,突破在 SQL 執行引擎上的效能限制,發揮出極致的效能表現。
基於現代 CPU 的特點與火山模型的執行特點,向量化執行引擎重新設計了在列式儲存系統的 SQL 執行引擎:
-
重新組織記憶體的資料結構,用 Column替換 Tuple,提高了計算時 Cache 親和度,分支預測與預取記憶體的友好度
-
分批進行型別判斷,在本次批次中都使用型別判斷時確定的型別,將每一行型別判斷的虛擬函式開銷分攤到批次級別。
-
通過批級別的型別判斷,消除了虛擬函式的呼叫,讓編譯器有函數內聯以及 SIMD 優化的機會
從而大大提高了 CPU 在 SQL 執行時的效率,提升了 SQL 查詢的效能。
在 Apache Doris 1.0 版本中,通過 set batch_size = 4096 和 set enable_vectorized_engine = true 開啟向量化執行引擎,多數情況下可顯著提升查詢效能。在 SSB 和 OnTime 標準測試資料集下,多表關聯和寬列查詢兩大場景的整體效能分別有 3 倍和 2.6 倍的提升。
Lateral View 語法 [Experimental]
通過 Lateral View 語法,我們可以使用 explod_bitmap 、explode_split、explode_jaon_array 等 Table Function 表函數,將 bitmap、String 或 Json Array 由一列展開成多行,以便後續可以對展開的資料進行進一步處理(如 Filter、Join 等)。
Hive 外表 [Experimental]
Hive External Table 為使用者提供了通過 Doris 直接存取 Hive 表的能力,外部表省去了 繁瑣的資料匯入工作,可以藉助 Doris 本身 OLAP 的能力來解決 Hive 表的資料分析問題。當前版本支援將 Hive 資料來源接入 Doris,並支援通過 Doris 與 Hive 資料來源中的資料進行聯邦查詢,進行更加複雜的分析操作。
支援 Z-Order 資料排序格式
Apache Doris 資料是按照字首列排序儲存的,因此在包含字首查詢條件時,可以在排序資料上進行快速的資料查詢,但如果查詢條件不是字首列,則無法利用資料排序的特徵進行快速資料查詢。通過 Z-Order Indexing 可以解決上述問題,在 1.0 版本中我們增加了 Z-Order 資料排序格式,在看板類多列查詢的場景中可以起到很好過濾效果,加速對非字首列條件的過濾效能。
支援 Apache SeaTunnel (incubating) 外掛
Apache SeaTunnel 是一個高效能的分散式資料整合框架,架構於 Apache Spark 和 Apache Flink 之上。在 Apache Doris 1.0 版本中,我們增加了 SaeTunnel 外掛,使用者可以藉助 Apache SeaTunnel 進行多資料來源之間的同步和 ETL。
新增函數
支援更多 bitmap 函數,具體可檢視函數手冊:
-
bitmap_max
-
bitmap_and_not
-
bitmap_and_not_count
-
bitmap_has_all
-
bitmap_and_count
-
bitmap_or_count
-
bitmap_xor_count
-
bitmap_subset_limit
-
sub_bitmap
支援國密演演算法 SM3/SM4;
注意:以上標記 [Experimental] 的功能為實驗性功能,我們將會在後續版本中對以上功能進行持續優化和迭代,並後續版本中進一步完善。在使用過程中有任何問題或意見,歡迎隨時與我們聯絡。
重要優化
功能優化
-
降低大批次匯入時,生成的 Segment 檔案數量,以降低 Compaction 壓力。
-
通過 BRPC 的 attachment 功能傳輸資料,以查詢過程中的降低序列化和反序列化開銷。
-
支援直接返回 HLL/BITMAP 型別的二進位制資料,用於業務在外側解析。
-
優化並降低 BRPC 出現 OVERCROWDED 和 NOT_CONNECTED 錯誤的概率,增強系統穩定性。
-
增強匯入的容錯性。
-
支援通過 Flink CDC 同步更新和刪除資料。
-
支援自適應的 Runtime Filter。
-
顯著降低 insert into 操作的記憶體佔用
易用性改進
-
Routine Load 支援顯示當前 offset 延遲數量等狀態。
-
FE audit log 中增加查詢峰值記憶體使用量的統計。
-
Compaction URL 結果中增加缺失版本的資訊,方便排查問題。
-
支援將 BE 標記為不可查詢或不可匯入,以快速遮蔽問題節點。
重要 Bug 修復
-
修復若干查詢錯誤問題。
-
修復 Broker Load 若干排程邏輯問題。
-
修復 STREAM 關鍵詞導致後設資料無法載入的問題。
-
修復 Decommission 無法正確執行的問題。
-
修復部分情況下操作 Schema Change 操作可能出現 -102 錯誤的問題。
-
修復部分情況下使用 String 型別可能導致 BE 宕機的問題。
其他
增加 Minidump 功能;
補充說明
Doris Manger 視覺化監控運維平臺也將在近期釋出 1.0 版本,目前已經進入 Release 流程中,後續將獨立釋出發版通告,請大家持續關注。
下載使用
下載使用
http://doris.apache.org/zh-CN/downloads/downloads.html
升級說明
您可以從 Apache Doris 0.15.0 或 0.15.x 發行版本直接升級到 1.0 Release 版本,升級過程請參考檔案:
http://doris.apache.org/zh-CN/installing/upgrade.html
更新紀錄檔
詳細 Release Note 請檢視連結:
https://github.com/apache/incubator-doris/issues/8549
意見反饋
如果您遇到任何使用上的問題,歡迎隨時通過 GitHub Discussion 論壇或者 Dev 郵件組與我們取得聯絡。
GitHub 論壇:https://github.com/apache/incubator-doris/discussions
Dev 郵件組:[email protected]
致 謝
Apache Doris(incubating) 1.0 Release 版本的釋出離不開所有社群使用者的支援,在此向所有參與版本設計、開發、測試、討論的社群貢獻者們表示感謝。
他們分別是:
@924060929
@adonis0147
@Aiden-Dong
@aihai
@airborne12
@Alibaba-HZY
@amosbird
@arthuryangcs
@awakeljw
@bingzxy
@BiteTheDDDDt
@blackstar-baba
@caiconghui
@CalvinKirs
@cambyzju
@caoliang-web
@ccoffline
@chaplinthink
@chovy-3012
@ChPi
@DarvenDuan
@dataalive
@dataroaring
@dh-cloud
@dohongdayi
@dongweizhao
@drgnchan
@e0c9
@EmmyMiao87
@englefly
@eyesmoons
@freemandealer
@Gabriel39
@gaodayue
@GoGoWen
@Gongruixiao
@gwdgithubnom
@HappenLee
@Henry2SS
@hf200012
@htyoung
@jacktengg
@jackwener
@JNSimba
@Keysluomo
@kezhenxu94
@killxdcj
@lihuigang
@littleeleventhwolf
@liutang123
@liuzhuang2017
@lonre
@lovingfeel
@luozenglin
@luzhijing
@MeiontheTop
@mh-boy
@morningman
@mrhhsg
@Myasuka
@nimuyuhan
@obobj
@pengxiangyu
@qidaye
@qzsee
@renzhimin7
@Royce33
@SleepyBear96
@smallhibiscus
@sodamnsure
@spaces-X
@sparklezzz
@stalary
@steadyBoy
@tarepanda1024
@THUMarkLau
@tianhui5
@tinkerrrr
@ucasfl
@Userwhite
@vinson0526
@wangbo
@wangshuo128
@wangyf0555
@weajun
@weizuo93
@whutpencil
@WindyGao
@wunan1210
@xiaokang
@xiaokangguo
@xiedeyantu
@xinghuayu007
@xingtanzjr
@xinyiZzz
@xtr1993
@xu20160924
@xuliuzhe
@xuzifu666
@xy720
@yangzhg
@yiguolei
@yinzhijian
@yjant
@zbtzbtzbt
@zenoyang
@zh0122
@zhangstar333
@zhannngchen
@zhengshengjun
@zhengshiJ
@ZhikaiZuo
@ztgoto
@zuochunwei
相關連結:
Apache Doris官方網站:
http://doris.incubator.apache.org
Apache Doris Github:
https://github.com/apache/incubator-doris
Apache Doris 開發者郵件組: