你每天早上打开BI工具等数据刷新,可能不知道后台正在跑第17个定时任务——把同一份数据从A仓库搬到B仓库,再拆成C格式。Dremio说这套玩法该进博物馆了。

这家成立了11年的数据平台公司,最近把"查询即服务"做成了三件事:一个能跨源跑SQL的联邦引擎、一套基于冰山(Iceberg)的湖仓架构,以及内置的智能代理层。他们的核心主张很直白:数据在哪,就在哪查,别搬了。

打开网易新闻 查看精彩图片

2013-2019:从Apache Drill到"零拷贝"执念

Dremio的故事始于Apache Drill项目。这个开源的分布式SQL引擎,最早想解决的是Hadoop生态里的即席查询难题——数据躺在HDFS里,分析师却得等MapReduce跑完才能拿到结果。

Drill的创新在于无模式查询(schema-free SQL):不用提前定义表结构,直接对JSON、Parquet、CSV等文件跑SQL。这对半结构化数据爆炸的时代很关键。

但创始团队很快意识到,性能优化只是表象。真正的痛点是数据移动本身

企业里的典型数据流是这样的:业务数据库→对象存储暂存→ETL清洗→数据仓库→BI提取层。每一步都在复制数据、消耗计算、制造延迟,还养出了一堆没人敢动的祖传脚本。

2015年Dremio公司成立,把Drill的技术遗产重构为一个更完整的商业平台。他们的赌注押在"Query, Don't Move"——查询,别搬运。

这个理念的技术底座是Apache Arrow。这是Dremio联合创始人Jacques Nadeau牵头创建的开源项目,定义了一种列式内存格式,让不同系统能零拷贝共享数据。传统做法里,数据从磁盘读到内存要序列化、反序列化多次;Arrow让这一切变成指针传递。

到2019年,Dremio的联邦查询引擎已经能对接S3、ADLS、HDFS、Postgres、MongoDB等数十种数据源。用户写一条SQL,引擎自动拆解成子查询,把过滤和聚合下推到源系统,只拉回必要数据,最后在内存里做关联。

但联邦查询有个历史难题:规模上去之后,跨源Join的性能断崖式下跌。Dremio的解法是把Arrow的高速执行、智能下推,加上后来引入的Iceberg元数据优化,打包成一套能" effortlessly scale"的架构——这是他们自己说的,意思是别家搞不定的扩展问题,他们能搞定。

2020-2022:All in Iceberg,押注开放湖仓

2020年是个转折点。Netflix开源的Apache Iceberg项目进入Apache孵化器,Dremio决定全力押注。

Iceberg是什么?简单说,它是给对象存储(S3这类)设计的表格式标准。没有它,你把Parquet文件往S3一扔,系统根本不知道这些文件是"一张表"的哪个分区、哪个版本。查询引擎得自己猜,或者靠Hive Metastore这种老古董来管。

Iceberg用快照隔离、隐藏分区、模式演进这些设计,让对象存储具备了接近数据库的语义能力:ACID事务、时间旅行查询、零拷贝Schema变更。

Dremio的判断是:数据仓库的专有格式(Snowflake的micro-partition、Redshift的列存储)是 Vendor Lock-in 的源头。企业一旦把数据灌进去,就再也搬不出来,查询性能还被单一引擎绑定。

Iceberg+Parquet的组合则完全开放。Parquet是列存文件格式的事实标准,Iceberg是表格式的新兴标准,两者都存成普通文件躺在你的S3桶里。今天用Dremio查,明天换Spark、Flink、Trino,数据原地不动。

2021年,Dremio把自家产品重新定位为"Lakehouse Platform"。这不是跟风Databricks的造词,而是有具体的技术投入:

他们开发了Autonomous Reflections——自动物化视图系统。传统BI里,数据工程师得手动建Cube、写调度任务、处理失效。Dremio让系统自己监控查询模式,自动决定在哪个列上预聚合、保留多久、何时刷新。

Reflections存成Iceberg表,元数据走Iceberg协议。这意味着预计算结果本身也是开放的,别的引擎也能读。

2022年,Dremio Cloud上线。这是托管服务,但架构设计很有意思:计算层完全Serverless,按查询付费;存储层就是客户的S3/ADLS,Dremio不碰数据所有权。

这个模式切中了2020年代企业的核心焦虑:云厂商的数据仓库越用越贵, egress费用(数据取回费)像黑洞,而且查询性能和数据位置深度绑定,想换个厂商得先完成史诗级迁移。

2023-2024:治理层开源,AI层内置

2023年,Dremio把Apache Polaris开源。这是一个Iceberg的目录服务(catalog),解决的是多引擎场景下的统一治理问题。

想象这个场景:你的数据湖用Iceberg管理,分析团队用Dremio、算法团队用Spark Streaming、实时看板用Flink。三个引擎各自去S3读数据,怎么保证权限一致?谁能在哪张表上做什么操作?

Polaris的定位是"中立、开放的治理层"。它提供集中式的角色权限控制(RBAC)、凭证分发(credential vending),以及跨引擎的策略执行。Dremio、Spark、Flink都通过REST API对接Polaris,拿到带签名的临时凭证,访问被授权的数据路径。

开源Polaris是个战略动作。Dremio想把自己嵌入更大的生态:哪怕你不用Dremio查数据,只要用Iceberg,就可能需要Polaris做治理。这是从"查询引擎"向"数据基础设施"跃迁的关键一步。

2024年的新叙事是Agentic AI。Dremio在产品里内置了AI代理层,功能分三块:

第一,自然语言转SQL。分析师用大白话描述需求,系统自动生成查询、解释执行计划、建议优化。

第二,数据发现。代理自动扫描元数据,推荐相关数据集,提示潜在的数据质量问题。

第三,自治运维。监控查询性能,自动建议创建或调整Reflections,甚至预测存储成本。

这里的"Agentic"是有讲究的。不是简单的Chatbot套壳,而是能调用工具、执行动作、反馈迭代的自主代理。比如发现某个查询反复超时,代理会分析执行计划,判断是缺少预聚合还是下推失效,然后建议创建特定维度的Reflection,或者提示用户调整查询写法。

技术架构的三层拆解

把Dremio的完整能力摊开,确实是三个相互咬合的层次:

联邦查询引擎是执行层。核心能力是SQL解析、查询优化、分布式执行。技术亮点包括:基于Arrow的向量化执行、C++实现的自定义算子、自适应的并行度调整。对多种数据源的对接不是简单的JDBC包装,而是深度下推——把过滤条件、聚合计算、甚至部分Join推到源系统,最小化数据移动。

Iceberg湖仓平台是存储层。Dremio不托管存储,但深度参与Iceberg生态:贡献代码、维护Polaris、推动标准演进。他们的赌注是,未来的数据架构以开放表格式为中心,而不是任何厂商的专有仓库。

Agentic AI层是交互层。降低使用门槛,提升运维效率。这里的差异化在于上下文深度——代理能访问查询历史、表统计信息、Reflection状态、甚至成本数据,做出的建议比通用大模型更接地。

三层之间的耦合点在于元数据。Iceberg的表快照、Polaris的权限策略、Reflections的预计算状态,都被统一索引,供查询优化器和AI代理共同消费。

性能故事的另一面

Dremio的性能宣传集中在几个数字:Reflections能让查询快10-100倍;Arrow的执行效率比Java-based引擎高一个数量级;联邦查询在百TB规模下仍保持交互式延迟。

但这些数字有条件。Reflections的有效性高度依赖查询模式的可预测性——如果用户每天问完全不同的问题,自动物化视图的命中率会很惨。联邦查询的性能则取决于源系统的配合度:下推能力弱的旧数据库,依然会成为瓶颈。

更现实的评估框架是总拥有成本。Dremio的定价模式(软件订阅+云资源) vs 云数据仓库的按需计费,在不同场景下各有优劣。但他们的核心卖点不是"更便宜",而是"更灵活"——数据不锁定,架构可演进,多云可迁移。

这也是2024年企业CTO们重新算账的背景。Snowflake、Databricks、BigQuery的账单增速超过业务增速,"数据重力"成为架构设计的核心约束。Dremio的开放路线提供了一种对冲:即便某天换掉查询引擎,数据还在你的S3里,格式是标准的Iceberg。

竞争格局中的位置

Dremio的直接竞品是Starburst(基于Trino的联邦查询)、Databricks(Lakehouse概念的提出者)、以及各大云厂商的联邦查询服务(Athena Federated Query、BigQuery Omni等)。

与Starburst相比,Dremio的差异在Iceberg深度和自动优化。Starburst更强调"任何数据、任何地点"的广泛连接,Dremio则押注"以Iceberg为中心"的架构收敛。

与Databricks相比,Dremio的定位更轻。Databricks是完整的数据+AI平台,从ETL到模型训练一站式;Dremio专注在查询和分析层,不做计算引擎(Spark)、不做机器学习框架。他们的合作姿态也更开放——Databricks用户完全可以用Dremio查Unity Catalog管理的Iceberg表。

与云厂商服务相比,Dremio的差异化是跨云一致性和避免锁定。AWS Athena能联邦查询RDS和S3,但深度优化只发生在自家服务之间;Dremio承诺在任何云、任何存储上的性能一致性。

11年的工程积累体现在细节:处理过多少边缘Case的SQL优化器、经历过多少生产环境考验的分布式执行、迭代过多少版本的Arrow内核。这些不是新玩家能快速复制的。

谁该认真看看Dremio

三类场景值得评估:

多云/混合云架构。数据分散在AWS S3、Azure ADLS、本地HDFS,需要统一的查询入口和治理策略。Dremio的联邦能力+Polaris治理层,比在每个云上各建一套数据仓库更可持续。

数据架构现代化。从传统数仓(Teradata、Oracle)向云原生迁移,但不想被单一云厂商绑定。Iceberg作为中间格式,Dremio作为查询层,提供了渐进式演进的路径。

成本敏感型分析负载。BI报表、即席查询、数据探索这类"读多写少"的场景,用Dremio+S3的成本结构,通常比全托管数据仓库低一个数量级——前提是能接受一定的性能调优工作。

不适合的场景也很明确:需要复杂事务处理的OLTP、超低延迟的实时分析(毫秒级)、或者已经深度投入Spark生态且满意度很高的团队。

最后一点实用建议:如果你正在评估,重点测试两个边界条件。一是联邦查询在真实数据规模下的性能——用你的数据源、你的SQL模式,别只看标准Benchmark。二是Reflections的自动化效果——观察一周,看命中率是否符合预期,调优建议是否可执行。

Dremio的11年,本质上是在解决一个老问题:数据孤岛。他们的解法不是造更大的仓库把数据搬进去,而是让查询能力流动起来,适配数据的分布现实。在AI重新点燃数据基础设施创新的2024年,这种"查询优先、开放优先"的架构哲学,正在获得更多架构师的认真考虑。