博客

Databend 2-3 月双月报:从 Databend 持续数据开发到 GIS 功能加强

avatarDatabendLabs4月 8, 2026
Databend 2-3 月双月报:从 Databend 持续数据开发到 GIS 功能加强

2026 年 2 月到 3 月,Databend 持续推进 SQL 能力、空间分析、文件格式、查询执行链路和 Meta 架构演进。Sandbox UDF、Geography Functions、R-Tree Spatial Index、TEXT 格式、

EXPLAIN PERF
增强、Meta KV 压缩等更新,数据开发持续交付,构成了这两个月最值得关注的主线。

Hi,Databend 的朋友们!

因为上个月没有单独发布 2 月月报,这一期我们把 2026 年 2 月和 2026 年 3 月 合并成一篇双月回顾,覆盖从

v1.2.874-nightly
v1.2.891-nightly
,以及 2026 年 3 月 30 日

这两个月的主线比较清晰:尝试 Sandbox UDF 与 Geography Functions 扩展了 SQL 表达能力;R-Tree Spatial Index、Spatial Join 与空间裁剪链路逐步补齐;CSV/TSV 能力继续增强,并在 3 月正式收敛为 TEXT 格式;查询引擎则在 new join、spill 修复、

EXPLAIN PERF
、Sort/Spill 优化和 Bloom Index 读取等方向继续提速。同时,Meta 子系统也完成了多轮重构与压缩能力升级,客户端工具层面则有
bendsql
和相关驱动的配套改进。

月度数据

v1.2.874-nightly
v1.2.891-nightly
,Databend 主仓库在 2026 年 2-3 月累计发布了:

  • 18 个 nightly 版本
  • 2 个 patch 版本

其中:

  • 2 月共发布 10 个 nightly
  • 3 月共发布 8 个 nightly2 个 patch

如果按 release note 统计,这两个月 Databend 主仓库累计合并了:

  • 43 个新功能
  • 49 个 bug 修复
  • 50 项重构
  • 2 项 CI / 构建改进
  • 3 项文档更新
  • 17 项其他优化

从这个数据也能看出来,2-3 月的 Databend 是在 功能扩展、执行稳定性和底层结构整理 三条线上同步推进。

本期亮点

核心新功能

  • Sandbox UDF + LATERAL
    generate_series
    - Databend 在 SQL 表达能力上继续前进,既补齐了更灵活的查询表达,也为更安全的自定义逻辑执行打下了基础。
  • Geography Functions +
    st_hilbert
    - 从 Geography Functions 到
    st_hilbert
    ,空间分析相关函数继续扩充。
  • 对象治理增强 - Tagging 能力扩展到
    USER
    ROLE
    STREAM
    view
    udf
    procedure
    ,并为 FUSE table snapshot 增加实验性的 table tags 支持。
  • 数据操作链路增强 -
    COPY INTO location
    支持
    PARTITION BY
    COPY INTO
    支持 Lance dataset,导入导出链路继续补齐。
  • Table Branches 独立 Schema - 分支化数据管理的组织方式更加清晰,Table Branch 还在进一步优化中
  • Table Tag 已经包含在最新版本,可以使用。

空间分析能力:从 Geography Functions 走向 Spatial Index

  • Geography Functions - 2 月先把地理空间计算相关能力补起来,为后续索引与裁剪打下基础。
  • R-Tree Spatial Index - 3 月正式引入基于 R-Tree 的 Spatial Index,实现空间索引能力落地。
  • Spatial Statistics - 为
    BlockMeta
    增加空间统计信息,用于 geospatial range pruning。
  • Spatial Join - Runtime Filter 开始支持 Spatial Index Join,让空间索引真正接入查询优化与执行路径。

文件格式与数据交换:从 CSV/TSV 增强到 TEXT 成型

  • CSV / TSV 兼容性增强 - 支持多字节字段分隔符,复杂类型可编码为 JSON,异构数据接入更灵活。
  • read_file
    +
    COPY INTO location PARTITION BY
    - 文件读写链路继续增强,数据工程场景更完整。
  • TSV -> TEXT - 3 月将 TSV 正式收敛为 TEXT,并补上 TEXT 文件格式参数,让文本类数据导入定义更清晰。
  • 细节修复 -
    infer_schema()
    支持 TSV,
    FIELD_DELIMITER=''
    支持整行读入,CRLF 处理继续完善。

查询性能与执行引擎:从 new join 到 EXPLAIN PERF

  • experimental new join 默认启用 - 2 月是执行链路上的一个重要节点,随后围绕 spill 场景的数据正确性持续修复。
  • EXPLAIN PERF
    - 3 月增加 per-plan 硬件性能计数器,执行计划分析进一步增强。
  • Sort / Spill 优化 - spilled sort blocks prefetch、source sort key 复用、spilled sort streams 压缩、批量 rank-limit sort 等能力继续推进。
  • Join 与过滤优化 - small bloom index 读取优化、Hash Join 完成后主动回收内存、Runtime Filter 持续增强。

Meta 与运维:底层结构持续整理

  • Meta 架构整理 - HTTP admin API 拆到独立 crate
    databend-meta-admin
    ,Meta 配置结构、CLI 配置和 crate 边界持续清理。
  • Meta KV Compression - 在
    v1.2.883-nightly
    中引入透明 zstd 压缩和 typed serialization,进一步优化元数据存储能力。
  • Query-Meta 兼容性 - 补齐 query-meta 版本兼容性文档,为后续演进提供更清晰的边界。
  • 连接与运维细节 - Meta value compression 开关、gRPC listener
    TCP_NODELAY
    等能力继续补齐。

稳定性与质量:执行正确性与边界修复持续收敛

  • 执行正确性 - new join spill 数据丢失问题持续修复,recursive CTE 并发结果问题得到修正。
  • 存储与元数据稳定性 - raft-log 并发 chunk 读取竞态、HTTP catalog attached table 不必要 S3 refresh 等问题得到修复。
  • SQL 边界修复 -
    UNION
    括号保留、correlated scalar subquery decorrelate、Unicode 标识符与别名支持等持续完善。
  • 安全与治理边界 - Direct
    UPDATE
    下 row access policy 执行问题得到修复。

实战演示:Databend 的数据开发与交付

如果把这两个月的更新放到一个更贴近真实工作的例子里,Databend 的价值会更直观。一个常见的数据开发流程是:先在 Databend 里完成清洗、汇总和模型构建,再把结果按分区交付到对象存储,供下游离线任务继续消费;针对特定分析或应用场景,再把结果导出成更适合消费的数据集格式。这正好对应了 2-3 月里两项很实用的能力:

  • COPY INTO <location> PARTITION BY
  • COPY INTO <location> FILE_FORMAT = (TYPE = LANCE)

场景一:按日期与小时分区交付 Parquet

假设我们已经在 Databend 中构建好了一个订单宽表,希望每天把结果按

date/hour
分区交付到对象存储,供下游 Spark、Flink 或其他离线任务消费。

可以直接使用:

COPY INTO @delivery_stage/orders/
FROM (
SELECT
order_id,
user_id,
amount,
status,
created_at,
to_date(created_at) AS dt
FROM mart_orders
WHERE created_at >= '2026-03-01'
)
PARTITION BY (
'date=' || to_varchar(dt, 'YYYY-MM-DD')
|| '/hour=' || lpad(to_varchar(date_part('hour', created_at)), 2, '0')
)
FILE_FORMAT = (TYPE = PARQUET);

这类写法的好处很直接:

  • 分区目录由 SQL 表达式直接决定,交付路径可控
  • 结果可以直接落到类似
    date=2026-03-01/hour=08/
    这样的目录结构
  • 下游任务不需要再额外做一次分区改写

场景二:把分析结果直接交付为 Lance Dataset

如果下游消费场景更关注高效读取、列式访问或特定数据集组织形式,那么 3 月新增的 Lance 格式支持会更有价值。

比如,我们想把一个特征结果集直接导出成 Lance dataset,可以这样写:

COPY INTO @delivery_stage/user_features_lance/
FROM (
SELECT
number
from numbers(10)
)
FILE_FORMAT = (TYPE = LANCE)
USE_RAW_PATH = TRUE
OVERWRITE = TRUE;

这里要特别注意几点:

  • Lance dataset 是一个完整的数据集目录,不是普通单文件输出
  • 默认情况下,Databend 会在目标路径下再生成 query_id 目录
  • 如果希望结果直接落到指定目录,可以使用
    USE_RAW_PATH = TRUE
  • 当前 Lance 不支持
    PARTITION BY
    一起使用

Databend 在交付链路上实际上提供了两种很清晰的模式:

  • 面向通用数据湖交付时,用
    PARTITION BY + PARQUET
  • 面向特定数据集组织或高效消费场景时,用
    LANCE

生态补充

bendsql:3 月有 2 个版本更新

bendsql
在 2 月没有正式 release,但在 3 月发布了两个版本:

  • v0.33.5
    ,发布时间为 2026-03-11
  • v0.33.6
    ,发布时间为 2026-03-15

这两次更新主要集中在:

  • 错误信息更可读,补充
    reqwest::Error
    来源和 source chain 输出
  • 请求稳定性增强,包括 heartbeat headers 修复、
    response.bytes()
    出错重试、超时时间调整
  • 发布与构建链路完善,包括 OIDC trusted publishing 和 abi3 wheel 构建修复

这两次发布更偏向 CLI 可用性、错误诊断能力和工程化质量 的提升。

Driver 与客户端

除了

bendsql
,Databend 生态里的 driver 和客户端在 2-3 月也有一些值得补充的更新:

  • databend-go
    2026-03-23 发布了 v0.9.2,继续推进 Go 驱动可用性演进
  • databend-jdbc
    2026-03-20 附近围绕异常处理做了一组改进,包括把
    query_id
    带进
    SQLException
    消息,便于排障和问题定位
  • databend-sqlalchemy
    2026-02-252026-02-28 之间继续做兼容性修复和版本升级,包括
    varchar
    类型解析修复、
    get_sequence_names
    相关问题修正

这些更新不像主仓库那样集中体现在大功能上,但它们对 Databend 在应用接入层的可用性同样重要。

准备好体验 Table Branching 与空间索引了吗?

开始使用 Databend Cloud——面向分析、搜索、AI 与 Python Sandbox 的 Agent Ready 数仓,即可开始,获得 200 元代金券。

分享本篇文章

订阅我们的新闻简报

及时了解功能发布、产品规划、支持服务和云服务的最新信息!