Databend 開(kāi)源周報(bào)第 96 期

Databend 是一款現(xiàn)代云數(shù)倉(cāng)。專為彈性和高效設(shè)計(jì),為您的大規(guī)模分析需求保駕護(hù)航。自由且開(kāi)源。即刻體驗(yàn)云服務(wù):https://app.databend.cn 。

What's On In Databend

探索 Databend 本周新進(jìn)展,遇到更貼近你心意的 Databend 。

虛擬列

查詢 JSON 內(nèi)部字段的優(yōu)化方法之一是使用虛擬列。

首先,使用 CREATE VIRTUAL COLUMN 為這些字段創(chuàng)建虛擬列。創(chuàng)建虛擬列后,可以使用 GENERATE VIRTUAL COLUMN 函數(shù)生成虛擬列。完成這些步驟后,就可以通過(guò)相應(yīng)的虛擬列直接訪問(wèn) JSON 內(nèi)部字段中的數(shù)據(jù)。

Databend 現(xiàn)在支持用于創(chuàng)建、刪除、生成和修改虛擬列的一系列 SQL 語(yǔ)法。下面是一個(gè)簡(jiǎn)單的例子:

create table test (id int, val json);
insert into test values(1, '{"a":33,"b":44}'),(2, '{"a":55,"b":66}');
create virtual columns (val['a'], val['b']) for test;
generate virtual columns for test;
select val['a'], val['b'] from test;
+----------+----------+
| val['a'] | val['b'] |
+----------+----------+
| 33       | 44       |
| 55       | 66       |
+----------+----------+

如果你想要了解更多信息,請(qǐng)查看下面列出的資源。

Code Corner

一起來(lái)探索 Databend 和周邊生態(tài)中的代碼片段或項(xiàng)目。

由 AskBend 驅(qū)動(dòng)的交互式文檔

你還記得 AskBend 嗎?AskBend 是使用 Rust 編寫(xiě)的知識(shí)庫(kù)問(wèn)答系統(tǒng),由 Databend 和 OpenAI 強(qiáng)力驅(qū)動(dòng),可以根據(jù) Markdown 文件創(chuàng)建基于 SQL 的知識(shí)庫(kù)。

現(xiàn)在,我們已經(jīng)將其集成到 Databend 官方網(wǎng)站中,為文檔查詢提供了交互式體驗(yàn)。


0.png

1.png

如果你想要了解更多信息,請(qǐng)查看下面列出的資源。

亮點(diǎn)

以下是一些值得注意的事件,也許您可以找到感興趣的內(nèi)容。

  • 為窗口函數(shù)實(shí)現(xiàn)表達(dá)式支持。
  • 為 SELECT list 支持 range 函數(shù)和別名。
  • 新增基于標(biāo)簽的插入/突變/更新去重支持。
  • COPY INTO 添加優(yōu)化提示支持。
  • 閱讀 Docs | Deploying a Databend Cluster ,以了解手動(dòng)部署 Databend 集群時(shí)的技巧。
  • 閱讀 Docs | Data Types - BITMAPDocs | Bitmap Functions ,以理解 Databend 中 BITMAP 數(shù)據(jù)類型的用法。

What's Up Next

我們始終對(duì)前沿技術(shù)和創(chuàng)新理念持開(kāi)放態(tài)度,歡迎您加入社區(qū),為 Databend 注入活力。

使用敗者樹(shù)優(yōu)化排序算法

目前,Databend 的排序算法使用基于堆的歸并排序。

多路合并有三種主要算法:堆排序、勝者樹(shù)和敗者樹(shù)。在這三個(gè)算法中,每次對(duì)堆進(jìn)行調(diào)整都需要與左右子節(jié)點(diǎn)進(jìn)行比較。比較次數(shù)為2logN,而勝者樹(shù)和敗者樹(shù)調(diào)整的比較次數(shù)為 logN 。

它們之間的區(qū)別在于,勝者樹(shù)需要與兄弟節(jié)點(diǎn)進(jìn)行比較并更新父節(jié)點(diǎn),而敗者樹(shù)只需要與父節(jié)點(diǎn)進(jìn)行比較,從而減少了內(nèi)存訪問(wèn)次數(shù)。

Issue #11604 | Feature: Update sort algorithm using Loser Tree

如果你對(duì)這個(gè)主題感興趣,可以嘗試解決其中的部分問(wèn)題或者參與討論和 PR review 。或者,你可以點(diǎn)擊 https://link.databend.rs/i-m-feeling-lucky 來(lái)挑選一個(gè)隨機(jī)問(wèn)題,祝好運(yùn)!

Changelog

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

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

Contributors

非常感謝貢獻(xiàn)者們?cè)诒局艿淖吭焦ぷ鳌?/p>

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

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

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