科學運算正從本機檔案轉向物件儲存,但以單體格式儲存的巨型陣列在遠端切片時相當不便。即使只讀取一小塊區域,仍可能得透過網路拖曳過多資料。

Zarr 的竅門在於保留 N 維具型別陣列的心智模型,同時改變儲存單位。資料存放在壓縮區塊中,每個區塊都有確定性的鍵,而中介資料則描述形狀、型別、區塊網格與編解碼器。

這讓該格式適合分散式運算:工作節點可以平行讀取區塊,不同的實作也能分別針對 Python、Rust、JavaScript、Java、C++ 及其他語言。OGC 後來將 Zarr V2.0 認可為多維陣列儲存的社群標準。

讓每個區塊都可定址

區塊鍵能自然對應到雲端物件儲存與可按位元組定址的儲存。

JSON 中介資料讓該格式可被檢視,也易於由獨立實作解析。

v3 規格將擴充點正式化,讓編解碼器與區塊網格得以演進,而無須中央改寫。

它解決了氣候、顯微鏡、遙測與模擬工作流程中真實的痛點。

對雲端資料而言,勝出的格式往往是能讓部分讀取變得便宜,同時又不迫使科學家放棄其陣列模型的那一種。

Zarr 成為可供分析之科學資料的常見基礎。該專案列出 10 種語言的實作,以及八個公開資料集,總計約 3.1 PB;OGC 的標準頁面將 Zarr 描述為 ND 陣列資料與中介資料的開源規格。

追溯依據

參考來源

  1. Zarr core specification Zarr specs documentation · zarr-specs.readthedocs.io
  2. Zarr Storage Specification Open Geospatial Consortium · ogc.org
  3. Zarr Implementations Zarr · zarr.dev
  4. Zarr Datasets Zarr · zarr.dev