zarr
Zarr-Array-Stores (v2 und v3) mit SQL abfragen — xarray-konforme Datensätze als Tabellen lesen
Installation und Laden
INSTALL zarr FROM community;LOAD zarr;Beispiel
INSTALL zarr FROM community;LOAD zarr;
-- Read a local Zarr store as a tableSELECT time, lat, lon, temperatureFROM read_zarr('path/to/store.zarr')LIMIT 10;
-- Inspect and query a multiscale OME-Zarr bioimageSELECT name, dims, shapeFROM read_zarr_metadata('image.ome.zarr');
SELECT c, AVG("0") AS mean_intensityFROM read_zarr('image.ome.zarr', array_path = '0')GROUP BY c;Über zarr
Die Erweiterung duckdb-zarr stellt Zarr-Array-Stores als SQL-Tabellen bereit und folgt der xarray-Dimensionskonvention, wie sie in Klimawissenschaft, Geodaten und Bioimaging verwendet wird.
Funktionen
read_zarr(path)— alle Zeilen eines Single-Group-Zarr-Stores scannen.read_zarr(path, dims=['time','lat','lon'])— eine Dim-Gruppe aus einem Multi-Group-Store wählen (dimsist eine Liste von Dimensionsnamen).read_zarr_metadata(path)— Array-Namen, dtypes, Shapes und Rollen inspizieren.read_zarr_groups(path)— die verschiedenen Dimensionsgruppen eines Stores aufzählen.
Automatische Pfadumleitung
Jeder Pfad, der auf .zarr endet, wird automatisch an read_zarr geleitet:
SELECT * FROM 'era5.zarr' LIMIT 5;SELECT * FROM 'https://example.org/data.zarr' LIMIT 5;Unterstützte Formate
- Zarr v2 und v3
- Codecs: gzip, zstd, blosc, crc32c, sharding, transpose, bytes (big/little endian)
- CF-Konventionen: gepackte Ganzzahlen mit
scale_factor/add_offset, Null-Maskierung über_FillValue/missing_value - Lokales Dateisystem, HTTP/HTTPS, S3, GCS und Azure Blob Storage. Entfernte Stores müssen
konsolidierte Metadaten mitführen — ein Zarr-v2-Objekt
.zmetadataoder einen Zarr-v3-Blockconsolidated_metadata—, weil Objektspeicher keine Verzeichnisse listen können. S3-/GCS-/Azure-Anmeldedaten werden aus DuckDBs Secrets Manager gelesen —CREATE SECRET ... TYPE S3usw.
Bioimage und OME-Zarr
OME-Zarr-Bilder enthalten häufig mehrere Auflösungsstufen und verschachtelte Label-
Arrays. Nutzen Sie read_zarr_metadata, um store-relative Array-Pfade zu entdecken, und
übergeben Sie array_path, um eine Stufe oder ein Label-Bild zu wählen:
SELECT name, dims, shape, dtypeFROM read_zarr_metadata('image.ome.zarr');
SELECT c, AVG("0") AS mean_intensityFROM read_zarr('image.ome.zarr', array_path = '0')WHERE y BETWEEN 100 AND 199 AND x BETWEEN 200 AND 299GROUP BY c;
SELECT "labels/nuclei/0" AS label, COUNT(*) AS pixelsFROM read_zarr('image.ome.zarr', array_path = 'labels/nuclei/0')WHERE "labels/nuclei/0" > 0GROUP BY label;Hinzugefügte Funktionen
| function_name | function_type | description | comment | examples |
|---|---|---|---|---|
| read_zarr | table | NULL | NULL | |
| read_zarr_groups | table | NULL | NULL | |
| read_zarr_metadata | table | NULL | NULL |
Überladene Funktionen
Diese Erweiterung fügt keine Funktionsüberladungen hinzu.
Hinzugefügte Typen
Diese Erweiterung fügt keine Typen hinzu.
Hinzugefügte Einstellungen
Diese Erweiterung fügt keine Einstellungen hinzu.