首页 > 数据库 > 国内数据库 > Databend 产品月报(2025年5月)
五月份的更新来啦!这个月我们为大家带来了不少实用的新功能和性能优化,希望能让你的大数据处理工作更加得心应手。
这个月我们一共推出了 31 个新功能,修复了 18 个 bug,还做了 15 项性能优化!
LIKE '%pattern%' 查询飞起来,自带 bloom filter 加速SHOW SEQUENCES 和
DESC SEQUENCE 命令enable_auto_vacuum 表级设置data_retention_num_snapshots_to_keep 参数控制快照保留我们这次推出了两种文本搜索的解决方案,各有特色,可以根据不同场景选择。最棒的是 两种 index 都是全自动维护的 - 创建后就不用管了,数据插入更新时会自动同步。
| 对比项 | Ngram Index | Full-Text Index |
|---|---|---|
| 擅长场景 | 加速
LIKE '%pattern%' 查询 |
文档搜索和内容发现 |
| 典型用法 | 日志分析,精确子串匹配 | 内容搜索,模糊匹配 |
| 查询语法 |
WHERE col LIKE '%text%' |
WHERE MATCH(col, 'text') |
| 高级特性 | 大小写不敏感 | 相关性打分,模糊搜索,布尔查询 |
| 主要优势 | 现有 LIKE 查询直接加速 | 专业搜索功能,替代传统 LIKE |
| 迁移成本 | 零成本,现有 SQL 直接受益 | 兼容 Elasticsearch 语法 |
| 维护工作 | 全自动 | 全自动 |
专门为加速
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
支持 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 迁移 | ❌ 语法不一样 | ✅ 无缝迁移 |
选择建议:
LIKE '%pattern%' 查询跑得更快,不想改代码Full-Text Index 文档: https://docs.databend.cn/guides/performance/fulltext-index
五月份对 Databend 来说是个重要的里程碑。双重索引方案让查询性能有了质的飞跃,我们正在打造下一代云数据仓库的基础设施。
社区的反馈超出了我们的预期 - 很多用户已经在生产环境中使用,给了我们很多宝贵的建议。感谢所有社区成员、贡献者,以及愿意尝鲜的朋友们。
想体验一下未来的数据仓库吗?来看看我们的项目: github.com/databendlabs/databend 🚀
Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式湖仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。
👨💻 Databend Cloud: databend.cn
📖 Databend 文档: docs.databend.cn
💻 Wechat:Databend
✨ GitHub: github.com/databendlab...
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70042558/viewspace-3086052/ ,如需转载,请注明出处,否则将追究法律责任。