---
title: Databend 开源周报第 136 期
description: 'Databend 现已支持完备的任务与通知机制，可供 Databend Cloud 开箱即用。本周我们还对比了 Databend Cloud 和 Snowflake 的数据摄取性能与成本。'
slug: category-weekly/databend-weekly-136
date: 2024-03-18
tags: [weekly]
category: Weekly
cover_url: 'weekly/weekly-136.jpg'
image: 'weekly/weekly-136.jpg'
contributors:
  - name: andylokandy
  - name: ariesdevil
  - name: b41sh
  - name: BohuTANG
  - name: chienguo
  - name: dantengsky
  - name: Dousir9
  - name: drmingdrmer
  - name: everpcpc
  - name: Freejww
  - name: JackTan25
  - name: ncuwaln
  - name: PsiACE
  - name: SkyFan2002
  - name: soyeric128
  - name: suimenno3002
  - name: sundy-li
  - name: TCeason
  - name: TracyZYJ
  - name: xudong963
  - name: youngsofun
  - name: zhang2014
  - name: ZhiHanZ
  - name: zhyass
authors:
  - DatabendLabs
---

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

## What's On In Databend

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

### 理解 Databend 中的任务与通知

Databend 现已支持完备的任务与通知机制。

任务会根据计划或基于 DAG 的任务图执行指定的 SQL 语句。利用通知集成，可以向外部消息服务发送通知。

{/* truncate */}

```sql
CREATE TASK IF NOT EXISTS mytask
 WAREHOUSE = 'mywh'
 SCHEDULE = 30 SECOND
 ERROR_INTEGRATION = 'myerror'
AS
BEGIN
    BEGIN;
    INSERT INTO mytable(ts) VALUES(CURRENT_TIMESTAMP);
    DELETE FROM mytable WHERE ts < DATEADD(MINUTE, -5, CURRENT_TIMESTAMP());
    COMMIT;
END;
```

上面的例子定义了一个名为 `mytask` 的任务。它会在 `mywh` 计算集群上每 30 秒运行一次。任务会执行一个包含 INSERT 语句和 DELETE 语句的多语句事务。当任务失败时，它将触发名为 `myerror` 的错误集成。

任务与通知相关机制在 Databend Cloud 开箱即用，如果您想了解更多信息，欢迎联系 [Databend 团队](https://databend.cn/contact-us/)，或查看下面列出的资源。

- [Docs | Task ](https://docs.databend.cn/sql/sql-commands/ddl/task/)
- [Docs | Notification ](https://docs.databend.cn/sql/sql-commands/ddl/notification/)

## Code Corner

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

### Databend vs. Snowflake：数据摄入基准测试

近期，Databend 与 Snowflake 进行了数据摄入基准测试，涵盖性能和成本等方面，主要包含以下四项基本测试：

- TPC-H SF100 数据集加载，面向大规模数据，约 6 亿行。
- ClickBench Hits 数据集加载，面向大宽表数据，约 1 亿行。
- 1 秒新鲜度：在 1 秒的新鲜度限制下，比较平台的数据摄取能力。
- 5 秒新鲜度：在 5 秒的新鲜度限制下，比较平台的数据摄取能力。

**数据集加载对比**

![data loading](../static/img/blog/databend-vs-snowflake-data-loading.png)

**数据新鲜度对比**

![data freshness](../static/img/blog/databend-vs-snowflake-data-freshness.png)

欢迎感兴趣的小伙伴阅读下面的文档，了解 Databend Cloud 的低成本、高性能数据摄入。

- [Docs | Databend vs. Snowflake: Data Ingestion Benchmark](https://docs.databend.cn/guides/benchmark/data-ingest)

## Highlights

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

- CROSS JOIN 支持外溢。
- 聚合哈希表支持外溢。
- 支持刷新倒排索引。
- 为时间日期相关函数添加更多函数别名，以支持更多数据分析工具。

## What's Up Next

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

### 支持 TOP K 语法

Databend 计划支持 `SELECT TOP` 语句，用于选出结果集的前 K 项。

下面的 `SELECT TOP` 语句，用于选出有序结果集的前 4 项：

```sql
select TOP 4 c1 from testable ORDER BY c1;
```

等效于下面的 `SELECT ... LIMIT` 语句。

```sql
select c1 from testable order by c1 limit 4;
```

这是一个 good first issue（新手友好问题），旨在引导对 Rust 和 Databend 感兴趣的同学参与。

[Issue #14972 | Feature: top k syntax support](https://github.com/databendlabs/databend/issues/14972)

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

## New Contributors

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

- [@suimenno3002](https://github.com/suimenno3002) 实现了对直方图聚合函数的支持，[#14839](https://github.com/databendlabs/databend/pull/14839) 。

## Changelog

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

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