---
title: Databend 开源周报第 149 期
description: '本周 Databend 支持递归公共表表达式，并开始计划从 icelake 迁移到 iceberg-rust。'
slug: category-weekly/databend-weekly-149
date: 2024-06-17
tags: [weekly]
category: Weekly
cover_url: 'weekly/weekly-149.png'
image: 'weekly/weekly-149.png'
contributors:
  - name: dqhl76
  - name: drmingdrmer
  - name: everpcpc
  - name: l1ch40
  - name: lichuang
  - name: shamb0
  - name: soyeric128
  - name: TCeason
  - name: Xuanwo
  - name: xudong963
  - name: youngsofun
  - name: zhang2014
  - name: zhyass
authors:
  - DatabendLabs
---

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

## What's On In Databend

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

{/* truncate */}

### 支持递归公共表表达式

Databend 现已支持递归公共表表达式（Recursive CTE）。递归公共表表达式，允许用户以递归的方式来执行查询，有助于增强对分层数据和层次结构的查询和处理。

语法如下：

```sql
WITH RECURSIVE <cte_name> AS (
    <initial_query>
    UNION ALL
    <recursive_query> )
SELECT ...
```

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

- [PR #15675 | feat: support recursive cte](https://github.com/databendlabs/databend/pull/15675)

## Beyond the Code

一起来探索 Databend 社区和周边生态中的新鲜事。

### Databend 正在计划从 icelake 迁移到 iceberg-rust

过去 Databend 团队启动了 [icelake](https://github.com/icelake-io/icelake) 项目，以支持与 Apache Iceberg 生态的集成。icelake 的维护者们成功推动了上游 [iceberg-rust](https://github.com/apache/iceberg-rust) 的发展。

iceberg-rust 即将发布 0.3 版本，它将会涵盖 Databend 迄今为止所需的所有功能。现在是时候从 icelake 迁移到 iceberg-rust。我们也将继续跟进上游的工作，并持续参与到社区生态的建设之中。

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

[Issue #15809 | Tracking Issues of Migrating from icelake to iceberg-rust](https://github.com/databendlabs/databend/issues/15809)

## Highlights

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

- 支持函数 `map_delete`、`try_to_timestmap(string, string)` 和 `try_to_date(string, string)`。
- 支持对 Datebend Meta 进行 I/O 延迟混沌测试。
- 支持动态启用 Rust backtrace。

## What's Up Next

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

### 支持递归调用外部用户定义函数

Databend 支持外部用户定义函数，为复杂的数据处理和分析提供了灵活、高效的解决方案。

但是目前还不支持递归调用外部 UDF，我们计划支持这一特性，以进一步提高 UDF 对各种场景的适应性。

```sql
select bendml_vector_cosine_similarity(
    bendml_embed_text_768('今天天气怎么样？'),
    bendml_embed_text_768('How is the weather today?')
);
```

[Issue #15806 | feat: update supports external udf](https://github.com/databendlabs/databend/issues/15806)

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

## New Contributors

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

- [@l1ch40](https://github.com/l1ch40) 更新了关于在 OSX 上配置工具链的文档，[Docs #849](https://github.com/databendlabs/databend-docs/pull/849/) 。

## Changelog

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

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