热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >OpenAI 收购 Rockset,传统数据库新方向?

OpenAI 收购 Rockset,传统数据库新方向?

来源:互联网 更新时间:2026-08-13 14:16

近日,OpenAI 宣布收购 Rockset——一家主打实时分析、拥有顶尖数据索引与查询能力的数据库公司。消息一出,业内不少目光都聚焦到了这个产品上。 OpenAI 收购 Rockset,传统数据库新方向? 在此之前,我们对 Rockset 的技术白皮书做过仔细研究,今天就顺着这份材料,看看它在架构设计上到底有哪些值得关注的地方。 Rockset 是一家美国软件公司,成立于 2016 年,创始团队里有一群曾在 Facebook、雅虎、谷歌、甲骨文和 VMware 等公司打拼过的工程师,对大规模数据管理和分布式系统有着丰富的实战经验。其核心产品是一款基于云的实时分析数据库,目标是让用户能快速查询海量半结构化数据,同时省去烦琐的运维工作。整个平台采用无服务器、完全托管的模式,把配置管理、集群调度、反范式化和索引管理这些脏活累活统统接到自己手上。 ## 白皮书解读 ### 定位 Rockset 对自己的定位,一句话可以概括:“Rockset is the search and analytics database built for the cloud, with real-time indexing and full-featured SQL on JSON, time series, geospatial and vector data。” 里面重点划出的几个词是:分析、云、实时、SQL。它典型的应用方式也基本围绕这几个方向展开。 ### 数据模型 在数据组织上,Rockset 采用的是文档模型。传统关系型数据库要求用户提前定义好 schema,但遇到 JSON、A vro、Parquet 这类半结构化数据时,就显得有些笨拙。文档模型的好处是用户无需操心表结构的元数据——也就是所谓的“无模式”(schemaless),数据怎么变都不影响。 更重要的是,Rockset 不像其他文档数据库那样只能用专有的查询接口,它直接支持标准 SQL,连 join 都可以做,这在文档数据库里不算常见。 ### 云原生的架构 既然要充分利用云上的弹性,架构就必须做相应的调整。Rockset 的思路是: - 用共享存储(比如 S3)代替传统的“共享无”(shared-nothing)存储。共享存储的好处是让计算与存储真正解耦,每个组件都能独立扩缩容。 - 把持久性和性能分离开。传统数据库通常靠多副本来保证高可用,缺点很明显——机器浪费严重。Rockset 的做法是用更低成本的云对象存储来保证持久性,只在需要时增加副本用于查询,性价比高得多。 - 多级存储:热数据放在 SSD,冷数据丢进对象存储,按需调配。 ### RocksDB-Cloud RocksDB-Cloud 是 Rockset 的嵌入式持久化存储引擎,它的前身正是业界大名鼎鼎的 RocksDB。Rockset 的 CTO Dhruba 之前在 Facebook 就是 RocksDB 的早期工程师,所以改造起来可以说是轻车熟路。核心思路就是把 RocksDB“云化”——持续将数据库的数据和元数据自动复制到云存储。一旦某台机器宕机,系统会自动申请一个新的 EC2 实例,直接挂载之前的数据,继续运行。 具体工作流程是这样的: - 每次生成新的 SST 文件时,RocksDB-Cloud 会先上传到 S3 确保持久性。然后热存储层(通常是 SSD)再从 S3 抓取这些文件,用于提升查询性能。由于 SST 文件不可变,热存储层的角色就简化成了只负责发现和缓存新文件、淘汰旧文件。查询时,RocksDB-Cloud 从热存储层请求数据块,同时还会在计算节点缓存最近访问过的数据块,加速后续检索。 - 除了数据文件,RocksDB 还通过 MANIFEST 文件记录元数据信息,追踪当前数据库版本对应的数据文件。这些元数据文件体积很小、数量固定,只在生成新 SST 时才会更新,查询时基本不会读它们。它们既存储在本地的计算节点,也会备份到 S3,但不会放进热存储层。这么设计既简化了存储层的职责,也避免了性能瓶颈。 每个 RocksDB-Cloud 实例都支持复制,用的是“零拷贝克隆”技术——新集群可以快速复制已有数据库,两个实例并行运行,底层共享同一份数据文件。 ### 计算与存储分离 所有持久数据都放在云存储里的 SST 文件集合中,计算和存储由此可以分离开来。传统数据库里,合并(compaction)这类计算密集的任务通常只能在托管存储的服务器上运行。但 RocksDB-Cloud 的做法是,SST 文件一旦创建就不会再改,因此完全可以把合并任务卸载到无状态的服务器上处理,这些远程服务器还能根据系统负载自动扩容。 ### 计算与计算分离 计算-存储分离只是第一步,Rockset 还做到了计算-计算分离——多个独立计算单元可以同时对同一份共享数据进行读写,哪怕是刚刚写入的实时数据。 实现这个目标的关键,是把数据写入处理和查询处理彻底拆分成两个独立的模块。数据采集、转换、索引的代码路径与查询解析、优化、执行的代码路径完全隔离。Rockset 会把 RocksDB leader 中的 memtable 复制到所有 follower 实例的 memtable 中,这样每个 follower 都能在毫秒级获得新数据。更重要的是,这些计算密集的索引和合并工作只在 leader 上完成一次,避免了 follower 的重复计算。 ### 分片与复制 数据在 Rockset 中是横向切分的。每个文档都会被映射到一个抽象实体——“微分片”(microshard),映射关系通过文档 ID 的函数来计算。一组微分片组成一个 Rockset 分片。基于文档的分片方式,让系统水平扩展变得更容易。每个分片对应一个 RocksDB 实例,以字典排序的键值对形式保存索引数据。 把大型数据集拆分成多个分片后,查询时就可以利用分片级并行性,对每个分片做并行扫描,扫描不再是瓶颈。同一分片还可以创建多个副本,用来提升可用性。 ### 融合索引(Converged Indexing) Rockset 把所有数据都存进融合索引(Converged Index),这可以说是它最核心的设计之一。灵感来自搜索索引和列式索引。 以一个只有“name”字段的简化文档为例,Rockset 会为每个文档生成多种类型的键值对: - 行索引:键结构中包含“R”和文档 ID,把某个文档的所有字段值放在一起,适合快速点查。 - 列索引:键结构中包含“C”和列名,把某一列的所有值放在一起,适合批量扫描和压缩。 - 搜索索引:把值直接放进键中,文档 ID 作为后缀,比如搜索 name = Dhruba 时,通过前缀 S.name.Dhruba 就能快速定位。 查询时,Rockset 的优化器会根据查询类型自动选择最优的索引。比如一个没有过滤条件的 GROUP BY 查询,优化器会选择列存储,只用扫描列键的值,速度远快于行存储。而一个带等值过滤的查询,优化器会根据统计信息判定是否需要只取一小部分数据,如果判定为“部分命中”,就会选择搜索索引。 ### 实时索引数据 融合索引是实时索引,能与多个数据源保持同步,一秒钟内即可反映新数据。它是一个覆盖索引,意味着查询时不需要再回数据源,这对稳定高性能至关重要。 传统数据库维护实时索引通常很昂贵,但 Rockset 通过分层存储和分解的系统设计,实现了大规模下的高效索引。逻辑倒排索引与其作为键值存储的物理表示是分离的,这与传统搜索索引不同。空间效率方面,融合索引采用 delta 编码和字典编码的 zSTD 压缩。此外,还用了 10 位 Bloom 过滤器来快速查找键,可以减少 99% 的 I/O。 索引是完全可变的——每个键只指向文档的一个片段,因此更新文档中某个字段时,不会触发整个文档的重新索引。相比之下,传统搜索索引经常遭遇“重新索引风暴”,哪怕只是更新一个 100 字节的字段,也可能被迫重建整个文档。 ### 查询流程 Rockset 提供完整的 SQL 接口,支持过滤、聚合和 join。查询进入 API 服务器后,会被路由到聚合器。聚合器对来自数据叶的数据做低延迟聚合,包括列聚合、连接、排序或分组。和传统数据库类似,SQL 查询在 Rockset 中要经历规划、优化、执行三个阶段。聚合器负责规划查询,并把计划中的各个片段路由到持有对应分区的数据叶。结果返回到聚合器后,再送回 API 服务器。当某个查询可能让单个聚合器成为内存或计算瓶颈时,Rockset 会引入更多层次的聚合器来分摊负载。 ## 总结 云原生架构现在已经是分布式系统的主流思路,Rockset 在这个方向上走得相当扎实。借助廉价的对象存储,用户可以显著降低成本,同时轻松实现存算分离。不过,能像 Rockset 这样直接修改 RocksDB 源码,让它真正跑在云原生架构下的团队,其实并不算多。 说 RocksDB 正在“吃掉数据库世界”一点也不夸张。它极大地缩短了数据库存储引擎的开发周期,而 Rockset 把它搬上云端,无异于如虎添翼: - RocksDB 让开发者能用更短的时间构建更高性能、更可靠的存储引擎。 - Rockset 把 RocksDB 搬到云上,为用户带来了更灵活、可扩展、低成本的数据库解决方案。 Rockset 的核心源码已经在 GitHub 上开源,感兴趣的话可以去看看。 ## 思考 回到 OpenAI 收购这件事本身。在模型训练的不确定性和滞后性面前,业界常常用 RAG 来提升大模型的响应质量。RAG 的数据源存储方案大体分两种:专用向量数据库,或者在经典数据库上加向量索引插件。这两种路线目前都在快速发展。 OpenAI 收购 Rockset——一家以实时分析和查询能力见长的公司——似乎在传递一个信号:将结构化数据库能力与向量检索结合起来的技术路线,正在获得重量级玩家的认可。Rockset 能实时处理和索引海量数据,支持丰富的查询功能,这些特性恰好能为大语言模型提供强有力的记忆层支撑。 这种整合方式,让模型能够基于精准、实时更新的背景知识来生成回答,显著提升响应的准确性和相关性。所以,从 OpenAI 的选择来看,经典数据库加上向量检索能力的路线,可能会在未来的数据处理竞争中占据更大的优势。
关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

热门手游

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc