---
title: Databend 开源周报第 72 期
description: Databend 开源周报第 72 期
slug: category-weekly/databend-weekly-72
date: 2022-12-19
tags: [weekly]
category: Weekly

image: databend-weekly.png
authors:
  - DatabendLabs
---

> 英文版移步：https://www.databend.com/blog/2022-12-14-databend-weekly
>
> [Databend](https://github.com/databendlabs/databend) 是一款强大的云数仓。专为弹性和高效设计。自由且开源。即刻体验云服务：[https://app.databend.cn](https://app.databend.cn) 。

{/* truncate */}

## What's New

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

### Features & Improvements ✨

**Multiple Catalogs**

- 拓展 show databases SQL ([#9152](https://github.com/databendlabs/databend/pull/9152))

**Stage**

- 支持 select from URI ([#9247](https://github.com/databendlabs/databend/pull/9247))

**Streaming Load**

- 在 streaming load API 的 insert sql 中支持 `file_format` 语法 ([#9063](https://github.com/databendlabs/databend/pull/9063))

**Planner**

- 将 `limit` 下推至 `union` ([#9210](https://github.com/databendlabs/databend/pull/9210))

**Query**

- 使用 `analyze table` 替代 `optimize table statistic` ([#9143](https://github.com/databendlabs/databend/pull/9143))

- 快速解析插入值 ([#9214](https://github.com/databendlabs/databend/pull/9214))

**Storage**

- 使用 xor 哈希函数辅助计算 distinct count ([#9159](https://github.com/databendlabs/databend/pull/9159))

- `read_parquet` 在读数据之前先读取元信息 ([#9154](https://github.com/databendlabs/databend/pull/9154))

- 将 filter 下推至 parquet reader ([#9199](https://github.com/databendlabs/databend/pull/9199))

- 在读取前裁剪 row groups ([#9228](https://github.com/databendlabs/databend/pull/9228))

**Open Sharing**

- 实现 open sharing 原型并添加 sharing stateful tests ([#9177](https://github.com/databendlabs/databend/pull/9177))

### Code Refactoring 🎉

**\***

- 化简全局数据注册逻辑 ([#9187](https://github.com/databendlabs/databend/pull/9187))

**Storage**

- 重构删除逻辑 ([#8824](https://github.com/databendlabs/databend/pull/8824))

### Build/Testing/CI Infra Changes 🔌

- 发布 databend deb 和支持 hive 的 databend ([#9138](https://github.com/databendlabs/databend/pull/9138), [#9241](https://github.com/databendlabs/databend/pull/9241), etc.)

### Bug Fixes 🔧

**Format**

- 支持使用 ASCII 控制字符的 hex 表示作为格式字段分隔符 ([#9160](https://github.com/databendlabs/databend/pull/9160))

**Planner**

- 如果 prewhere_column 为空，则 logic.prewhere_column 设置为 get.columns 中的最小列 ([#9116](https://github.com/databendlabs/databend/pull/9116))

- 当合并子项为 `Aggregate` 时，不要将 topk 向下推到 `Merge` ([#9183](https://github.com/databendlabs/databend/pull/9183))

- 修复可空列的内部列长度和有效性的不一致问题 ([#9220](https://github.com/databendlabs/databend/pull/9220))

**Query**

- 解决 test_insert 导致单元测试挂起 ([#9242](https://github.com/databendlabs/databend/pull/9242))

**Storage**

- 在压缩过程中，对读块的 IO 请求过多 ([#9128](https://github.com/databendlabs/databend/pull/9128))

- 收集孤儿快照 ([#9108](https://github.com/databendlabs/databend/pull/9108))

## What's On In Databend

请持续关注 Databend 的最新动态。

#### Breaking Change: 统一文件格式选项

为了简单起见，我们为 COPY INTO 命令、Streaming Load API 和所有其他用户需要描述其文件格式的情况提供了一组统一的文件格式选项：

```SQL
[ FILE_FORMAT = ( TYPE = { CSV | TSV | NDJSON | PARQUET | XML} [ formatTypeOptions ] ) ]
```

- 请注意，当前以 `format_*` 作为前缀的设置将会被弃用。

- 出于兼容性考虑，`... FORMAT CSV ...` 将会保留，仅供 ClickHouse HTTP 接口使用。

- 对用户自定义格式的支持也在计划内，将会考虑允许 `CREATE FILE FORMAT ...` 创建特定格式，使用时可以 `... FILE_FORMAT = (format_name = 'MyCustomCSV') ....` 。

**阅读以下材料以了解更多讯息：**

- [Issue | unify format options and remove format\_ settings](https://github.com/databendlabs/databend/issues/8995)

- [PR | support file_format syntax in streaming load insert sql](https://github.com/databendlabs/databend/pull/9063)

#### Open Sharing

Open Sharing 是一款简单安全的数据共享协议，为运行在多云环境下的 Databend Query 节点设计。

- **简单且自由：**Open Sharing 完全开源，并且提供一个易用的 RESTful API 实现。

- **安全：**Open Sharing 验证传入请求者的身份和访问权限，并提供审计日志。

- **多云：**Open Sharing 支持多种公有云平台，包括 AWS、Azure、GCP 等。

**阅读以下材料以了解更多讯息：**

- [Docs | Open Sharing](https://github.com/databendlabs/databend/blob/main/src/query/sharing-endpoint/README.md)

- [PR | add prototype open sharing and add sharing stateful tests](https://github.com/databendlabs/databend/pull/9177)

## What's Up Next

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

#### 重构 Stage 相关测试

在运行 Stage 相关测试时，我们应当使用 Streaming Load API 来移动文件到 Stage 中，而不是使用像下面的 AWS 命令：

```Bash
aws --endpoint-url ${STORAGE_S3_ENDPOINT_URL} s3 cp s3://testbucket/admin/data/ontime_200.csv s3://testbucket/admin/stage/internal/s1/ontime_200.csv >/dev/null 2>&1
```

这是由于 Databend 用户不需要关心也不需要考虑 AWS 命令中所指定的 Stage 路径。

[Issue 8528: refactor stage related tests](https://github.com/databendlabs/databend/issues/8528)

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

## Changelogs

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

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

## Contributors

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

![](../static/img/blog/weekly-72-1.png)
![](../static/img/blog/weekly-72-2.png)
![](../static/img/blog/weekly-72-3.png)
![](../static/img/blog/weekly-72-4.png)

## Connect With Us

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

- [Databend Website](https://docs.databend.cn)

- [GitHub Discussions](https://github.com/databendlabs/databend/discussions)

- [Twitter](https://twitter.com/Datafuse_Labs)

- [Slack Channel](https://link.databend.com/join-slack)
