mysqlsql varchar类型只取前四个_Apache Doris0.12.0 发布,进入 Apache 孵化器后第四个正式版本...
Apache Doris(Incubating) 0.12.0 已經發布了,這是 Doris 進入 Apache 孵化器后第四個正式版本。
此版本帶來的新功能包括:
全新的存儲格式SegmentV2
此版本對底層的數據文件格式進行了完全重構。原有的存儲格式是類似orcfile的列存格式,存在諸多的設計問題,如按字節流的讀取方式效率低下、大量隨機讀問題、不支持字典壓縮、不支持數據塊的緩存、結構不清晰難以擴展等。
新的SegmentV2存儲格式參考了Parquet的設計思路,引入了基于Page的最小數據存儲單元,并將數據文件劃分為數據區、索引區和元數據區三個部分。針對不同的列類型、索引格式實現了不同的Page編碼方式,顯著提升了數據的讀寫效率,并增強了數據格式的可擴展性。
在SegmentV2的基礎上,0.12版本實現了如下重要功能:
· 字典壓縮編碼
原有的存儲格式中,字符串類型都是采用Plain Text的格式進行存儲的,這種樸素的方式在某些低基數字符串列的場景下,會極大地浪費存儲空間。
SegmentV2通過Dictionary Page,實現了字典壓縮編碼,在不同基數的情況下可以節省數倍的存儲空間。
· 基于Bitmap的二級索引
之前版本的Doris只支持基于BloomFilter的二級索引,只能過濾block級別的數據,并且在某些低基數列上的效果欠佳。在0.12版本中,支持了基于Bitmap的倒排索引,可以在任意Key列上創建。通過倒排索引,可以更精準地進行數據查詢和檢索。測試中,通過倒排索引,可以提升數倍的查詢性能。
· Page Cache和內存表
Page是SegmentV2格式中,最小的數據單元,一個Page會被完整的解壓并讀取到內存中。Page一旦生成,是不可變更的,根據這個特性,此版本增加了Page Cache功能,通過在內存中緩存解壓后的Page數據,可以避免大量的重復IO,降低磁盤IO。
同時基于Page Cache功能,也提供了一種內存表的實現方式。用戶可以在建表時指定表的屬性“in_memory”=“ true”,則系統會盡可能的保證該表的數據Page保留在Page Cache中,從而提升數據的訪問效率。
· 延遲物化
全新的存儲格式提供了更清晰的數據讀取邏輯,使得Doris能夠支持延遲物化這種更高效的數據讀取能力。延遲物化的含義,舉例來說,當用戶需要讀取A、B、C三列的數據,并且在A列上有過濾條件時,系統會先讀取A列并進行過濾,根據過濾后的行號再去讀取B、C兩列,這樣可以顯著減少B、C兩列的讀取數據量。根據測試,在某些場景下,延遲物化功能可以帶來幾十倍的性能提升。
Spark on Doris
此版本實現了Spark Doris Connector,用戶可以直接通過Spark對Doris中存儲的數據進行查詢。從Doris的角度看,將其數據引入Spark,可以使用Spark一系列豐富的生態產品,擴寬了Doris的想象力,也使得Doris和其他數據源的聯合查詢成為可能。
明細模型上的物化視圖功能
在之前的版本中,Doris僅支持在聚合模型(Aggregate Key)上創建上卷表(Rollup),而如果用戶創建的是明細模型(Duplicate Key)表,則無法使用該功能。在新版本中,Doris支持了在明細模型上創建物化視圖的功能。該功能使得用戶可以更加靈活地進行數據建模。
當前該功能僅支持SUM、MIN、MAX三種上卷聚合方式,更多的聚合方式如HLL、BITMAP_UNION、AVG、COUNT等將在后續的3位版本迭代中陸續推出。
支持ORC格式數據的導入
在0.11版本中支持了Parquet文件格式,而在0.12版本中,進一步支持了ORC格式的數據文件的導入,進一步降低了用戶的使用門檻,可以更加方便地從不同數據源中導入數據。
動態分區
在之前的版本中,數據表的分區(Partition)需要手動創建。對于一些例行任務場景,用戶需要維護額外的腳本或服務來定期地增加新的分區或刪除舊的分區。在新版本中,支持了動態分區的定義和創建,分區可以按照定義定期地進行創建和刪除,用戶無需再擔心因分區未及時創建而導致數據無法導入的問題了。
差集、交集、Grouping Set
0.12版本支持了更豐富的SQL語法和算子。其中差集(Expect)和交集(Intersect)算子避免了用戶通過改寫Join來獲取想要的結果,同時也帶來了查詢性能的提升。
Grouping Set功能能夠讓用戶更便捷地通過簡單的SQL語法獲取不同緯度的聚合查詢結果,進一步降低了SQL的復雜度。
更多增強特性
除了以上主要功能更新外,0.12版本也做了諸多性能和功能方面的改進。
· 插件框架和審計日志插件
0.12版本分別實現了FE端和BE端的插件框架。該框架支持用戶對一些功能組件進行定制化的開發和安裝。目前該功能還處于實驗階段。系統提供了一個FE端的審計日志插件供使用,通過該插件,用戶可以直接通過Doris的查詢能力來分析Doris系統內的查詢請求情況。
· 顯著提升了Doris On Elasticsearch的性能
通過更精細的謂詞下推、以及API接口的改進,顯著提升了Doris On ES性能。
· Bitmap聚合方式支持64位整型
Bitmap聚合方式從支持32位整型擴展到了64位,使得可以在更多場景實現快速精確去重能力。
· 更多的列類型轉換
支持Float轉Double,Date和Datetime的互轉、Integer轉Date/Datetime,以及Varchar轉換為整型、浮點和日期類型等。通過更豐富的列類型轉換,使得用戶能夠更靈活地應對業務場景的變更。
· 基于NIO模型的MySQL協議連接層
通過XNIO框架(https://xnio.jboss.org/),Doris的連接層現在可以支持百萬量級的連接請求。新的連接層框架可以在高并發場景降低Doris在連接協議上的開銷和負載。
該功能可以通過添加FE的配置項:mysql_service_nio_enabled=true開啟。
此外官方還透露,下一版本將支持更好的物化視圖功能、Spark導入功能,并且對查詢引擎性能做進一步地優化。
總結
以上是生活随笔為你收集整理的mysqlsql varchar类型只取前四个_Apache Doris0.12.0 发布,进入 Apache 孵化器后第四个正式版本...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 输出字符串编码_Pytho
- 下一篇: 客服机器人源码_快速搭建对话机器人,就用