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)。


如果你想要了解更多信息,請(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 - BITMAP 和 Docs | 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>
