---
title: Databend 开源周报第 93 期
description: 本周 Databend 的 Segment Cache 得到了显著升级，其内存使用量降低到测试场景中先前使用量的 1.5/1000。同时，Databend 还发布 Python 绑定，可与数据科学工作流无缝集成。
slug: category-weekly/databend-weekly-93
date: 2023-05-15
tags: [weekly]
category: Weekly

image: databend-weekly.png
contributors:
  - name: andylokandy
  - name: b41sh
  - name: BohuTANG
  - name: Chasen-Zhang
  - name: dantengsky
  - name: DongHaowen
  - name: Dousir9
  - name: drmingdrmer
  - name: everpcpc
  - name: flaneur2020
  - name: hantmac
  - name: lichuang
  - name: Mehrbod2002
  - name: PsiACE
  - name: SkyFan2002
  - name: soyeric128
  - name: sundy-li
  - name: TCeason
  - name: Xuanwo
  - name: xudong963
  - name: youngsofun
  - name: zhang2014
  - name: ZhiHanZ
  - name: zhyass
authors:
  - DatabendLabs
---

# Databend 开源周报 第 91 期

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

## What's On In Databend

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

### 改进 Databend 的 Segment Cache 内存使用率

本周 Databend 的 Segment Cache 得到了显著升级，其内存使用量降低到测试场景中先前使用量的 1.5/1000。

本次升级引入名为 `CompactSegmentInfo` 的 Segment 表示形式，主要由两个组件组成：

- 解码后的 min / max 索引和其他统计信息。
- 未解码（且压缩）的 RawBlockMeta。

在对 `Segment` 剪枝时，如果要将某些 Segment 剪去，则无需解码其对应的 `RawBlockMeta` 。而对于没有剪去的 Segment，它们对应的 `RawBlockMeta` 会即时解码并用于 Block 剪枝和扫描（在不再需要时删除）。

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

- [PR #11347 | refactor: hybrid segment cache](https://github.com/databendlabs/databend/pull/11347)

{/* truncate */}

## Code Corner

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

### `databend` 的 Python 绑定

Databend 现在提供 Python 绑定，为在 Python 中执行 SQL 查询提供了新选择。该绑定内置 Databend，无需部署实例即可使用。

```shell
pip install databend
```

从 databend 导入 `SessionContext` 并创建会话上下文即可开始使用：

```python
from databend import SessionContext
ctx = SessionContext()
```

接着就可以调用 `sql()` 方法来执行 SQL 查询了：

```python
df = ctx.sql("select number, number + 1, number::String as number_p_1 from numbers(8)")
```

结果 DataFrame 可以使用 `to_py_arrow()` 或 `to_pandas()` 转换为 PyArrow 或者 Pandas 格式：

```python
df.to_pandas() # Or, df.to_py_arrow()
```

现在行动起来，将 Databend 集成到你的数据科学工作流中。

- [databend · PyPI](https://pypi.org/project/databend/)

## 亮点

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

- 阅读 [Transform Data During Load](https://docs.databend.cn/guides/load-data/) 中新增的两篇教程，了解如何在加载过程中执行算术运算以及将数据加载到带有冗余列的表中。
- 阅读 [Working with Stages](https://docs.databend.cn/sql/sql-commands/ddl/stage/) 系列文档以深入了解 Stage 并学习如何有效地管理和使用 Stage。
- 新增函数：`date_format`、`str_to_date` 和 `str_to_timestamp`。

## What's Up Next

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

### 将 open-sharing 二进制文件添加到 Databend 镜像中

**Open Sharing** 是由 Databend 团队设计的一种用于多云环境的、廉价且安全的数据共享协议。Databend 提供了租户级别的 sharing endpoint 实现，名为 `open-sharing` 。阅读 [databend | sharing-endpoint - README.md](https://github.com/databendlabs/databend/blob/main/src/query/sharing-endpoint/README.md) 以获取更多信息。

为了方便使用 K8s 或 Docker 部署 `open-sharing` 实例，建议将其添加到 Databend 的 docker 镜像中。

[Issue #11182 | Feature: added open-sharing binary in the databend-query image](https://github.com/databendlabs/databend/issues/11182)

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

## New Contributors

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

- [@Mehrbod2002](https://github.com/Mehrbod2002) 添加了对 `max_storage_io_requests` 的验证，[#11367](https://github.com/databendlabs/databend/pull/11367) 。
- [@DongHaowen](https://github.com/DongHaowen) 为不同基准测试指定了不同的 `database` ，[#11362](https://github.com/databendlabs/databend/pull/11362) 。

## Changelog

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

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