Databend 開源周報 #66

Databend 是一款強大的云數(shù)倉。專為彈性和高效設計,自由且開源。

即刻體驗云服務:https://app.databend.com

New Features

RFC

  • User Stage (#8519)

user stage

  • 新增對 internal 和 legacy internal stage 的支持 (#8526)
  • 實現(xiàn) user stage 支持并添加 stateful tests (#8556)

multiple catalog

  • 實現(xiàn) multiple catalog 相關(guān)的 AST (#8608)

hive

  • hive 預測下推 (#8469)
  • 使 substr 以及帶空值的 order by 與 hive 函數(shù)兼容 (#8558)

rbac

  • "SHOW ROLES" 語句只顯示可用的用戶 (#8553)

compatibility

  • 支持使用 mydumper 轉(zhuǎn)儲數(shù)據(jù) (#8500)

auth

  • 新增 auth 模塊并支持 sharing endpoint 使用文件令牌(token)(#8607)

format

  • 允許 TSV 中存在嵌套字段 (#8606)
  • 統(tǒng)一 format 相關(guān)的設置和選項 (#8566)

hashtable

  • 字符串自適應哈希表 (#7971)

meta

  • 自動清理過期的 key (#8539)
  • 添加對新的 key-space: Expire 的支持 (#8578)

query

  • 為 databend-query 優(yōu)化 logging 格式 (#8466)

Code Refactor

error handler

  • 新增 internal error 類別并將其他不需要的錯誤進行合并 (#8581)

interpreter

  • 將 "interpreter_common.rs" 拆分 (#8593)

query

  • 移除遺留的代碼 (#8412)
  • 避免額外的 memcpy (#8569)
  • 將序列化合并到新表達式模塊中 (#8582)

storage

  • 使 "BlockMeta" 易于克隆 (#8548)

new expression

  • timestamp 轉(zhuǎn)換為 variant string 而不是 variant int (#8580)

Bug Fix

compatibility

  • 兼容 mysqldump 5.7.16 "/*!code" 查詢 (#8485)

planner

  • 修復「select view 時出現(xiàn) column not exists 報錯」的問題 (#8543)

query

  • nullable(Int) 與空值相除不應當報錯 (#8495)
  • 修復「設置 "AUTH ROLE" 之后 "CURRENT ROLE" 的行為異?!沟膯栴} (#8546)

storage

  • 為 compact 添加 limit 支持 (#8473)

  • 修復「在減少 BlockMeta 時,索引大小不正確」的問題 (#8428)

News

Datafuse Labs / Databend 本周新動態(tài)!

字符串自適應哈希表

String Adaptive Hash Table 是 Databend 社區(qū)在「2022 開源軟件供應鏈點亮計劃」的項目之一。@usamoi 幫助我們完成了這一重要的工作,現(xiàn)在代碼已經(jīng)合并到 Databend 代碼庫中并且?guī)硖囟▓鼍跋?20% - 50% 的性能提升。

String Adaptive Hash Table 是專為字符串類型的 key 所設計的哈希表,根據(jù) key 的不同長度來匹配不同的數(shù)據(jù)結(jié)構(gòu),達到優(yōu)化插入和讀取的效果。

閱讀下面列出的材料以了解更多訊息

  • PR | adaptive string hash table
  • Paper | SAHA: A String Adaptive Hash Table for Analytical Databases
  • GitHub - usamoi/saha

RFC: User Stage

Databend 僅支持 named internal stage:

 CREATE STAGE @my_stage;
COPY INTO my_table FROM @my_stage;

然而, named internal stage 在一些場景下使用會相對復雜。特別是對于只希望使用 stage 加載數(shù)據(jù)的用戶而言。通過支持 user stage ,這部分用戶就可以更高效地復制數(shù)據(jù):

 COPY INTO my_table from @~;

閱讀下面列出的材料以了解更多訊息

  • RFC: User Stage

  • Tracking issues of RFC: User Stage

Issues

遇到你可能會感興趣的問題,歡迎試著解決它。

使用 DashMap 替換 "RwLock<HashMap>" 和 "Mutex<HashMap>"

DashMap 是 Rust 中的并發(fā)關(guān)聯(lián)數(shù)組 / 哈希表實現(xiàn),它致力于提供簡單易用的 API 并成為 "RwLock<HashMap<K, V>>" 的一種直接替代品。

使用 DashMap 可能會帶來兩個優(yōu)點:

  • 更簡潔的代碼

  • 潛在的性能提高

Issue 8601: Feature: replace RwLock and Mutex by using DashMap

如果你對這個主題感興趣,可以嘗試解決其中的部分問題或者參與討論和 PR review ?;蛘撸憧梢渣c擊 https://link.databend.rs/i-m-feeling-lucky 來挑選一個隨機問題,祝好運!

Changlogs

前往查看 Databend 每日構(gòu)建的變更日志,以了解開發(fā)的最新動態(tài)。

地址:https://github.com/datafuselabs/databend/releases

Contributors

非常感謝貢獻者們在本周的卓越工作。

image.png

Meet Us

Databend 是一款開源、彈性、低成本,基于對象存儲也可以做實時分析的新式數(shù)倉。期待您的關(guān)注,一起探索云原生數(shù)倉解決方案,打造新一代開源 Data Cloud。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容