Databend 開源周報 #67

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

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

New Features

toolchain

  • Rust 工具鏈升級至 1.67 nightly (#8631)

multiple catalog

  • 支持多目錄創(chuàng)建 (#8620)

compact

  • 為數據載入優(yōu)化壓縮 (#8644)

planner

  • 優(yōu)化 left/single join (#8583)

query

  • 支持從 xml 格式文件加載數據 (#8404)
  • 增加關于字符集的設置 "collation" (#8610)
  • 按最后修改時間復制文件 (#8628)
  • 改進 sort ,10%~50% 的性能提升 (#8452)

new expression

  • 實現一系列 to_xxx() 強制轉換函數 (#8599)

  • 新增 inlist 表達式 (#8676)

Code Refactor

format

  • 使用 FieldEncoders 重構輸出格式 (#8700)

planner

  • 將 plan 從 query/planner 移動到 sql/planner (#8660)

query

  • 移除 sqlparser-rs (#8670)
  • 將 list file 移動到 read_partitions (#8673)

storage

  • 移動和重新歸類 storages 下面的模塊 (#8613, #8621, #8627, etc.)
  • 改進 "compact segment",嚴格保持攝入順序 (#8590)

new expression

  • 遷移反序列化相關內容 (#8637)

  • 使用 "to_xxx()" 來評估 "CAST(xxx AS xxx)" (#8641)

Infra Changes

  • rust-toolchain nightly 1.67.0 (nightly-2022-11-07) (#8641)

Bug Fix

compatibility

  • 修復使用 Trino Mysql connector 遇到的一些問題 (#8668)

meta

  • 提交事務后發(fā)出 kv 變更事件 (#8674)

query

  • 修復未正確處理 union 的問題 (#8638)

  • 修復無法自動確定 max_threads 的問題 (#8707)

News

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

支持從 XML 文件載入數據

在 #8404 合并后,Databend 現在支持從 XML 格式文件載入數據。

與使用其他格式文件類似,在 SQL 語句中唯一需要特別關注的是指定 "format" 選項為 "XML" 。下面給出一個使用 streaming load API 的例子。

curl -sH "insert_sql:insert into test_xml format XML" \
-F "upload=@/tmp/simple_v1.xml" \
-u root: -XPUT "http://localhost:${QUERY_HTTP_HANDLER_PORT}/v1/streaming_load"

載入的 XML 文件需要遵循以下一種或多種格式規(guī)范:

  • 列名作為屬性,列值作為屬性值:
<row column1="value1" column2="value2" .../>

  • 列名作為標簽,列值作為標簽的內容:
<row>
  <column1>value1</column1>
  <column2>value2</column2>
</row>

  • 列名是標簽的 name 屬性,值是這些標簽的內容:
<row>
  <field name='column1'>value1</field>
  <field name='column2'>value2</field>
</row>

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

  • PR | support copy from xml

新增字符集校驗相關支持

在 #8610 合并后,Databend 現在支持設定 "collation" 來選擇字符串的編碼。

默認情況下,"collation" 被設為 "'binary'",因為 Databend 默認會使用 binary 格式存儲字符串列,你可以使用下述語句將 "collation" 變?yōu)?"'utf-8'" :

set collation = 'utf8';

這可能有助于在處理非英文字符串時得到預期結果:

statement query TI
select substr('城區(qū)主城區(qū)其他', 1, 6), length('我愛中國');

----
城區(qū)        12


statement ok
set collation = 'utf8';


statement query TI
select substr('城區(qū)主城區(qū)其他', 1, 6), length('我愛中國');

----
城區(qū)主城區(qū)其        4

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

  • PR | add collation

Issues

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

為 IN 算符啟用 Xor Filter Index

Databend 引入 Xor Fliter 來替代 Bloom Filter (#7870) ,在某些特定場景下帶來兩倍性能提升并大幅減少掃描數據量。

最開始,我們只是為字符串列添加這一索引。然后在 #7958 ,又為整數列啟用這一功能。

現在,Databend 計劃為 "IN" 啟用 Xor Filter Index 。

SELECT * FROM t1 where xx IN ('', '')

Issue 8625: performance: enable xor filter index for IN

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

Changlogs

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

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

Contributors

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

image.png

Meet Us

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

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容