用途:Zarr Python 用于存储大型 N 维数组,通过分块与压缩实现高效并行 I/O 和云原生工作流,并与 NumPy、Dask、Xarray 集成,面向大规模科学计算。
主要能力:支持创建、打开、读写、调整大小和追加数组,提供 NumPy 风格索引及 vindex、oindex、blocks 等高级索引;支持分块策略与 sharding,可将大量小分块合并为更大存储对象;支持 Blosc、Gzip、Zstd 等压缩编解码器;支持本地文件系统、内存、ZIP、S3、GCS 等存储后端;支持组与层级结构、h5py 兼容 API、JSON 属性元数据;提供线程与进程同步器,以及合并元数据以降低云存储延迟。
使用方式:安装命令为 uv pip install zarr,需 Python 3.11+;云存储需额外安装 uv pip install s3fs 或 uv pip install gcsfs。基本用法是调用 zarr.create_array、zarr.zeros、zarr.ones、zarr.full、zarr.array 等创建数组,用 zarr.open_array 或 zarr.open 打开,通过切片读写数据。云存储可结合 s3fs.S3Map 或 gcsfs.GCSMap,并可用 zarr.consolidate_metadata 与 zarr.open_consolidated 优化元数据读取。
适用场景:适合气候、地理空间等大规模科学数据,时间序列追加、大矩阵运算、云原生数据管道,以及需要超出内存的并行计算场景。
限制:分块大小与形状显著影响性能,建议每块约 1-10 MB 并匹配访问模式;整个分块或 shard 在压缩写入时需能放入内存;ZipStore 使用后必须关闭;合并元数据在数据频繁更新时可能过期,不适合多写入者场景;并发写入跨分块边界时需要同步器。具体收费、价格与平台支持情况暂未提供。