博客

Databend 开源周报第 107 期

avatarDatabend Labs8月 21, 2023
Databend 开源周报第 107 期

英文版移步:https://www.databend.com/blog/2023-08-20-databend-weekly

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

What's On In Databend

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

理解连接参数

连接参数 是建立与 Databend 支持的外部存储服务(如 Amazon S3)的连接时所需的一组身份验证和配置信息。这些参数被括号包围、由一组用逗号或空格分隔的键值对组成。在创建 Stage、

COPY INTO
和查询外部文件时都会用到。

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

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

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

Hive Catalog 支持配置存储参数

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

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

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/'
)

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

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
选项来加速构建过程:

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

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

Highlights

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

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

What's Up Next

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

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

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

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

然而,目前

infer_schema
只支持处理位于 Stage 中的文件:

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

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

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

我们希望可以统一

infer_schema
函数的行为,允许其对所有位置的文件进行推断,使之具有更好的可用性。

Issue #12458 | Feature:

support normal file path

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

Changelog

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

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

分享本篇文章

订阅我们的新闻简报

及时了解功能发布、产品规划、支持服务和云服务的最新信息!