Databend 产品月报(2025年7月)

亲爱的 Databend 用户朋友们,大家好!🚀

这个七月,我们专注于优化一个核心目标:JSON 查询性能 。最令人兴奋的是,我们对 Virtual Columns 功能进行了全面升级,效果显著------JSON 查询速度提升 3 倍 ,同时数据扫描量减少 26 倍

本月成果速览

  • 新增 25 + 实用功能
  • 修复 25 + 影响体验的 bug
  • 完成 20 + 项性能优化
  • 其他改进 35 +

不过,最让人兴奋的,还是 JSON 性能的突破性提升。

重点功能一览

💎 核心升级

Virtual Columns 性能飞跃 :JSON 查询速度提升 3 倍,数据扫描量减少 26 倍

增强的 RBAC 权限管理 :支持 connection 和 sequence 对象

Shuffle 排序优化 :大幅提高大规模有序数据集的性能

流式处理改进 :Virtual Columns 支持流式数据

工作负载管理:新增基于内存百分比的资源配额

🛠 开发更顺手

40+ JSON 函数 :全面覆盖 JSON 操作需求

多语法支持 :兼容 Snowflake 和 PostgreSQL 语法

增强的 UDF :新增 IMMUTABLE 支持,性能更优

调试工具升级:metactl 工具更强大

⚡ 性能再突破

• 元服务优化:毫秒级精度,架构更优

• 查询优化:包括 grouping sets 重写等改进

• 内存管理:基于百分比的配额机制

🐛 稳定性提升

  • 修复 25 + 个 bug:涵盖 JSON 处理、decimal 运算、查询执行等
  • 改进错误处理:覆盖边缘情况和并发操作
  • 提升事务可靠性:临时表和审计日志更稳定

深度解析:Virtual Columns 技术

🚀 Virtual Columns:自动化的 JSON 索引

我们对现有的 Virtual Columns 功能进行了全面优化,专为 JSON 工作负载量身打造。你可以把它看作是自动化的 JSON 索引------无需任何手动干预。

Virtual Columns 能够自动分析 JSON 数据结构,发现常用访问路径,并为这些路径生成独立的列索引。具体来说,当加载 JSON 数据时,系统会自动执行以下操作:

  1. 分析 JSON 文档的访问模式
  2. 为常用路径创建优化索引
  3. 将查询路由到这些快速索引,而不是每次都通过 jsonb 函数查询

示例 JSON:

json 复制代码
{
  "customer_id": 123,
  "order": {
    "items": [{"name": "Shoes", "price": 59.99}]
  },
  "user": {"name": "Alice", "email": "alice@example.com"}
}

自动创建的索引:

  • customer_id → 整数索引
  • order.items[0].price → 数值索引
  • user.name → 字符串索引

无需配置,无需维护,直接享受更快的查询速度。

📊 真实数据对比

以下是我们的测试结果:

优化前(传统 JSON 解析):

sql 复制代码
SELECT data['account_balance'], data['address']['city'] 
FROM user_logs;
-- 耗时 3.76 秒,处理 11.90 GB 数据

优化后(自动 Virtual Columns 索引):

sql 复制代码
-- 完全相同的查询
SELECT data['account_balance'], data['address']['city'] 
FROM user_logs;
-- 耗时 1.32 秒,处理 461 MB 数据

查询速度提升 3 倍,数据扫描量减少 26 倍,无需修改任何代码!

🔧 兼容多种 JSON 语法

我们支持你已经熟悉的多种 JSON 查询语法:

Snowflake 风格:

sql 复制代码
SELECT data['user']['name'] FROM customers;       -- 方括号
SELECT data:user:name FROM customers;             -- 冒号
SELECT data['user'].profile.name FROM customers;  -- 混合语法

PostgreSQL 风格:

sql 复制代码
SELECT data->'user'->'name' FROM customers;       -- 箭头

无论使用哪种语法,都能享受自动索引带来的性能提升。

未来展望:统一架构,持续进化

七月的 JSON 优化只是我们更大蓝图的一部分。我们正在构建一个统一的架构,以驾驭所有类型的数据:

多模态数据处理能力

  • 结构化数据:世界一流的列式存储性能(已完成)
  • 半结构化数据:自动 Virtual Columns 索引(七月里程碑)
  • 🚀 非结构化数据:向量计算和存储,与谓词下推(八月预览)

🔮 八月预览:非结构化数据存储与计算

如果说七月是关于半结构化 JSON 的自动索引,那么八月将聚焦于非结构化数据。我们将推出全面的向量存储、计算和查询加速能力:

八月亮点:

  • 向量化存储:原生 vector 数据类型,优化的列式存储
  • HNSW 索引:加速相似性搜索,毫秒级查询响应
  • 跨模态 SQL 联结:在单个查询中处理结构化、半结构化和非结构化数据

想象一下这样的查询:

sql 复制代码
-- 使用矢量嵌入查找相似产品
-- 同时分析其销售业绩(结构化数据)
-- 并提取 JSON 评论中的情感分析结果
-- 所有操作都在一个 SQL 查询中完成

SELECT p.product_name, 
       sales.total_revenue,
       reviews.data['sentiment']['score'] as sentiment,
       COSINE_SIMILARITY(p.embedding, :search_vector) as similarity
FROM products p
JOIN sales_data sales ON p.id = sales.product_id  -- 结构化数据
JOIN product_reviews reviews ON p.id = reviews.product_id  -- 半结构化 JSON
WHERE COSINE_SIMILARITY(p.embedding, :search_vector) > 0.8  -- 非结构化
  AND reviews.data['sentiment']['score'] > 0.7
ORDER BY similarity DESC, total_revenue DESC;

为 AI 时代构建真正统一的数据平台 ------ 结构化分析、JSON 查询和非结构化数据搜索无缝协作。无需数据迁移,无需多个系统,只需一个 SQL 查询即可处理所有数据类型。

开源地址:github.com/databendlab...

感谢一路相伴!我们下期再见~ ✨

关于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式湖仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

👨‍💻‍ Databend Cloud:databend.cn

📖 Databend 文档:docs.databend.cn

💻 Wechat:Databend

✨ GitHub:github.com/databendlab...

相关推荐
该用户已不存在24 分钟前
MySQL 与 PostgreSQL,该怎么选?
数据库·mysql·postgresql
GoldenaArcher1 小时前
GraphQL 工程化篇 III:引入 Prisma 与数据库接入
数据库·后端·graphql
川石课堂软件测试1 小时前
自动化测试之 Cucumber 工具
数据库·功能测试·网络协议·测试工具·mysql·单元测试·prometheus
RestCloud1 小时前
StarRocks 数据分析加速:ETL 如何实现实时同步与高效查询
数据库
野猪亨利6672 小时前
Qt day1
开发语言·数据库·qt
本就一无所有 何惧重新开始2 小时前
Redis技术应用
java·数据库·spring boot·redis·后端·缓存
isaki1372 小时前
qt day1
开发语言·数据库·qt
流星白龙2 小时前
【Qt】4.项目文件解析
开发语言·数据库·qt
小钻风33662 小时前
HTTPS是如何确保安全的
网络·数据库
CryptoPP3 小时前
获取越南股票市场列表(包含VN30成分股)实战指南
大数据·服务器·数据库·区块链