数据无界:将 Apache Doris 作为统一查询处理引擎,打破数据在不同系统间的屏障,在数据仓库、数据湖乃至数据流、本地数据文件等所有数据源端都能提供一致且极速的分析处理体验。
-
湖仓查询加速:无需将数据迁移至 Apache Doris,用户便可直接利用 Doris 高效的查询引擎,直接查询 Iceberg、Hudi、Paimon 等数据湖和 Hive 等离线数仓中的数据,实现查询分析的加速。
-
联邦分析:Apache Doris 通过扩展 Catalog 和存储插件,丰富其联邦分析能力,使用户无需将数据物理集中至统一的存储空间,在保持各数据源独立性和隐私性的同时,仅借助 Apache Doris 即可实现多个异构数据源的统一分析,既可以直查外部表以及存储文件、也可以执行内表和外表以及外表相互之间的关联分析,打破数据孤岛、提供全局一致性的数据洞察与分析。
-
数据湖构建: Apache Doris 增加了 Hive、Iceberg 数据写回功能,写回功能支持用户直接通过 Doris 创建 Hive、Iceberg 表,并将数据写入到表中。基于此,用户可以将 Apache Doris 中的内表数据写回离线湖仓,或者对离线湖仓中的数据利用 Apache Doris 进行数据加工后落地回离线湖仓,从而实现更简化和高效的数据湖构建。
湖仓融合:数据湖架构日益复杂,增加了用户技术选型成本与维护成本。同时实现多个系统一致的细粒度权限管控也变得非常困难,实时性也不足。为应对这一挑战,Apache Doris 融入了湖的核心特征,将其打造成一个轻量、高效的原生实时湖仓。
-
数据实时更新: 从 1.2 版本开始 Apache Doris 增强了主键模型,引入 Merge-on-Write,支持实时更新。借助这一特性,上游数据变更可以基于主键进行高频实时数据更新。
-
数据科学与 AI 计算支撑: 从 2.1 版本开始 Apache Doris 借助高效的 Arrow Flight 协议,增强了存储的开放性和对多计算负载的高效支持,这让 Apache Doris 支持数据科学和 AI 计算成为可能。
-
半结构化与非结构化数据增强: Apache Doris 先后引入 Array / Map / Struct / JSON / Variant 等数据类型,未来还会支持向量索引。
-
存算分离资源能效提升: 从 3.0 版本中支持了存算分离模式,进一步提升了资源效率和可扩展性。
1-1 湖仓查询加速
查询加速是湖仓一体化进程中的重要一环。借助 Apache Doris 强大的分布式查询引擎,可以帮助用户对湖仓数据进行快速分析。在 TPC-H 和 TPC-DS 标准测试集上,Apache Doris 的平均查询性能是 Trino/Presto 的 3-5 倍。
在 3.0 版本中,我们重点针对用户实际生产环境中的湖仓查询加速场景进行了优化,包括:
-
更精细的任务拆分策略: 通过对一致性哈希算法的调整以及引入任务分片权重机制,确保各个节点的查询负载均衡。
-
面向多分区、多文件场景的调度优化: 在大量文件(100 万+)场景下,通过异步、分批获取文件分片的方式,显著降低查询耗时(100s -> 10s),并降低 FE 内存压力。
后续我们将进一步针对性的提升真实业务场景下的查询加速性能,提升用户实际感受,构建业界领先的湖仓查询加速引擎。
1-2 联邦分析 - 更丰富的数据源连接器
在之前的版本中,Apache Doris 已经支持了 10 余种主流湖、仓、关系型数据库的连接器。在 3.0 版本中,我们引入了 Trino Connector 兼容框架,极大扩展了 Apache Doris 可连接的数据源。借助该框架,仅需简单适配,用户即可通过 Doris 访问对应的数据源,并利用 Doris 的极速计算引擎进行数据分析。
目前 Doris 已完成 Delta Lake、Kudu、BigQuery、Kafka、TPCH、TPCDS 等多种 Connector 的适配,也欢迎所有开发者参考开发指南,为 Apache Doris 适配更多数据源。
1-3 数据湖构建
在 3.0 版本中,Apache Doris 增加了 Hive、Iceberg 数据写回功能。写回功能支持用户直接通过 Doris 创建 Hive、Iceberg 表,并将数据写入到表中。该功能使得 Apache Doris 在湖仓数据处理能力上形成闭环,用户可以在 Apache Doris 中完成多个数据源之间的数据分析、共享、处理、存储操作。
在后续的迭代版本中,Apache Doris 将进一步完善对数据湖表格式的支持以及存储 API 开放性。
3. 半结构化分析全面增强
在过去发布的 2.0 和 2.1 版本中,Apache Doris 陆续引入了倒排索引、N-Gram Bloom Filter、Variant 数据类型等重磅特性,支持高性能的全文检索和任意维度分析,对复杂半结构化数据的存储和处理分析更加灵活高效。
在 3.0 版本中,我们继续对这一场景能力进行了全面增强,在应对半结构化数据分析和日志检索分析场景的挑战时更加得心应手。
Variant 数据类型在经过大规模生产打磨后,已具备充分的稳定性,成为 JSON 数据存储和分析的首选。在 3.0 版本中我们对 Variant 类型进行了多项优化:
-
Variant 数据类型支持创建索引加速查询,包括倒排索引、Bloom Filter 索引以及内置的 ZoneMap 索引;
-
对于包含 Variant 数据类型的 Unique 模型表,支持灵活的部分列更新;
-
Variant 数据类型支持在存算分离模式上使用,并对其元数据存储进行了优化;
-
支持将 Variant 数据类型导出成 Parquet、CSV 等格式。
倒排索引自 2.0 版本开始被引入起,经历一年多的打磨,目前已具备较高的成熟度,在数百家企业的生产环境中长期运行。在 3.0 版本中,我们对倒排索引进行了多项优化:
-
通过锁并发等一系列的性能优化,在实时报表分析场景中 Apache Doris 在查询延迟和并发等关键指标已大幅超过 Elasticsearch;
-
在存算分离模式下优化了索引文件,减少远端存储的调用,大幅优化了索引查询延迟;
-
增加了对 Array 类型的支持,加速
array_contains查询; -
对短语查询系列
match_phrase_*功能进行增强,包括支持词距 slop、短语前缀匹配match_phrase_prefix等。