Sdílet prostřednictvím


Datové krychle v Microsoft Planetary Computer Pro

Jak je uvedeno v podporovaných datových typech, Microsoft Planety Computer Pro podporuje příjem dat, optimalizaci cloudu a vizualizaci souborů datových krychlí ve formátech NetCDF, HDF5, Zarr a GRIB2. I když jsou složité a historicky těžkopádné v místním úložišti, jsou tyto prostředky optimalizované pro cloudová prostředí pomocí planetárního počítače Pro, a navíc jim umožňují efektivní nástroje pro strukturování a ukládání multidimenzionálních dat, jako jsou satelitní snímky a modely klimatu.

Příjem datových krychlí

Soubory datových krychlí lze ingestovat do planetárního počítače Pro stejným způsobem jako jiné raster datové typy. Stejně jako u jiných formátů data musí být prostředky a přidružené položky katalogu Spatio Temporal Asset Catalog (STAC) nejprve uloženy ve službě Azure Blob Storage. Na rozdíl od jiných dvourozměrných rastrových prostředků ale při příjmu určitých formátů datových krychlí (NetCDF a HDF5) dochází k dalším krokům optimalizace cloudu.

Poznámka:

Data GRIB2 se ingestují stejným způsobem jako ostatní dvourozměrná rastrová data (bez dalších kroků optimalizace cloudu), protože jsou v podstatě kolekcí 2D rastrů s přidruženým indexovým souborem, který efektivně odkazuje na data v cloudových prostředích. Podobně zarr je už nativní cloudový formát, takže při příjmu dat neprobíhá žádná optimalizace.

Optimalizace datových krychlí v cloudu

Když se ingestuje položka STAC obsahující prostředky NetCDF nebo HDF5, prostředky jsou optimalizované pro cloud, nikoli transformací samotných dat, ale generováním referenčních souborů, které umožňují efektivnější přístup k datům.

Optimalizace cloudu prostřednictvím manifestů Kerchunk

Na rozdíl od 2D rastrových dat, která jsou transformována na Cloud Optimized Geotiffs (COGs), když jsou přenesena do Planetary Computer Pro, jsou datové krychle optimalizovány generováním referenčních souborů nebo manifesty Kerchunku. Kerchunk je opensourcová knihovna Pythonu, která vytváří tyto manifesty bloků dat nebo soubory JSON popisující strukturu datové krychle a jejích bloků dat pomocí klíčů bloků dat ve stylu Zarr, které mapují na rozsahy bajtů v původním souboru, kde se tyto bloky nacházejí. Po vygenerování jsou Kerchunk soubory uloženy ve blobovém úložišti společně s prostředky a položky STAC jsou obohaceny tak, aby zahrnovaly odkazy na tyto manifesty, a tím se optimalizoval přístup k datům v cloudových prostředích.

Vlastnosti položky STAC, které aktivují optimalizaci cloudu

V rámci položek STAC kolekce musí být splněny následující podmínky, aby byl prostředek datové krychle optimalizovaný pro cloud:

  • Formát aktiva je jedním z následujících typů:
    • application/netcdf
    • application/x-netcdf
    • application/x-hdf5
  • Prostředek má roles pole, které zahrnuje buď data nebo visual v jeho seznamu rolí.

Pokud jsou tyto podmínky splněné, vygeneruje se manifest Kerchunk v úložišti Blob vedle prostředku (assetid-kerchunk.json).

Poznámka:

Typapplication/x-hdf formátu aktiv často odpovídá aktivům HDF4. Příjem dat GeoCatalog v současné době nepodporuje vytváření virtuálních "kerchunk" manifestů pro HDF4 kvůli jeho zvýšené složitosti a několika variantám.

Rozšíření položek STAC

Pro každý optimalizovaný prostředek v rámci položky STAC jsou přidána následující pole:

  • msft:datacube_converted: true – Označuje, že bylo použito obohacení.
  • cube:dimensions – Slovník se seznamem dimenzí datové sady a jejich vlastností.
  • cube:variables – Slovník popisující proměnné datové sady a jejich vlastnosti.

Tyto proměnné by se měly použít pro konfiguraci vykreslování, aby se zajistilo, že vizualizace prostředků datové krychle v Průzkumníku čte a vykresluje data co nejefektivněji.

Výhody datových krychlí optimalizovaných pro cloud

Optimalizace cloudu datové krychle zlepšuje výkon přístupu k datům, zejména pro pracovní postupy vizualizace. Když je k dispozici manifest Kerchunk, umožňuje rychlejší přístup v porovnání s načtením celého souboru datové sady.

Microsoft Planetary Computer Pro Explorer a dílčí API používají přednostně manifest Kerchunk pro operace čtení dat, pokud tento manifest existuje ve stejném adresáři úložiště objektů blob jako původní prostředek.

Čtení dat pomocí blokovaného přístupu založeného na referencích je rychlejší, protože se vyhne čtení celého souboru do paměti.

Zakázání optimalizace datové krychle v cloudu

Pokud se rozhodnete, že nechcete pracovat s prostředky datových krychlí optimalizovaných pro cloud, zakažte optimalizaci cloudu odebráním data a visual ze seznamu prostředků roles ve formátu JSON položky STAC před příjmem dat.

Aktualizace importu dat a ingestion dat Zarr

Jak jsme už zmínili, Zarr je ze své podstaty nativní cloudový formát, takže při ingestování nedojde k žádné další optimalizaci a není nutná žádná úprava položek STAC. Pokud ale plánujete dynamicky aktualizovat prostředky Zarr a znovu ingestovat položky STAC pro práci s nejnovější verzí, musíte mít na paměti dvě metody aktualizace: Append a Sync.

Append

Pokud do místně uloženého úložiště Zarr přidáte nová data, ale chcete aktualizovat verzi uloženou v planetárním počítači Pro, musíte znovu použít položku STAC. Při opětovném ingestování této položky je výchozím chováním zkontrolovat prostředky pro všechna nová data a přidat je do dat uložených v cloudu. Před opětovným načtením položky STAC není nutná žádná úprava.

Synchronizace

Pokud odeberete data z místně uloženého úložiště Zarr, opětovné vytvoření stejné položky STAC nedovolí, aby cloudová verze odpovídala verzi na vašem počítači, protože funkce připojení hledá nová data, ale neupravuje se podle chybějících dat. Tady přichází do hry synchronizace . Úpravou položky STAC tak, aby zahrnovala parametr, který indikuje, že chcete synchronizovat stávající data s novými, a opětovným použitím této změněné položky STAC, jsou v Planetary Computer Pro k dispozici pouze nejaktuálnější data z úložiště Zarr. Změna položky STAC by měla vypadat takto:

{
    ...
    "assets": {
        "pr": {
            "href": "https://managedstorage.azure.com/collection-container/somestuff/pr.zarr",
            "msft:ingestion": {
              "directory": "sync"
            }
        }
    }
}