Databend 开源周报第 84 期

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

What's On In Databend

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

SQL: REPLACE INTO

Databend 现在支持使用 REPLACE INTO 语句插入或更新数据。该语句允许你指定一个冲突键(conflict key),用于判断是应该插入一行新数据,还是更新一行已有数据。

如果表中已经存在与冲突键相同的行,Databend 会用新数据更新这一行。否则,新数据会作为一行新记录添加到表中。你可以使用这个语句来轻松地同步不同来源的数据或处理重复记录。

#> CREATE TABLE employees(id INT, name VARCHAR, salary INT);
#> REPLACE INTO employees (id, name, salary) ON (id) VALUES (1, 'John Doe', 50000);
#> SELECT  * FROM Employees;
+------+----------+--------+
| id   | name     | salary |
+------+----------+--------+
|    1 | John Doe |  50000 |
+------+----------+--------+

如果你想要了解关于 REPLACE INTO 语句的更多细节,可以参阅下方列出的材料:

RFCs: Transform with Copy Into

Databend 目前可以将 Stage 中的数据转换并插入到表中。例如,你可以运行这样的SQL语句:

insert into table1 from (select c1, c2 from @stage1/path/to/dir);

COPY INTO 语句也需要实现类似功能,以支持从 Stage 增量载入数据。

如果你对这个特性感兴趣,可以阅读下面列出的两篇 RFC:

Code Corner

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

Rust Toolchain: 🦀 v1.70.0-nightly (03-10)

Databend 的工具链已经升级至 nightly-2023-03-10 ,在拉取最新的代码后别忘记运行 cargo clean 清理哦。

在更新过程中我们修复了一些 clippy 警告。现在代码中使用 #[default] 来标注 enum 中的默认值,示例如下:

#[derive(Debug, Default)]
pub enum RecordDelimiter {
    #[default]
    Crlf,
    Any(u8),
}

如果你对这一 Rust 技巧感兴趣,可以参阅这个 RFC: derive_default_enum.

Announcing OpenDAL v0.30

OpenDAL 在最近发布的 0.30 中带来了一些重要的新特性,包括移除 Object 抽象和提供对 JavaScript 与 Python 语言的绑定。

Removing Object Abstraction

在很多领域都有用到术语 Object ,很难为 opendal::Object 提供一个简洁的定义。现在,OpenDAL 消除了 Object 的中间 API,所以用户可以直接使用 Operator 操作数据,例如:

# get metadata of a path
- op.object("path").stat().await;
+ op.stat("path").await;

Bindings for JavaScript and Python

OpenDAL 也在同一时间发布了适用于 JavaScript 和 Python 的绑定,感谢 @suyanhanx, @messense, @Xuanwo, 和其他参与的贡献者。现在,使用这两种语言的用户可以使用 OpenDAL 来访问来自不同服务的数据。我们希望数据科学家和数据分析师能够从中获益,使用 OpenDAL 可以节省掉学习其他 SDK 的成本。

下面是一段 Python 示例:

>>> import opendal
>>> op = opendal.Operator('memory')
>>> op.write("test", b"Hello, World!")
>>> op.read("test")
b'Hello, World!'

What's Up Next

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

Support More Mathematical Operators like PostgreSQL

为了支持在 SQL 中执行复杂的数学运算,Databend 计划支持更多的数学运算符,这里主要参考 PostgreSQL 的设计。以帮助用户减少对其他语言或额外工具的依赖。

Operator Description Example Result
^ exponentiation 2.0 ^ 3.0 8
|/ square root |/ 25.0 5
||/ cube root ||/ 27.0 3
! factorial 5 ! 120
@ absolute value @ -5.0 5
& bitwise AND 91 & 15 11
| bitwise OR 32 | 3 35
# bitwise XOR 17 # 5 20
~ bitwise NOT ~1 -2
<< bitwise shift left 1 << 4 16
>> bitwise shift right 8 >> 2 2

@jun0315 目前正在致力于解决这一问题,如果你对如何实现这些运算感兴趣,不妨关注一下。

Issue 10233: Feature: support more pg functions

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

New Contributors

一起认识社区中的新伙伴,Databend 因你们而变得更加美好

  • @jun0315 实现了 caret 运算符来支持幂运算,例如 2^3 表示 2 的 3 次方,等于 8,#10347
  • @quaxquax 帮忙修复了 typo,#10465

Changelog

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

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

Contributors

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

1.png

Connect With Us

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容