博客

Databend 开源周报第 97 期

Databend Labs6月 12, 2023

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

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

What's On In Databend

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

列位置

Databend 现在支持

$N
这一语法,用来表示列位置,例如:
$2
意味着匹配第 2 列。Databend 也支持在 SQL 语句中将列位置和列名结合使用。下面是一个简单的例子:

CREATE TABLE IF NOT EXISTS t1(a int, b varchar);
INSERT INTO t1 values (1, 'a'), (2, 'b');
select $1, $2, a, b from t1;

┌─────────────────────────────────┐
│ $1 │ $2 │ a │ b │
│ Int32 │ String │ Int32 │ String │
├───────┼────────┼───────┼────────┤
1 │ a │ 1 │ a │
2 │ b │ 2 │ b │
└─────────────────────────────────┘

我们正在为

SELECT FROM @stage
添加列位置支持。目前,你可以在 NDJSON 格式上尝试这一新特性。其他格式的支持还在进行中。

SELECT $1 FROM @my_stage (FILE_FORMAT=>'ndjson')

COPY INTO my_table FROM (SELECT $1 SELECT @my_stage t) FILE_FORMAT = (type = NDJSON)

需要注意的是,在 Databend 中使用 SELECT 语句处理 NDJSON 格式文件时,只允许使用

$1
表示整行数据,并且其数据类型为 Variant。

-- Select the entire row using column position:
SELECT $1 FROM @my_stage (FILE_FORMAT=>'ndjson')

--Select a specific field named "a" using column position:
SELECT $1:a FROM @my_stage (FILE_FORMAT=>'ndjson')

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

Code Corner

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

了解 Databend 的持续集成工作流 - 拼写检查

Databend 现在有一组非常复杂的持续集成工作流,用于代码审计、测试、benchmark 和发布。拼写检查无疑是其中最简单的部分。

与其他工作流一样,我们使用

actions/checkout
检出代码。

- uses: actions/checkout@v4
with:
clean: 'true'

typos-cli
是一个用 Rust 编写的拼写检查工具,快速、准确,适用于像 Databend 这样的大型单一代码库,并且非常适用于针对 PR 的检查。

- uses: baptiste0928/cargo-install@v1
with:
crate: typos-cli
args: --locked
cache-key: typos-check

使用

baptiste0928/cargo-install
可以轻松安装依赖,它几乎和
cargo install
保持一致,只是需要遵循 GitHub actions 的风格。另外,它还提供自动缓存支持,能够加速后续构建。

- name: do typos check with typos-cli
run: typos

需要注意的是,虽然 crate 的名字是

typos-cli
,但是对应二进制可执行程序的名字是
typos

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

亮点

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

What's Up Next

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

在 REST API 中添加去重标签字段

为了确保数据摄取是幂等操作,Databend 使用去重标签来支持 DML 的去重。你可以在 Docs | Setting Commands - SET_VAR 中找到关于此功能的更多信息。

为了方便跨语言驱动程序集成,我们可以在 REST API 中添加去重标签字段。

Issue #11710 | Feature: support to bring deduplication label on stage attachment api

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

Changelog

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

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

分享本篇文章

订阅我们的新闻简报

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