用途:Zarr 是 Python 库,用于以分块和压缩方式存储大规模 N 维数组,适合高效并行 I/O、云原生工作流,以及与 NumPy、Dask、Xarray 集成。
主要能力:支持创建、打开、读写数组,NumPy 风格切片与高级索引(vindex、oindex、blocks)、resize 与 append;可配置分块与 sharding,使用 Blosc、Gzip、Zstd 等压缩;存储后端包括本地文件系统、内存、ZIP,以及通过 s3fs、gcsfs 接入 S3、GCS;支持组与层级、h5py 风格 API、JSON 属性;提供线程与进程同步器,以及 consolidated metadata;可与 Dask 做惰性并行计算,与 Xarray 做带标签的多维数据集读写。
使用方式:安装可运行 uv pip install zarr,Python 需 3.11+;云存储需额外安装 s3fs 或 gcsfs。基本用法为通过 zarr.create_array、zarr.zeros、zarr.ones、zarr.full、zarr.array 或 zarr.open_array 创建或打开数组,再以索引方式读写。
适用场景:大规模科学计算、气候与地理空间数据、时间序列、超过内存的数据集、云上分块数组读写。
限制:分块形状需与访问模式匹配,否则性能差异明显;整个 chunk 或 shard 必须能放入内存;ZipStore 使用后必须关闭;并发写入跨 chunk 边界时才需同步;consolidated metadata 可能过时,不适合频繁更新或多写入场景。资料中未提供收费、价格与效果承诺等信息。