摘要:Apache Doris 4.0 作为一个重要里程碑正式发布,引入了原生向量检索、AI 函数以及全新的混合检索与分析处理(HSAP)架构。此后,社区通过 4.0.1 至 4.0.4 四个版本快速演进,本文总结了这四个版本中引入的关键新特性。
Apache Doris 4.0.4 现已正式发布,该版本相较于其他 4.0.x 版本,更为稳定、可靠。Apache Doris 4.0.4 版本囊括了 4.0.1 至 4.0.4 四个版本中所有的优化及增强功能。该版本的发布,标志着其从实时分析领域迈向广阔的数据管理领域,以应对由生成式 AI 和基于 Agent 系统所驱动的数据管理格局变化带来的数据新挑战。
1. 面向 AI 工作负载的混合搜索能力
检索正在成为现代数据平台的核心分析负载,涵盖日志检索、可观测性、文档检索及上下文工程等领域。Apache Doris 在 4.0.X 的每个版本中持续增强其原生搜索能力。
更丰富的查询语法
SEARCH() 函数现已支持短语查询、通配符查询和正则表达式查询(4.0.1),用户可以直接在 SQL 中执行复杂的文本检索。
SELECT * FROM logs
WHERE SEARCH(message, 'timeout* OR "connection error"');
在 4.0.3 版本中,该函数进一步增强了 Lucene 布尔模式,将 Elasticsearch 风格的布尔查询语义(must / should / must_not)引入到基于 SQL 的搜索中。
在 4.0.4 版本中,引入了 BM25 分数范围过滤(min_score 语义),允许用户按相关性分数筛选搜索结果,仅保留最匹配的条目——非常适合搜索推荐和智能检索场景。
灵活的多字段搜索
Apache Doris 4.0.1 中引入了两个新参数:
default_field: 指定搜索的默认列default_operator:控制多列查询的布尔运算符(AND 或 OR)
用户现在可以更方便地执行多字段搜索,而无需编写复杂的 SQL 表达式。
JSON 字段搜索
SEARCH() 函数现在支持通过点表示法直接查询 Variant 类型的子列(4.0.1):
SEARCH(event.payload.error:timeout)
这对于事件数据和日志分析尤为实用,因为这些场景中 JSON 被广泛使用。
单列支持多个分词器索引
单列现在支持创建多个分词器索引(4.0.4)。这使得不同查询场景可以采用不同的分词策略,如多语言搜索、n-gram 采用不同的分词策略,从而显著提高文本搜索的灵活性和质量。
倒排索引增强
在 4.0.x 版本中,倒排索引获得一系列基础能力的提升:
- 支持拼音分词器和过滤器的自定义分词器(4.0.2):通过包含字符过滤器、基本分词器和 ICU 分词器的完整分析能力,以应对中文拼音搜索场景。
- 支持 NORMALIZER (4.0.3):在索引前对字段值进行规范化处理(如忽略大小写与特殊重音符号),提升搜索精度。
- 索引格式默认升级到 V3(4.0.1):提高了读写性能和存储效率。
- 支持多位置 PhraseQuery (4.0.2):支持位置感知的短语匹配,并可配置词项距离约束。
ANN 向量索引:仅索引扫描
ANN(近似最近邻)索引现在支持 仅索引扫描模式(4.0.2),允许向量搜索直接从索引中解析结果,而无需扫描表数据。这在大规模向量检索场景中显著降低了 I/O 开销。
2. 扩展 SQL 与分析能力
空间函数
在 4.0.4 版本中新增了三个空间函数:
ST_Distance:计算两个几何对象间的距离ST_GeometryType:返回几何对象的类型(Point、LineString、Polygon 等)ST_Length:计算 LineString 的总长度
这些功能使基本地理空间分析用例(如基于位置的分析、路线测量和地理报告)能够直接在 SQL 中实现,无需外部 GIS 工具。
增强型时间处理
两项改进简化了 BI 工作负载中常见的时间分析:
- **
PREVIOUS_DAY()**函数 (4.0.4):返回指定日期之前最近一个工作日的日期,适用于财务报告和基于日历的业务逻辑。 - 更多**
INTERVAL**时间单位(4.0.4):INTERVAL表达式现在支持更多的时间粒度,从而能够进行更灵活的时间窗口计算。
4.0.x 版本中新增的时间函数包括TIME_FORMAT(4.0.3)、兼容 MySQL 的UTC_DATE、UTC_TIME、UTC_TIMESTAMP(4.0.1)、INTERVAL函数支持(4.0.3),以及add_time/sub_time(4.0.2)。
改进的哈希函数
在 4.0.1 版本中新增了两个哈希函数:
mmh64_v2:生成与第三方库一致的 MurmurHash64 结果,适用于跨系统数据一致性检查和分片逻辑json_hash:为 JSONB 类型生成哈希值,支持 JSON 数据的去重和比较
物化视图:更智能的透明加速
物化视图在 4.0.2 版本中得到了多项重要改进:
- 非分区基表发生变更时,仍支持透明改写:此前,基表的任何数据变更都会将物化视图标记为不可用。现在,系统会智能评估重写是否仍然有效,从而减少维护开销,提升了近实时场景下的可用性。
- 支持基于视图创建 MTMV:现在可以在普通视图之上构建物化视图,扩展了其适用性。
- 支持多 PCT 表:MTMV 刷新支持多个分区变更跟踪(PCT)表,提高了多表物化视图的刷新效率。
- 支持窗口函数重写:即使物化视图中包含窗口函数,查询现在也能命中物化视图改写,覆盖了更多分析查询模式。
PostgreSQL 分区表同步
Streaming Job 现在支持实时同步 PostgreSQL 分区表(4.0.4),实现了以 PostgreSQL 作为事务源、Doris 作为分析目标的 HTAP 架构。
3. 增强的半结构化数据处理
在现代分析负载中,半结构化数据持续快速增长。
VARBINARY 类型新增函数
Doris 为现有的 VARBINARY 类型新增了四个内置函数(4.0.1):
length:返回二进制值的字节长度from_base64_binary:将 Base64 字符串解码为二进制值to_base64_binary:将二进制值编码为 Base64 字符串sub_binary:从二进制值中提取子字节序列
这些函数使得直接在 SQL 中处理二进制数据(如编码载荷或序列化格式)变得可行,无需往返于应用代码。此外,VARBINARY 类型映射支持已扩展至 Hive、Iceberg、Paimon 和 JDBC 外表(4.0.2),减少了从外部源读取二进制列时的类型不兼容错误。
JSON 处理增强
引入多个函数来改进 JSON 规范化和哈希(4.0.1):
sort_json_object_keys:对 JSONB 对象的键进行排序,使 JSON 比较具有确定性normalize_json_numbers_to_double:将 JSON 中的数值规范化为 double 类型,简化跨系统比较json_hash:为 JSONB 数据生成一致的哈希值
这些功能使 JSON 去重和比较更加简便和可靠。在 4.0.2 版本中,JSON/JSONB 类型增加了对 GROUP BY 和 DISTINCT 的支持,允许 JSON 字段直接参与聚合和去重,而无需进行类型转换。
4. 更强大的湖仓一体集成
Iceberg 元数据可见性
新增支持了 Iceberg 系统表 all_manifests(4.0.4),允许用户直接通过 SQL 查看 Iceberg 的清单元数据。这极大地简化了问题排查、存储审计和元数据诊断。此外,4.0.3 版本引入了清单级缓存,以减少频繁查询大型 Iceberg 表时重复的元数据 I/O 开销。
Iceberg 快照管理
4.0.4 版本实现了 expire_snapshots 存储过程,允许用户按计划清理 Iceberg 旧快照。这有助于控制元数据增长,降低存储成本,是长期运行 Iceberg 表的重要数据治理工具。
Iceberg 表优化
rewrite_data_files 操作已在 4.0.2 版本中实现(通过 ALTER TABLE ... EXECUTE 语法触发),支持对 Iceberg 表进行小文件合并和数据重组。这解决了频繁写入导致的数据碎片化问题,并提升了后续查询性能。同时,4.0.2 版本新增了对分区演进 DDL 的支持,允许在不重建表的情况下更改分区策略。
Schema 演进支持
Doris 现在支持对 Iceberg 外表中的复杂类型(Array、Map、Struct)进行 Schema 变更(4.0.4),使外表元数据能够与不断演进的 Iceberg Catalog 架构保持同步。
更广泛的存储和身份认证支持
- AWS CredentialsProviderChain(4.0.3):通过标准 AWS 凭证链加载 Catalog 凭证,支持 IAM Roles、环境变量和 EC2 实例配置文件,简化云部署中的权限配置。
- Paimon DLF Catalog + OSSHDFS(4.0.3):通过阿里云 DLF 管理 Paimon Catalog,并支持 OSSHDFS 存储,适配典型的阿里云湖仓部署模式。
- 支持 Apache Ozone (4.0.4):原生支持 Apache Ozone 对象存储,为企业部署提供了除 HDFS 外的开源存储选择。
- OSS bucket-domain-name(4.0.4):支持阿里云 OSS 的
bucket-domain-name配置,满足企业私有域 OSS 访问场景。 - MaxCompute RAM Role 认证(4.0.4):MaxCompute 外表现已支持
ram_role_arn和ecs_ram_role认证模式,增强了云原生部署的安全访问能力。 - libhdfs3 DataNode 主机名支持(4.0.4):支持
dfs.client.use.datanode.hostname配置,解决了在 Hadoop 环境中 DataNode 通过主机名而非 IP 通信时的连接问题。
以上是 Apache Doris 4.0.x 系列的主要特性概览,更多细节请参阅官方文档:https://doris.apache.org/docs/4.x/releasenotes/v4.0
Apache Doris 4.0.4 由超过 200 位社区贡献者共同构建。欢迎加入 Apache Doris 微信交流群,共同参与下一版本的开发。

上述更新特性 SelectDB 即将同步支持。如果你想快速体验这些新特性,可以访问 SelectDB 官网申请免费试用,或继续使用开源 Apache Doris 自行部署。
