---
# System prepended metadata

title: img_v3_025j_02d44002-134e-4ce7
tags: [weekly]

---

---
title: Databend 开源周报第 123 期
description: 
slug:  databend-weekly-123
date: 2023-12-11
tags: [weekly]
cover_url: databend-weekly.svg
image: databend-weekly.png
contributors:
  - name: akoshchiy
  - name: andylokandy
  - name: b41sh
  - name: BohuTang
  - name: Chasen-Zhang
  - name: Dousir9
  - name: everpcpc
  - name: flaneur2020
  - name: guojidan
  - name: JackTan25
  - name: leiysky
  - name: lichuang
  - name: PsiACE
  - name: RinChanNOWWW
  - name: SkyFan2002
  - name: soyeric128
  - name: sundy-li
  - name: TCeason
  - name: Xuanwo
  - name: xudong963
  - name: youngsofun
  - name: zenus
  - name: zhang2014
  - name: zhyass
authors:
  - databendlabs
---

![img_v3_025j_02d44002-134e-4ce7-9980-2645ef88954g](https://hackmd.io/_uploads/H1dFagEU6.png)

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

## What's On In Databend

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

### 支持统计和显示合并状态

Databend 现在支持统计和显示 `MERGE INTO` 的状态，在执行合并之后，会返回受更新/删除/插入影响的行数：

```sql
🐳 :) create table t1(a int);
🐳 :) create table t2(b int);
🐳 :) insert into t1 values(1),(3);
🐳 :) insert into t2 values(1),(3),(4);
🐳 :) merge into t1 using t2 on t1.a = t2.a when matched and t2.a = 1 then update * when
matched then delete when not matched then insert *;
+-------------+-------------+-------------+
| insert_rows | update_rows | delete_rows |
+-------------+-------------+-------------+
|           1 |           1 |           1 |
+-------------+-------------+-------------+
```

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

- [PR #13903 | feat: add merge status](https://github.com/datafuselabs/databend/pull/13903)

## Code Corner

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

### 使用 clippy.toml 添加自定义 Clippy 规则

[rust-clippy](https://github.com/rust-lang/rust-clippy/) 是 Rust 官方提供的代码检查工具，通过静态分析来发现问题或不符合规范的代码。

通过配置 `clippy.toml` 文件，可以制定项目 Clippy 规则，统一代码开发规范，提供最佳实践指引。

例如，可以使用下面的 lints 提示开发者使用 `std::sync::LazyLock` 来代替 `lazy_static::lazy_static` 。

```toml
disallowed-macros = [
    { path = "lazy_static::lazy_static", reason = "Please use `std::sync::LazyLock` instead." },
]
```

- [PR #13926 | chore(query): remove extra error code construction](https://github.com/datafuselabs/databend/pull/13926)

## Highlights

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

- 支持 `json_path_match` 函数和 `@?`、`@@` 算符。
- 使用 volo thrift 替换上游不再积极维护的 thrift 。
- 阅读文档 [Docs | Tutorial: Dashboarding Covid-19 Data from New York Times](https://docs.databend.com/cloud/using-databend-cloud/dashboard#tutorial-dashboarding-covid-19-data-from-new-york-times) 了解如何使用 Databend Cloud Dashboard 创建和管理可视化图表。

## What's Up Next

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

### 为 INFER_SCHEMA 添加更多数据文件类型支持

Databend 支持 `infer_schema` 表函数，可以推断数据文件的模式，方便数据载入和分析流程。

用法参见下面的示例：

```SQL
SELECT * FROM INFER_SCHEMA(location => '@infer_parquet/data_e0fd9cba-f45c-4c43-aa07-d6d87d134378_0_0.parquet');
+-------------+-----------------+----------+----------+
| column_name | type            | nullable | order_id |
+-------------+-----------------+----------+----------+
| number      | BIGINT UNSIGNED |        0 |        0 |
+-------------+-----------------+----------+----------+
```

目前，`infer_schema` 只支持对 Parquet 类型数据文件的模式推断，我们希望为其添加 CSV 、JSON 等更多常用数据文件类型的支持。

[Issue #13959 | INFER_SCHEMA supports more file types](https://github.com/datafuselabs/databend/issues/13959)

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

## Changelog

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

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

## Contributors

非常感谢贡献者们在本周的卓越工作。

![图片](https://hackmd.io/_uploads/B1ggQUELa.png)

## Connect With Us

Databend 是一款开源、弹性、低成本，基于对象存储也可以做实时分析的新式数仓。期待您的关注，一起探索云原生数仓解决方案，打造新一代开源 Data Cloud。

- [Databend Website](https://databend.rs) 
- [GitHub Discussions](https://github.com/datafuselabs/databend/discussions)
- [Twitter](https://twitter.com/Datafuse_Labs)
- [Slack Channel](https://link.databend.rs/join-slack)
