新闻详情

新闻详情

首页 / 资讯中心 / 详情

S3 Table 免费开源:把 MinIO 收费功能打成开源

发布时间:2026/9/25 20:32:41来源:尧图网络
S3 Table 免费开源:把 MinIO 收费功能打成开源
一套自托管的数据湖组件往往比想象中多对象存储负责放 Parquet还得再单独跑一个 catalog 服务Hive Metastore、Glue、Nessie 或者 Polaris来管表的元数据。每多一个组件就多一份部署、鉴权、备份和升级的活。商业方案看到了这个痛点把它做成了增值项——MinIO 的 S3 TableIceberg Catalog只在付费的 AIStor 产品线上提供开源的 AGPL 社区版从 2025 年底进入维护模式这条能力不在其中。被锁在社区版的团队要么忍着多跑一个服务要么为这项能力额外买授权。过去两年这个问题的答案基本只有「自己再搭一套」一种它也是今年自托管圈子里被反复问到的同一个问题能不能不额外付费、也不额外部署就把目录层拿到手RustFS 给出的回答是把它做进存储内核Apache Iceberg 的 REST Catalog 以 Apache 2.0 内置进对象存储服务2026-09-10 官宣随 1.0.0 GA2026-09-16 发布提供没有「社区版没有、企业版才有」的分层。落到部署上是一个进程、一个端口9000同时讲 S3 和 Iceberg REST Catalog 两套语言。下面按官方文档把上手过程走一遍顺便把几个还没填平的坑记下来。它到底把什么塞进了存储Iceberg 客户端的工作方式分两面一面通过 REST Catalog 发现表、提交元数据变更另一面通过 S3 API 读写真实的表文件。RustFS 的做法是让这两个接口都跑在 S3 API 那个端口上。真正的 Parquet 数据文件还是由计算引擎Spark、DuckDB、PyIceberg经 S3 API 直写进桶里不经过任何中间层——典型的存算分离。元数据指针受一个保留前缀保护普通的 S3 操作改不动那个目录区所以你用aws s3 cp这类命令不会把数据湖写坏。提交快照走控制面目录层用 CAS 版本校验拒绝过期的并发提交、用幂等键消除重复提交保证多引擎并发写入的一致性不过事务范围目前只限单表。对已经熟悉 S3 的人最大的变化是你不再需要为了建一张 Iceberg 表去维护第二个服务。代价是存储层多了一层 catalog 语义下面会说到它现在的边界。从空桶到一张表下面这套命令直接来自官方 S3 Tables 文档对照 1.0.0 GA在本地localhost:9000跑通了。先设置端点与凭证exportRUSTFS_ENDPOINThttp://localhost:9000exportAWS_ACCESS_KEY_IDyour-access-keyexportAWS_SECRET_ACCESS_KEYyour-secret-keyexportAWS_DEFAULT_REGIONus-east-1建一个专用桶aws --endpoint-url$RUSTFS_ENDPOINTs3api create-bucket--bucketmy-bucket把它启用为表存储桶注意这是一个空请求体 SigV4 签名的调用签名服务名是s3curl--fail-with-body--silent--show-error\--aws-sigv4aws:amz:us-east-1:s3\--user$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY\--headerx-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\--requestPUT$RUSTFS_ENDPOINT/iceberg/v1/buckets/my-bucket返回 HTTP 200 且响应里enabled: true、catalog-type: iceberg-rest就成功了。之后接 Iceberg 客户端关键参数只有四项REST Catalog URIhttp://localhost:9000/iceberg客户端会自动在末尾补/v1warehousemy-bucket就是桶名不是 S3 URI也不是 AWS ARNREST 鉴权AWS SigV4签名服务名s3区域us-east-1S3 文件端点http://localhost:9000走路径式寻址一个容易踩的点即便用同一个账户REST 请求的签名和 S3 文件访问要分别配置。实际配置时如果只配了 S3 那头客户端会报 403补上 catalog 的 SigV4 才通。哪些客户端能直接用RustFS 维护了一份支持矩阵状态分几档Automated有可运行脚本覆盖、Manual/live harness有 pinned 输入和 CI 门禁但 live 跑默认不启、Documented有文档没自动化。我整理成一张表落到实操建议上想最快验证用DuckDB Iceberg 1.5.5或PyIceberg最稳这两个是 Automated单表增删改查、schema 演化、快照、并发写都有脚本覆盖。Spark 和 Trino 给了 live harnessSpark 的写兼容靠实际部署版本验证Trino 只声明了只读、不声明写兼容。StarRocks 目前只是外部 catalog 读路径的文档参考Documented, not automatedDatabend 给了 live harness但也只做表数据文件的 S3 读探测不声明 Iceberg REST 集成。端点层面/iceberg/v1是规范前缀/_iceberg/v1是 MinIO AIStor 风格的兼容别名两个都 Supported。必须说清的边界这条表能力在 1.0.0 中仍被官方文档标注为预览Preview——1.0.0 GA 的稳定性承诺针对的是核心对象存储引擎S3 API、桶/对象生命周期、纠删码、复制等S3 Tables 属于已内置、但仍处预览阶段的能力。下面几条都是官方明确写进文档的约束格式支持 Iceberg v1 和 v2默认 v2不支持暂存式建表staged create、删表时清除数据purge-on-drop、以及 Iceberg v3。不提供 SQL 执行引擎不提供多表原子事务不提供跨区域独立双活写入。不声明完整兼容 AWS S3 Tables 控制面。它实现的是开放的 Iceberg REST Catalog 协议“开源 S3 Table应该理解为免费 开放协议的 Iceberg 目录”不是 AWS S3 Tables 的平替克隆。元数据删除和后台维护默认关闭没有内置的定期维护调度器要靠显式操作触发。删除表只移除目录条目、保留底层对象——所以千万别对快照或其他元数据还引用的 S3 路径做递归删除。默认object目录后端会把目录状态持久化到 RustFS 自身如果你要从默认后端切到durable-strong必须按官方目录切换流程走预检和协调隔离写入方不能原地硬切。这些约束符合预览功能的定位意味着它目前更适合在隔离环境里验证可行性而不是直接上生产关键链路。和 MinIO 的同名能力怎么比把这件事说清楚得先厘清 MinIO 现在的两条产品线。MinIO Object Store 是开源那条线许可证 GNU AGPL v3但从 2025 年 12 月起进入维护模式不再接受新功能与 PR、不再提供 RPM/DEB/Docker 构建也就是基本不再演进。S3 Table 这条能力不在它身上。真正带 S3 Table / Iceberg Catalog 的是AIStor——一个与开源线分开发布的二进制走的是商业许可证。MinIO 官方给它定的单价是按容量计费公开口径约$0.02/GB/月。换句话说想在 MinIO 上用原生 Iceberg 目录得先进入商业授权这条线。RustFS 这边是把同一类能力以 Apache 2.0 内置进存储服务没有「社区版没有、企业版才有」的分层也不用为 catalog 能力单独付费。差异点主要落在授权模式上而不是「谁有这个功能」自托管团队如果只想少维护一个 catalog 组件、又不想为商业授权买单RustFS 这一档的门槛更低。但反过来MinIO 的 AIStor 在商业支持、合规承诺上更成体系且 Tables 这条线 GA 得更早2026-02——选型时别只看「功能清单里有这一行」要看你愿不愿意为支持买单、以及能不能接受 RustFS 这边的预览状态。如果你打算试照这个顺序来升级到1.0.0GA 或更高版本且固定版本标签别用latest进生产实验。单独建一个桶专门做表存储桶不要把普通桶的生命周期过期规则直接套上去——文档明确普通生命周期会跳过表桶但在现有桶上启用表模式会改变其过期执行方式。REST 和 S3 两端分别配 SigV4 签名区域统一us-east-1签名服务名都是s3。IAM 先按文档的最小权限配启用要admin:SetTableBucket、查状态要admin:GetTableBucket、命名空间和表操作对应admin:SetTableNamespace/admin:CreateTable/admin:GetTableMetadata/admin:CommitTable表文件读写还要单独的 S3 权限。维护操作删除表、清 orphan 对象默认关先想清楚保留引用再开别急着rm -rf。先拿 DuckDB 或 PyIceberg 在单机上跑通一张表的建、写、读、删再考虑往多引擎、多桶扩展。一句话收尾RustFS 把 Iceberg 目录收编进对象存储对想少部署一个组件的自托管数据湖来说是个实在的方向但它在 1.0.0 里仍是预览能力、且有上面那些不声明项。上生产前先按上面六步在隔离环境里验证一遍比直接信特性清单靠谱。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

显卡 显存 硬盘 内存 算力 CPU GPU名词区分 2026/9/25 21:44:10

显卡 显存 硬盘 内存 算力 CPU GPU名词区分

数据流向:硬盘>-内存>-显存一、核心名词定义 相互关系(面向模型训练 / 本地部署)先一句话总览:CPU:通用计算总管(适用于复杂的逻辑运算);GPU:并行计算加速器&…

阅读更多 →
23 种设计模式的通俗解释,虽然有点污 2026/9/25 21:43:37

23 种设计模式的通俗解释,虽然有点污

一、写在前面:设计模式到底在解决什么很多初学者第一次听说“设计模式”时,脑子里冒出的画面是厚厚的《GoF 设计模式》原书、满纸的 UML 类图和永远记不住的名字。但说实话,设计模式并不是什么高深莫测的咒语,它更像是程序员在长期…

阅读更多 →
GUI-Owl-1.5实测:多模态GUI智能体如何突破自动化脚本脆弱性 2026/9/25 21:43:37

GUI-Owl-1.5实测:多模态GUI智能体如何突破自动化脚本脆弱性

用了两周把 GUI-Owl-1.5 拉下来跑通,又把几个真实项目里的任务喂进去试了一遍,有些话想写出来。做 GUI 自动化这行当久了,最大的感受就是:脚本不脆弱才叫新闻。换台显示器分辨率,坐标全偏;UI 改个版式&…

阅读更多 →
Agent开发:观察与伴随型 Agent 的架构设计:剖析无限自旋死循环与宿主驱动契约陷阱 2026/9/25 21:43:36

Agent开发:观察与伴随型 Agent 的架构设计:剖析无限自旋死循环与宿主驱动契约陷阱

摘要:在多智能体系统(Multi-Agent Systems)中,伴随型 Agent(如记账员、备忘记录者、审计员等)被广泛用于旁路监听并整理长程记忆。然而,若对其与运行宿主(Host)之间的底层…

阅读更多 →
无人机分割数据集 | 反无人机 无人机分割 语义分割 小目标检测 Accurate Drone 目标检测 YOLO格式无人机目标的高精度像素级语义分割9115期 2026/9/25 21:43:29

无人机分割数据集 | 反无人机 无人机分割 语义分割 小目标检测 Accurate Drone 目标检测 YOLO格式无人机目标的高精度像素级语义分割9115期

小目标无人机分割数据集 | 反无人机 无人机分割 语义分割 小目标检测 Accurate Drone 目标检测 YOLO格式无人机目标的高精度像素级语义分割9115期 数据集概述 本数据集专注于无人机目标的高精度像素级语义分割,服务于无人机检测、低空安防及空中目标监测。数据应用…

阅读更多 →
DeskcommCRM实战:从客户管理到销售闭环的系统落地全解析 2026/9/25 21:43:09

DeskcommCRM实战:从客户管理到销售闭环的系统落地全解析

说实话,做了这么多年企业软件实施,我见过太多CRM项目死在同一个地方:系统上线了,销售不用,客服不用,最后变成一个纯给管理层汇报用的“数据花瓶”。原因也简单,多数CRM的设计逻辑是“让管理层看…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉