---
title: Databend 开源周报第 137 期
description: 'Databend 现已支持查询倒排索引，我们还提供了关于结合 TASK 和 STREAM 实时捕获和跟踪用户活动的实践文档。'
slug: category-weekly/databend-weekly-137
date: 2024-03-25
tags: [weekly]
category: Weekly
cover_url: 'weekly/weekly-137.jpg'
image: 'weekly/weekly-137.jpg'
contributors:
  - name: andylokandy
  - name: b41sh
  - name: blackstar-baba
  - name: Chasen-Zhang
  - name: BohuTANG
  - name: dantengsky
  - name: Dousir9
  - name: drmingdrmer
  - name: everpcpc
  - name: flaneur2020
  - name: Freejww
  - name: JackTan25
  - name: ncuwaln
  - name: PsiACE
  - name: SkyFan2002
  - name: soyeric128
  - name: sundy-li
  - name: TCeason
  - name: xudong963
  - name: youngsofun
  - name: zhang2014
  - name: ZhengLin-Li
  - name: ZhiHanZ
  - name: zhyass
authors:
  - DatabendLabs
---

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

## What's On In Databend

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

### 支持查询匹配倒排索引

倒排索引是文档检索系统中最常用的数据结构，用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。

Databend 现已支持在查询中使用 `match` 匹配倒排索引。

{/* truncate */}

```sql
SELECT id, score(), content FROM t WHERE match(content, '中国') ORDER BY score()
----
21 1.1967509 中国的古代诗词充满了深邃的意境和独特的韵味，是中华文化的重要组成部分。
24 1.1967509 中国的传统节日蕴含着丰富的文化内涵，是传承和弘扬中华文化的重要途径。
28 1.3336442 中国的饮食文化博大精深，各地的美食各具特色，让人流连忘返。
12 1.4319203 北京的故宫是中国古代建筑的瑰宝，吸引了无数游客前来参观。
15 1.5059 中国的茶文化源远流长，品茶已经成为一种生活方式。
```

如果您想了解更多信息，欢迎联系 [Databend 团队](https://databend.cn/contact-us/)，或查看下面列出的资源。

- [PR | feat(query): Support query match inverted index](https://github.com/databendlabs/databend/pull/14997)

## Code Corner

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

### 结合 TASK 和 STREAM 实时捕获和跟踪用户活动

Databend 中的流（STREAM）是对表变化的动态实时表示。创建流可以捕获和跟踪相关表的修改，并进行持续分析。而任务封装了特定的 SQL 语句，旨在按照预定的时间间隔、特定事件触发或作为更广泛的任务序列的一部分来执行。

在创建任务时，可以按照下面的工作流程进行设计。

![图片](../static/img/blog/task-workflow.png)

下面的示例展示了如何结合 TASK 和 STREAM 实时捕获和跟踪用户活动，定期将 `user_activity_profiles` 表与 `activities_stream` 中的数据进行同步，，以确保`user_activity_profiles` 总能准确反映最新的用户活动。

```sql
-- Define a task in Databend
CREATE TASK user_activity_task
WAREHOUSE = 'default'
SCHEDULE = 1 MINUTE
-- Trigger task when new data arrives in activities_stream
WHEN stream_status('activities_stream') AS
    -- Insert new records into user_activity_profiles
    INSERT INTO user_activity_profiles
    SELECT
        -- Join activities_stream with user_profiles based on user_id
        a.user_id, p.username, p.location, a.activity, a.timestamp
    FROM
        activities_stream AS a
        JOIN user_profiles AS p
            ON a.user_id = p.user_id
    -- Include only rows where the action is 'INSERT'
    WHERE a.change$action = 'INSERT';
```

欢迎感兴趣的小伙伴阅读下面的文档，了解如何利用 Databend Cloud 完成这项任务。

- [Docs | Automating Data Loading with Tasks](https://docs.databend.cn/guides/load-data/continuous-data-pipelines/task)
- [Docs | Example: Tracking and Transforming Data in Real-Time](https://docs.databend.cn/guides/load-data/continuous-data-pipelines/stream#example-tracking-and-transforming-data-in-real-time)

## Highlights

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

- 支持 `show views` 和 `desc view`。
- 新增 `is_error`, `is_not_error`, `error_or` 函数。
- `task_history` 支持分页。
- 支持 PRQL 查询语言。

## What's Up Next

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

### 支持 CHANGES 子句

CHANGES 子句允许在指定的时间间隔内查询表或视图的变更跟踪元数据，而无需创建具有显式事务偏移量的流。

组合多个查询可以用于检索不同事务边界之间的变更跟踪元数据。

```sql
SELECT ...
FROM ...
   CHANGES ( INFORMATION => { DEFAULT | APPEND_ONLY } )
   AT ( { TIMESTAMP => <timestamp> | OFFSET => <time_difference> | STREAM => '<name>' } )
   [ END( { TIMESTAMP => <timestamp> | OFFSET => <time_difference> } ) ]
[ ... ]
```

[Issue #15028 | Feature: support CHANGES clause](https://github.com/databendlabs/databend/issues/15028)

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

## New Contributors

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

- [@ncuwaln](https://github.com/ncuwaln) 实现了对 PRQL 的支持，[#14922](https://github.com/databendlabs/databend/pull/14922) 。
- [@blackstar-baba](https://github.com/blackstar-baba) 实现了对 show views 和 desc view 的支持，[#14926](https://github.com/databendlabs/databend/pull/14926) 。

## Changelog

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

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