---
title: Databend 开源周报第 134 期
description: 'Databend 新增多语句事务支持，并计划引入对 PRQL 的支持。'
slug: category-weekly/databend-weekly-134
date: 2024-03-04
tags: [weekly]
category: Weekly
cover_url: 'weekly/weekly-134.jpg'
image: 'weekly/weekly-134.jpg'
contributors:
  - name: andylokandy
  - name: ariesdevil
  - name: b41sh
  - name: BohuTang
  - name: Chasen-Zhang
  - name: Dousir9
  - name: dqhl76
  - name: dracoooooo
  - name: drmingdrmer
  - name: everpcpc
  - name: JackTan25
  - name: leiysky
  - name: lichuang
  - name: PsiACE
  - name: SkyFan2002
  - name: soyeric128
  - name: sundy-li
  - name: wubx
  - name: Xuanwo
  - name: xudong963
  - name: youngsofun
  - name: zhang2014
  - name: zhyass
authors:
  - DatabendLabs
---

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

## What's On In Databend

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

### 支持多语句事务

Databend 现已支持提供基本的多语句事务支持。

多语句事务的用途包括：

- 在单个事务中对多个表执行 DML 变更。
- 根据中间计算分多个阶段对单个表执行变更。

{/* truncate */}

```sql
BEGIN;
INSERT INTO t_append_only VALUES(4), (5);
INSERT INTO t_consume_append_only_1 SELECT a FROM s_append_only;
INSERT INTO t_append_only VALUES(6), (7);
COMMIT;
```

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

- [PR #14562 | feat: support multi-statement transactions](https://github.com/databendlabs/databend/pull/14562)

## Code Corner

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

### crabml - 使用 Rust 重新实现 GGML

[crabml](https://github.com/crabml/crabml/) 是一个正在进行中的实验性项目，相当于是使用 Rust 重新实现 GGML。可以在廉价硬件上进行高效的推理。

由 Databend 团队成员 [flaneur2020](https://github.com/flaneur2020) 创建，目前已经支持推理 Q8_0 量化的 Llama 3B 模型。

## Highlights

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

- SQLsmith 支持生成 binary 和 geometry 类型的数据。
- hash join 与新的 filter 框架集成。
- `EXPLAIN` 支持详尽输出模式（`verbose`），可以提供更多关系属性信息和统计。
- 改进 analyze table，支持查询 fuse 表的增量块。

## What's Up Next

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

### 支持 PRQL 方言

PRQL 全称是 Pipelined Relational Query Language，读作 "Prequel"。PRQL 同样具备可读性和声明性特点；但与 SQL 不同的是，它支持变量和函数等抽象概念。

下面是一个 PRQL 示例：

```sql
from track_plays
filter plays > 10_000                # Readable numbers
filter (length | in 60..240)         # Ranges with `..`
filter recorded > @2008-01-01        # Simple date literals
filter released - recorded < 180days # Nice interval literals
sort {-length}                       # Concise order direction
```

PRQL 可以利用 `prqlc` 编译为可供 AST 解析的通用 SQL，Databend 计划利用这一点提供对 PRQL 的支持。

[Issue #14811 | Feature: prql dialect support](https://github.com/databendlabs/databend/issues/14811)

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

## New Contributors

一起认识社区中的新伙伴，Databend 因你们而变得更加美好。

- [@dracoooooo](https://github.com/dracoooooo) 实现了对 `DESC[RIBE] [TABLE] <name>` 语句的支持，[#14736](https://github.com/databendlabs/databend/pull/14736) 。

## Changelog

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

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