Databend 产品月报(2025年5月)
五月份的更新来啦!这个月我们为大家带来了不少实用的新功能和性能优化,希望能让你的大数据处理工作更加得心应手。
这个月我们一共推出了 31 个新功能 ,修复了 18 个 bug ,还做了 15 项性能优化!
📊 五月更新亮点
重磅功能
- Ngram Index - 让
LIKE '%pattern%'
查询飞起来,自带 bloom filter 加速 - Iceberg 功能增强 - 新增 ORC 文件支持,数据缓存和 merge-on-read 优化
- AVRO 文件支持 - 现在可以直接导入和查询 AVRO 文件了
- Streaming Load API - 重新上线,性能比之前更强
- Sequence 管理 - 新增
SHOW SEQUENCES
和DESC SEQUENCE
命令 - 类型转换优化 - 数字转布尔值、数字字符串转换更智能了
性能提升
- Query Optimizer - 优化了 JOIN 条件中的关联子查询
- Fragment Forest 执行引擎 - 分布式查询的 Broadcast 操作更高效
- Histogram 计算 - 字符串类型的统计信息计算更快了
- 内存管理 - 没有工作负载时自动释放内存
- 并发处理 - Row-Fetch 和数据库操作的并发性能提升
存储和稳定性
- Auto-Vacuum 选项 - 新增
enable_auto_vacuum
表级设置 - 数据保留策略 -
data_retention_num_snapshots_to_keep
参数控制快照保留 - Meta-Service 改进 - 基于时间戳的 Semaphore 序列,缓存管理更智能
- 超时处理 - 存储操作的取消机制更安全
开发体验
- 时间序列 Profiling - 新的统计指标帮你更加详细的了解每个算子的实时吞吐
- 错误处理优化 - 异常分类和日志记录更清晰
- Python Bindings - 发布了 Python 集成支持
- Arrow 升级 - 升级到 v55,兼容性更好
🚀 本月最值得关注的功能
文本搜索的双重加速:两种 Index 各有所长
我们这次推出了两种文本搜索的解决方案,各有特色,可以根据不同场景选择。最棒的是 两种 index 都是全自动维护的 - 创建后就不用管了,数据插入更新时会自动同步。
| 对比项 | Ngram Index | Full-Text Index | |---------|-------------|-----------------| | 擅长场景 | 加速 LIKE '%pattern%'
查询 | 文档搜索和内容发现 | | 典型用法 | 日志分析,精确子串匹配 | 内容搜索,模糊匹配 | | 查询语法 | WHERE col LIKE '%text%'
| WHERE MATCH(col, 'text')
| | 高级特性 | 大小写不敏感 | 相关性打分,模糊搜索,布尔查询 | | 主要优势 | 现有 LIKE 查询直接加速 | 专业搜索功能,替代传统 LIKE | | 迁移成本 | 零成本,现有 SQL 直接受益 | 兼容 Elasticsearch 语法 | | 维护工作 | 全自动 | 全自动 |
Ngram Index:让你的 LIKE 查询起飞
专门为加速 LIKE '%pattern%'
查询设计:
-- 创建应用日志表 CREATE OR REPLACE TABLE app_logs ( id INT, timestamp TIMESTAMP, level STRING, message STRING ); -- 创建 ngram index(按3个字符分段) CREATE OR REPLACE NGRAM INDEX logs_message_idx ON app_logs(message) gram_size = 3; -- 插入数据,index 会自动更新 INSERT INTO app_logs VALUES (1, '2025-05-01 10:00:00', 'ERROR', 'Database connection failed'); INSERT INTO app_logs VALUES (2, '2025-05-01 10:01:00', 'INFO', 'User login successful'); INSERT INTO app_logs VALUES (3, '2025-05-01 10:02:00', 'ERROR', 'Kubernetes pod restart failed'); -- 原来的 LIKE 查询现在飞快 SELECT * FROM app_logs WHERE message LIKE '%connection%'; SELECT * FROM app_logs WHERE message LIKE '%kubernetes%'; -- 看看 index 是否生效 EXPLAIN SELECT * FROM app_logs WHERE message LIKE '%error%'; -- 会显示:bloom pruning: X to Y(说明 index 在工作)
Ngram Index 文档:https://docs.databend.cn/guides/performance/ngram-index
Full-Text Index:专业级文档搜索
支持 Elasticsearch 语法,Elasticsearch 用户可以无缝迁移:
-- 创建知识库表 CREATE OR REPLACE TABLE knowledge_base ( doc_id INT, title STRING, content STRING, category STRING ); -- 创建全文搜索 index CREATE OR REPLACE INVERTED INDEX kb_content_idx ON knowledge_base(title, content, category); -- 插入文档数据,index 自动维护 INSERT INTO knowledge_base VALUES (1, 'Database Setup', 'Learn how to configure database connections and troubleshoot common issues', 'tutorial'); INSERT INTO knowledge_base VALUES (2, 'Kubernetes Guide', 'Complete guide to deploying applications on Kubernetes clusters', 'guide'); INSERT INTO knowledge_base VALUES (3, 'Error Handling', 'Best practices for error handling and logging in distributed systems', 'best-practices'); -- 基础搜索,带相关性打分(Elasticsearch 用户很熟悉) SELECT doc_id, title, SCORE() as relevance FROM knowledge_base WHERE MATCH(content, 'database troubleshoot') ORDER BY SCORE() DESC; -- 模糊搜索 - 和 Elasticsearch 一模一样的语法 SELECT * FROM knowledge_base WHERE MATCH(content, 'kuberntes', 'fuzziness=1'); -- 高级查询,完全是 Elasticsearch 的写法 SELECT * FROM knowledge_base WHERE QUERY('content:"error handling" AND category:best-practices'); -- 布尔查询(Elasticsearch 用户几乎无学习成本) SELECT * FROM knowledge_base WHERE QUERY('title:database OR kubernetes AND content:guide');
ES 用户的福音:我们的全文搜索语法兼容 Elasticsearch,如果你之前用过 Elasticsearch,可以直接上手,零学习成本。
怎么选择?
| 你的需求 | Ngram Index | Full-Text Index | |----------|-------------|-----------------| | 现有 LIKE 查询太慢 | ✅ 完美,代码都不用改 | ❌ 需要重写查询 | | 日志分析和监控 | ✅ 专门为这个设计的 | ⚠️ 也能用,但有点大材小用 | | 文档搜索功能 | ❌ 功能太简单 | ✅ 这就是专业的 | | 需要模糊搜索和相关性 | ❌ 不支持 | ✅ 原生支持 | | 从 Elasticsearch 迁移 | ❌ 语法不一样 | ✅ 无缝迁移 |
选择建议:
- 用 Ngram Index 如果你想让现有的
LIKE '%pattern%'
查询跑得更快,不想改代码 - 用 Full-Text Index 如果你要做搜索功能,或者从 Elasticsearch 迁移过来
Full-Text Index 文档:https://docs.databend.cn/guides/performance/fulltext-index
🔮 总结
五月份对 Databend 来说是个重要的里程碑。双重索引方案让查询性能有了质的飞跃,我们正在打造下一代云数据仓库的基础设施。
社区的反馈超出了我们的预期 - 很多用户已经在生产环境中使用,给了我们很多宝贵的建议。感谢所有社区成员、贡献者,以及愿意尝鲜的朋友们。
想体验一下未来的数据仓库吗?来看看我们的项目:github.com/databendlabs/databend 🚀
关于 Databend
Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式湖仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。
👨💻 Databend Cloud:databend.cn
📖 Databend 文档:docs.databend.cn
💻 Wechat:Databend
✨ GitHub:github.com/databendlab...

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
NASA 内部使用的开源软件存在安全漏洞
网络安全初创公司ThreatLeap创始人、安全研究员Leon Juranić指出,美国宇航局(NASA)内部开发使用的开源软件存在漏洞,可能被攻击者利用入侵其系统。 经分析确认,以下工具均因使用存在安全隐患的函数而存在缓冲区溢出漏洞: 飞机工程分析工具OpenVSP(开放式飞行器草图板) 区域水文极端评估系统RHEAS 多仪器分析软件OMINAS 二维/三维网格适配工具Refine 包含数值分析库的CFD工具软件集(CFDTOOLS) knife函数库 Leon Juranić表示仅用4小时进行手动代码分析,就发现了NASA内部开发使用的多款开源软件中存在的一系列漏洞,并且多次通过不同电子邮件向NASA报告漏洞,还打电话给NASA的安全运营中心,但未得到回复。因为NASA的官方政策规定不回复外部人员的漏洞报告。
- 下一篇
纯前端实现图片伪3D视差效果
作者:vivo 互联网前端团队- Su Ning 本文通过depth-anything获取图片的深度图,同时基于pixi.js,通过着色器编程,实现了通过深度图驱动的伪3D效果。该方案支持鼠标/手势与手机陀螺仪双模式交互,在保证性能的同时,为不同终端用户提供沉浸式的视觉体验。 本文提供配套演示代码,可下载体验: Github | vivo-parallax 一、引言 在当今的网页设计与交互中,3D 效果能极大地提升用户的视觉体验和沉浸感。但是3D的物料设计成本依然很高,不仅需要专门的设计师掌握专业的建模工具,而且高精度模型带来的渲染压力也使移动端适配变得困难。 在这样的背景下,利用2D图片实现伪3D的效果,就展现出独特的价值。开发者能以极低的资源消耗,在常规图片素材上构建出具有空间纵深的交互效果。这种技术路径不仅规避了传统3D内容生产的复杂性,同时实现了视觉效果与性能消耗的平衡。 二、实现思路 相比二维平面,三维物体多了一个 z 轴作为深度信息。要让 2D 平面呈现 3D 纵深感,关键在于随着视角偏移时,画面中的物体产生不同程度的位移,从而营造前后视差,实现伪 3D 效果。 为此,我们...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8编译安装MySQL8.0.19