Zarr can store arrays in cloud-based object storage such as s3 as chunked, compressed, N-dimensional arrays.
Open a single file:
path = f"s3://{bucket}/dataset.zarr"
s3_store = zarr.storage.FsspecStore.from_url(path)
ds = xr.open_zarr(store=s3_store, consolidated=True, chunks="auto")
Open multiple files as a single dataset in parallel (using dask) and combine along a dimension:
s3 = s3fs.S3FileSystem()
zarr_files = s3.glob(f"{bucket}/*.zarr")
ds = zr.open_mfdataset(
[f"s3://{file}" for file in zarr_files],
engine="zarr",
concat_dim="dim_to_concat_along",
combine="nested",
parallel=True,
)