---
title: Databend 开源周报第 104 期
description: '探索最新的数据载入工具文档，了解如何利用 Kafka 和 dbt 同步数据。'
slug: category-weekly/databend-weekly-104
date: 2023-07-31
tags: [weekly]
category: Weekly
cover_url: 'weekly/weekly-104.jpg'
image: 'weekly/weekly-104.jpg'
contributors:
  - name: andylokandy
  - name: ariesdevil
  - name: b41sh
  - name: BohuTANG
  - name: Chasen-Zhang
  - name: dantengsky
  - name: Dousir9
  - name: drmingdrmer
  - name: everpcpc
  - name: JackTan25
  - name: lichuang
  - name: nange
  - name: PsiACE
  - name: SkyFan2002
  - name: soyeric128
  - name: sundy-li
  - name: Xuanwo
  - name: xudong963
  - name: youngsofun
  - name: zhang2014
  - name: zhyass
authors:
  - DatabendLabs
---

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

## What's On In Databend

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

### 从 Kafka 载入数据

[Apache Kafka](https://kafka.apache.org/) 是一款开源的高性能、分布式消息队列，为处理实时数据提供了一个统一、高吞吐量、低时延的平台。

Databend 设计并实现了高性能的数据摄入工具 [bend-ingest-kafka](https://github.com/databendcloud/bend-ingest-kafka) ，专门用于将来自 Kafka 的数据载入到 Databend 中，可以简化数据摄取工作流程。

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

- [Docs | Loading Data with Tools - Kafka](https://docs.databend.cn/guides/load-data/load-db/kafka/)

### 从 dbt 载入数据

[dbt](https://www.getdbt.com/) 是一种数据转换工作流，可以帮助你完成更多数据处理工作，同时产生更高质量的结果。

[dbt-databend-cloud](https://github.com/databendcloud/dbt-databend) 是由 Databend 开发的 dbt 插件。通过使用此插件，你可以轻松使用 dbt 执行数据建模、转换和清洗任务，并方便地将输出结果载入到 Databend 中。

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

- [Docs | Loading Data with Tools - dbt](https://docs.databend.cn/guides/load-data/load-db/dbt/)

{/* truncate */}

## Code Corner

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

### 使用 Node.js 连接 Databend

Databend 为 Databend Driver 提供了 Node.js 绑定，现在你可以使用 Node.js 轻松构建与 Databend 集成的应用程序。

```javascript
const { Client } = require('databend-driver');

const dsn = process.env.DATABEND_DSN
  ? process.env.DATABEND_DSN
  : 'databend://user1:abc123@localhost:8000/default?sslmode=disable';

async function create_conn() {
  this.client = new Client(dsn);
  this.conn = await this.client.getConn();
  console.log('Connected to Databend Server!');
}

async function select_books() {
  var sql =
    'CREATE TABLE IF NOT EXISTS books(title VARCHAR, author VARCHAR, date VARCHAR)';
  await this.conn.exec(sql);
  console.log('Table created');

  var sql =
    "INSERT INTO books VALUES('Readings in Database Systems', 'Michael Stonebraker', '2004')";
  await this.conn.exec(sql);
  console.log('1 record inserted');

  var sql = 'SELECT * FROM books';
  const rows = await this.conn.queryIter(sql);
  const ret = [];
  let row = await rows.next();
  while (row) {
    ret.push(row.values());
    row = await rows.next();
  }
  console.log(ret);
}

create_conn().then((conn) => {
  select_books();
});
```

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

- [Docs | Developing with Databend using Node.js](https://docs.databend.cn/developer/drivers/nodejs)
- [GitHub | Databend Driver Node.js Binding](https://github.com/databendlabs/bendsql/tree/main/bindings/nodejs)

## Highlights

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

- 支持 `GROUP BY ALL` 语法。
- 利用物化加速 CTE。
- 新增地理位置函数：`h3_to_geo`、`h3_to_geo_boundary`、 `h3_k_ring`、`h3_is_valid`、`h3_get_resolution`、`h3_edge_length_m` 以及 `h3_edge_length_km` 。
- 新增数组 lambda 函数：`array_transform`、`array_apply` 以及 `array_filter` 。

## What's Up Next

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

### 支持 Stage 间的文件复制

Databend 现在能够为十多种不同的存储服务提供数据分析能力。我们可以基于此进一步提供数据管理和迁移功能，比如支持将文件从一个 Stage 复制到另一个 Stage。

```sql
copy files from @mystage1/path/ to @mystage2;
copy files from @mystage1/path/f1.csv to @mystage2/archive/[f1.csv];
```

[Issue #12200 | Feature: support copy files from one stage to other stage](https://github.com/databendlabs/databend/issues/12200)

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

## Changelog

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

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