Databend 开源周报第 151 期
Databend LabsJul 1, 2024
Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。
What's On In Databend
探索 Databend 本周新进展,遇到更贴近你心意的 Databend。
支持递归调用 UDFs
Databend 现在已经支持递归调用用户定义函数,使其能够适用于处理可以被分解为多个相似子问题的任务,进一步扩展了其应用场景和功能复杂性。
示例如下:
> CREATE FUNCTION gcd (INT, INT) RETURNS BIGINT LANGUAGE javascript HANDLER = 'gcd_js' AS $$
export function gcd_js(a, b) {
while (b != 0) {
let t = b;
b = a % b;
a = t;
}
return a;
}
$$
> select number, gcd(number * 3, number * 6), gcd(3, gcd(number * 3, number * 6))
from numbers(5)
where number > 0
order by 1;
如果您想了解更多信息,欢迎联系 Databend 团队,或查看下面列出的资源。
Beyond the Code
一起来探索 Databend 社区和周边生态中的新鲜事。
Databend 全新官网上线
Databend 的官方中英文网站在近日迎来全面更新,采用全新的设计语言与风格,帮助您更好了解如何使用 Databend 支持您的业务。
Highlights
以下是一些值得注意的事件,也许您可以找到感兴趣的内容。
- 支持将元数据服务的状态机持久化到磁盘。
- databend-common-ast 现已发布到 crates.io 。
- MERGE INTO 语句支持行获取(row fetch),大幅减少需要处理的数据量。
What's Up Next
我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。
优化败者树
普遍认为败者树比堆快两倍,我们计划引入败者树改善多路归并排序。但在 PR 15869 的尝试中,需要获取 top2 导致败者树在每次迭代过程中会被访问两次。而标准库的堆经过深度优化,导致目前败者树的性能看上去不太理想。
我们希望优化败者树实现或者使用某种变体来改善这种情况。
Issue #15925 | Feature: Optimize loser tree
如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运!
Changelog
前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。
地址:https://github.com/datafuselabs/databend/releases
订阅我们的新闻简报
及时了解功能发布、产品规划、支持服务和云服务的最新信息!