---
title: Databend 开源周报第 98 期
description: 本周新增对后台服务的支持，本期的编程角介绍了 IceLake 项目及其愿景。
slug: category-weekly/databend-weekly-98
date: 2023-06-19
tags: [weekly]
category: Weekly

image: databend-weekly.png
contributors:
  - name: akoshchiy
  - name: andylokandy
  - name: b41sh
  - name: dantengsky
  - name: Dousir9
  - name: drmingdrmer
  - name: everpcpc
  - name: JackTan25
  - name: jonahgao
  - name: leiysky
  - name: PsiACE
  - name: RinChanNOWWW
  - name: soyeric128
  - name: sundy-li
  - name: TCeason
  - name: Xuanwo
  - name: youngsofun
  - name: zhang2014
  - name: ZhiHanZ
  - name: zhyass
authors:
  - DatabendLabs
---

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

## What's On In Databend

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

### 后台服务

Databend 的内置存储引擎 `FuseTable` 是一种与 Apache Iceberg 类似的日志结构表，需要定期执行表压缩、重聚类和清理以合并小数据块。小数据块合并的过程会涉及按聚类键排序数据或清理不需要的分支等阶段。

先前的实现需要使用不同的驱动，增加了基础设施的复杂性。而且必须部署和维护其他服务来触发驱动事件。为简化这一过程，我们实现了一个后台服务，允许 Databend 执行后台单次作业或以守护进程模式运行 cron 作业。这些作业可以根据条件触发自动压缩/清理/重聚类等表维护任务，而无需其他服务介入。

此实现包括：

1. 完整的 metasrv 模式定义，以及后台作业与后台任务的设计实现。
2. 用于在元服务上更新和维护后台作业与后台任务状态的 API。
3. 支持 `one_shot`、`interval`、`cron` 等不同作业类型的作业调度器实现。

**后台服务** 需要升级至 **企业版** 。如需了解升级信息，请联系 [Databend 团队](https://www.databend.cn/contact-us) 。

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

- [PR | feat: implement Background service for databend](https://github.com/databendlabs/databend/pull/11751)

{/* truncate */}

## Code Corner

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

### IceLake - Iceberg 的纯 Rust 实现

[Iceberg](https://iceberg.apache.org/) 是为分析数据集设计的开放表格式标准。然而，目前 Rust 生态中缺乏成熟的 Iceberg 绑定，使其难以与像 Databend 这样的数据库系统集成。

IceLake 旨在填补这一空白，其致力于建立一个开放生态系统：

- 用户可以从 **任何** 存储服务（如 s3、gcs、azblob、hdfs 等）读写 Iceberg 表。
- **任何** 数据库都可以集成 `icelake`，以支持读写 Iceberg 表。
- 提供原生的 `arrow` 格式互转换的能力。
- 提供多种语言绑定，使其他语言可以享有 Rust 核心带来的 Iceberg 生态支持。

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

- [GitHub - icelake-io/icelake](https://github.com/icelake-io/icelake/)
- [PR | feat: Integrate with icelake for iceberg support](https://github.com/databendlabs/databend/pull/11785)

## Highlights

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

- 新增对 MERGE JOIN 的支持。
- 为 CSV 格式实现列位置支持。
- 阅读 _[Docs | Computed Columns](https://docs.databend.cn/sql/sql-commands/ddl/table/ddl-create-table#computed-columns)_ 以了解如何使用计算列，以及在选择使用何种类型计算列时的一些考量。
- 阅读 _[Docs | Subquery-Based Deletions](https://docs.databend.cn/sql/sql-commands/dml/dml-delete-from)_ 以理解如何使用子查询和比较运算实现删除。

## What's Up Next

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

### 为`COPY INTO` 支持 `VALIDATION_MODE`

我们希望为 Databend 的 `COPY INTO` 语句支持 `VALIDATION_MODE` ，以验证需要载入的数据，并根据验证选项返回结果。

- `RETURN_ERRORS`: 此模式验证数据并返回所有错误。
- `RETURN_<number>_ROWS`: 此模式验证 `<number>` 行数据。如果没有错误，就返回数据载入后应当产生的信息。否则，报告对应的错误信息。

[Issue #11582 | Feature: copy support VALIDATION_MODE](https://github.com/databendlabs/databend/issues/11582)

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

## New Contributors

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

- [@jonahgao](https://github.com/jonahgao) 修复逻辑测试中 MySQLClient 的列类型，[#11718](https://github.com/databendlabs/databend/pull/11718) 。
- [@akoshchiy](https://github.com/akoshchiy) 更新 `MACOSX_DEPLOYMENT_TARGET` 值以满足 `z3-sys` 的需要，[#11783](https://github.com/databendlabs/databend/pull/11783) 。

## Changelog

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

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