Databend 开源周报第 96 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。

What's On In Databend

探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。

虚拟列

查询 JSON 内部字段的优化方法之一是使用虚拟列。

首先,使用 CREATE VIRTUAL COLUMN 为这些字段创建虚拟列。创建虚拟列后,可以使用 GENERATE VIRTUAL COLUMN 函数生成虚拟列。完成这些步骤后,就可以通过相应的虚拟列直接访问 JSON 内部字段中的数据。

Databend 现在支持用于创建、删除、生成和修改虚拟列的一系列 SQL 语法。下面是一个简单的例子:

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       |
+----------+----------+

如果你想要了解更多信息,请查看下面列出的资源。

  • RFC | JSON Optimization - Virtual Column
  • PR | feat(query): Support generate virtual columns

Code Corner

一起来探索 Databend 和周边生态中的代码片段或项目。

由 AskBend 驱动的交互式文档

你还记得 AskBend 吗?AskBend 是使用 Rust 编写的知识库问答系统,由 Databend 和 OpenAI 强力驱动,可以根据 Markdown 文件创建基于 SQL 的知识库。

现在,我们已经将其集成到 Databend 官方网站中,为文档查询提供了交互式体验。

Databend 开源周报第 96 期_第1张图片

Databend 开源周报第 96 期_第2张图片

如果你想要了解更多信息,请查看下面列出的资源。

  • https://databend.rs
  • PR | feat(front search): Add AI searching

亮点

以下是一些值得注意的事件,也许您可以找到感兴趣的内容。

  • 为窗口函数实现表达式支持。
  • 为 SELECT list 支持 range 函数和别名。
  • 新增基于标签的插入/突变/更新去重支持。
  • 为 COPY INTO 添加优化提示支持。
  • 阅读 Docs | Deploying a Databend Cluster ,以了解手动部署 Databend 集群时的技巧。
  • 阅读 Docs | Data Types - BITMAP 和 Docs | Bitmap Functions ,以理解 Databend 中 BITMAP 数据类型的用法。

What's Up Next

我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。

使用败者树优化排序算法

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

多路合并有三种主要算法:堆排序、胜者树和败者树。在这三个算法中,每次对堆进行调整都需要与左右子节点进行比较。比较次数为2logN,而胜者树和败者树调整的比较次数为 logN 。

它们之间的区别在于,胜者树需要与兄弟节点进行比较并更新父节点,而败者树只需要与父节点进行比较,从而减少了内存访问次数。

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

如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运!

Changelog

前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。

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

Contributors

非常感谢贡献者们在本周的卓越工作。

Databend 开源周报第 96 期_第3张图片

Connect With Us

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

  • Databend Website
  • GitHub Discussions
  • Twitter
  • Slack Channel

你可能感兴趣的:(数据库)