---
title: Databend 开源周报第 140 期
description: 'Databend 目前正在推进存储过程和 SQL 脚本的相关支持。此外，推荐阅读我们最新的英文博客，介绍了如何实现高性能的分布式分组聚合。'
slug: category-weekly/databend-weekly-140
date: 2024-04-15
tags: [weekly]
category: Weekly
cover_url: 'weekly/weekly-140.jpg'
image: 'weekly/weekly-140.jpg'
contributors:
  - name: andylokandy
  - name: ariesdevil
  - name: BohuTANG
  - name: Dousir9
  - name: dqhl76
  - name: drmingdrmer
  - name: everpcpc
  - name: flaneur2020
  - name: hantmac
  - name: kkk25641463
  - name: PsiACE
  - name: soyeric128
  - name: sundy-li
  - name: TCeason
  - name: TracyZYJ
  - name: Xuanwo
  - name: xudong963
  - name: youngsofun
  - name: zhang2014
authors:
  - DatabendLabs
---

> 英文版移步：https://www.databend.com/blog/2024-04-15-databend-weekly
>
> [Databend](https://github.com/databendlabs/databend) 是一款现代云数仓。专为弹性和高效设计，为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务：[https://app.databend.cn](https://app.databend.cn) 。

## What's On In Databend

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

### 支持 EXECUTE IMMEDIATE

Databend 现已支持 EXECUTE IMMEDIATE 命令，此命令允许用户在单个语句中执行复杂的 SQL 逻辑，提供更为灵活的 SQL 处理能力。

{/* truncate */}

示例如下：

```sql
EXECUTE IMMEDIATE $$
BEGIN
    LET x := 1;
    LET y := x + 1;
    LET z RESULTSET := SELECT :y + 1;
    RETURN TABLE(z);
END;
$$;
----
┌───────┐
│ 2 + 1 │
│ UInt8 │
├───────┤
│     3 │
└───────┘
```

此特性使 Databend 能够更好地支持复杂的数据处理场景。并进一步推进了我们在支持存储过程和 SQL 脚本方面的工作。也欢迎感兴趣的小伙伴一起参与相关功能的开发迭代。

如果您想了解更多信息，欢迎联系 [Databend 团队](https://databend.cn/contact-us/)，或查看下面列出的资源。

- [PR #15144 | feat: add EXECUTE IMMEDIATE statement ](https://github.com/databendlabs/databend/pull/15144)
- [Issue #14904 | Feature: Stored procedure and SQL Scripting](https://github.com/databendlabs/databend/issues/14904)

## Code Corner

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

### 技术：Towards Efficient Distributed Group Aggregation

在大规模数据分析（OLAP）中，分组聚合（Group Aggregation）是一项广泛应用的技术。与常规的 SELECT 查询不同，分组聚合会对数据集按照组划分并对组数据进行聚合，从而改变结果基数。

受到 DuckDB 博客的启发，Databend 开发了一种新型的聚合哈希表来优化分组聚合的处理效率。此外，为了更好地适应分布式场景，Databend 也设计并实现了一系列针对分布式的优化。

![Alt text](../static/img/blog/towards-efficient-distributed-group-aggregation/workflow.PNG)

[Blog | Towards Efficient Distributed Group Aggregation](https://www.databend.com/blog/2024-04-12-towards-efficient-distributed-group-aggregation.md/)

## Highlights

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

- 支持 `ST_GEOMPOINTFROMGEOHASH` 和 `ST_MAKEPOLYGON` 地理信息函数。
- 支持变更表注释。
- 为时间旅行支持偏移量。
- 阅读文档 [Docs | Full-Text Index](https://docs.databend.cn/guides/performance/fulltext-index) 了解 Databend 全文索引能力。

## What's Up Next

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

### 在查询日志中增加查询摘要

查询摘要是对查询的总结，如果两个查询的摘要相同，这意味着它们共享相同的模式。例如，以下两个查询摘要是相同的：

```sql
SELECT id FROM t1 WHERE name = 'a';
SELECT id FROM t1 WHERE name = 'b';
```

通过检查各自的查询摘要，可以确定哪种查询模式耗时更多，有助于优化数据库性能和资源利用。

[Issue #15164 | feat: add query digest to query_log](https://github.com/databendlabs/databend/issues/15164)

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

## Changelog

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

地址：https://github.com/databendlabs/databend/releases
