---
# System prepended metadata

title: Databend 开源周报第 107 期
tags: [weekly]

---

---
title: Databend 开源周报第 107 期
description: 
slug:  databend-weekly-107
date: 2023-08-21
tags: [weekly]
cover_url: databend-weekly.svg
image: databend-weekly.png
contributors:
  - name: ariesdevil
  - name: b41sh
  - name: dantengsky
  - name: Dousir9
  - name: everpcpc
  - name: flaneur2020
  - name: JackTan25
  - name: lichuang
  - name: nange
  - name: PsiACE
  - name: RinChanNOWWW
  - name: SkyFan2002
  - name: soyeric128
  - name: sundy-li
  - name: TCeason
  - name: Xuanwo
  - name: xudong963
  - name: youngsofun
  - name: zhang2014
  - name: zhyass
authors:
  - datafuselabs
---

![](https://hackmd.io/_uploads/SJaRh8xTn.png)


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

## What's On In Databend

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

### 理解连接参数

**连接参数** 是建立与 Databend 支持的外部存储服务（如Amazon S3）的连接时所需的一组身份验证和配置信息。这些参数被括号包围、由一组用逗号或空格分隔的键值对组成。在创建 Stage 、`COPY INTO` 和查询外部文件时都会用到。

下面的 SQL 语句展示了如何利用连接参数创建用 S3 作为底层存储的 Stage 。

```sql
CREATE STAGE my_s3_stage
URL = 's3://load/files/'
CONNECTION = (
    ACCESS_KEY_ID = '<your-access-key-id>',
    SECRET_ACCESS_KEY = '<your-secret-access-key>'
);
```

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

- [Docs | SQL Reference - Connection Parameters](https://databend.rs/doc/sql-reference/connect-parameters)

### Hive Catalog 支持配置存储参数

在刚刚过去的一周中，Databend 为 Hive Catalog 引入了存储参数选项，允许为其配置特定的存储服务，不再依赖 Default Catalog 自身的存储后端。

下面的例子展示了如何创建以 MinIO 作为底层存储服务的 Hive Catalog ：

```sql
CREATE CATALOG hive_ctl 
TYPE = HIVE 
CONNECTION =(
    ADDRESS = '127.0.0.1:9083' 
    URL = 's3://warehouse/' 
    AWS_KEY_ID = 'admin' 
    AWS_SECRET_KEY = 'password' 
    ENDPOINT_URL = 'http://localhost:9000/'
)
```

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

- [Issue #12407 | Feature: Add storage support for Hive catalog](https://github.com/datafuselabs/databend/issues/12407)
- [PR #12469 | feat: Add storage params in hive catalog](https://github.com/datafuselabs/databend/pull/12469)

## Code Corner

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

### 使用 `gitoxide` 加速 Git 依赖下载

`gitoxide` 是一个用 Rust 编写的高性能、现代化的 Git 实现。利用 `cargo` 的 `gitoxide` 特性（Unstable），可以使用 `gitoxide` crate 替代 `git2` 执行各种 git 操作，从而在下载 crates-index 和 git 依赖时获得数倍的性能提高。

Databend 最近在 CI 中为 `cargo {build | clippy | test} ` 启用了这一特性，你也可以在本地开发时尝试添加 `-Zgitoxide` 选项来加速构建过程：

```sql
cargo -Zgitoxide=fetch,shallow-index,shallow-deps build
```

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

- [chore(ci): cargo build with -Zgitoxide](https://github.com/datafuselabs/databend/pull/12504)
- [The Cargo Book | Unstable - gitoxide](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#gitoxide)

## Highlights

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

- 不与 `SELECT` 共用也可以单独使用 `VALUES` 子句。
- 变更列时支持修改默认值。
- 为 Parquet 格式的表添加虚拟列支持
- 支持在执行写入操作（`COPY INTO` 和 `REPLACE INTO`）后对表进行自动重聚类

## What's Up Next

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

### 增强 `infer_schema` 能力以支持文件路径

当前，Databend 既支持查询由文件路径指向的文件也支持查询位于 Stage 中的文件，例如：

```sql
select * from 'fs:///home/...';
select * from 's3://bucket/...';
select * from @stage;
```

然而，目前 `infer_schema` 只支持处理位于 Stage 中的文件：

```sql
select * from infer_schema(location=>'@stage/...');
```

如果需要对位于其它路径下的文件进行推断，就会导致报错：

```sql!
select * from infer_schema(location =>'fs:///home/...'); -- this will panic.
```

我们希望可以统一 `infer_schema` 函数的行为，允许其对所有位置的文件进行推断，使之具有更好的可用性。

[Issue #12458 | Feature: `infer_schema` support normal file path](https://github.com/datafuselabs/databend/issues/12458)

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

## Changelog

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

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

## Contributors

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

![](https://hackmd.io/_uploads/Sk5c38x62.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)