Compartilhar via


Cubos de dados no Microsoft Planetary Computer Pro

Conforme mencionado nos Tipos de Dados Com Suporte, o Microsoft Planetary Computer Pro dá suporte à ingestão, otimização de nuvem e visualização de arquivos de cubo de dados nos formatos NetCDF, HDF5, Zarr e GRIB2. Embora complexos e historicamente complicados no armazenamento local, esses ativos são otimizados para ambientes de nuvem com o Planetry Computer Pro, capacitando-os ainda mais como ferramentas eficientes para estruturar e armazenar dados multidimensionais, como imagens de satélite e modelos climáticos.

Ingestão de cubos de dados

Os arquivos de cubo de dados podem ser ingeridos no Planetry Computer Pro da mesma forma que outros tipos de dados de raster. Assim como em outros formatos de data, os ativos e os itens associados do Spatio Temporal Asset Catalog (STAC) devem primeiro ser armazenados no Azure Blob Storage. Ao contrário de outros ativos bidimensionais de raster, no entanto, mais etapas de otimização de nuvem ocorrem após a ingestão de determinados formatos de cubo de dados (NetCDF e HDF5).

Observação

Dados GRIB2 são ingeridos da mesma forma que outros dados de raster bidimensionais (sem outras etapas de otimização de nuvem), pois são essencialmente uma coleção de rasters 2D com um arquivo de índice associado que faz referência aos dados com eficiência em ambientes de nuvem. Da mesma forma, o Zarr já é um formato nativo de nuvem, portanto, nenhuma otimização ocorre após a ingestão.

Otimização de nuvem de cubos de dados

Quando um item STAC que contém ativos NetCDF ou HDF5 é ingerido, os ativos são otimizados para a nuvem, não transformando os dados em si, mas sim por geração de arquivos de referência que permitem acesso a dados mais eficiente.

Otimização de nuvem por meio de manifestos Kerchunk

Ao contrário dos dados de raster 2D que são transformados em COGs (Cloud Optimized Geotiffs) quando ingeridos no Computador Planetário Pro, os ativos do cubo de dados são otimizados por geração de arquivos de referência ou manifestos Kerchunk. Kerchunk é uma biblioteca python de software livre que cria esses manifestos de partes ou arquivos JSON que descrevem a estrutura do cubo de dados e suas partes usando chaves de partes estilo Zarr que são mapeadas para os intervalos de bytes no arquivo original em que residem essas partes. Depois de gerados, os arquivos Kerchunk são armazenados no armazenamento de blobs junto com os ativos e os itens STAC são enriquecidos para incluir referências a esses manifestos, otimizando o acesso a dados para ambientes de nuvem.

Propriedades do item STAC que disparam otimização de nuvem

Dentro dos itens STAC da coleção, as seguintes condições devem ser verdadeiras para que um ativo de cubo de dados seja otimizado para a nuvem:

  • O formato do ativo é um dos seguintes tipos:
    • application/netcdf
    • application/x-netcdf
    • application/x-hdf5
  • O ativo tem um campo roles que inclui data ou visual dentro de sua lista de funções.

Se essas condições forem atendidas, um manifesto Kerchunk (assetid-kerchunk.json) será gerado no Blob Storage junto com o ativo.

Observação

O tipoapplication/x-hdf de formato de ativo geralmente corresponde a ativos HDF4. Atualmente, a ingestão de GeoCatalog não dá suporte à criação de manifestos Kerchunk virtuais para HDF4 devido à sua complexidade adicionada e várias variantes.

Enriquecimento de item STAC

Para cada ativo otimizado dentro do item STAC, os seguintes campos são adicionados:

  • msft:datacube_converted: true – Indica que o enriquecimento foi aplicado.
  • cube:dimensions – Um dicionário listando dimensões do conjunto de dados e suas propriedades.
  • cube:variables – um dicionário que descreve variáveis de conjunto de dados e suas propriedades.

Essas variáveis devem ser usadas nas configurações de renderização para garantir que a visualização dos ativos de cubo de dados no Explorer leia e renderize seus dados da maneira mais eficiente.

Benefícios dos cubos de dados otimizados para nuvem

A otimização da nuvem do cubo de dados melhora o desempenho de acesso a dados, especialmente para fluxos de trabalho de visualização. Quando um manifesto Kerchunk está presente, ele permite acesso mais rápido em comparação ao carregamento de todo o arquivo de conjunto de dados.

O Computador Planetário Pro da Microsoft Explorer e as APIs de bloco usam preferencialmente o manifesto Kerchunk para as operações de leitura de dados, se houver um no mesmo diretório de armazenamento de blobs que o ativo original.

A leitura de dados usando uma abordagem em partes baseada em referência é mais rápida porque evita a leitura de todo o arquivo na memória.

Desabilitando a otimização da nuvem do cubo de dados

Se você decidir que não deseja trabalhar com ativos de cubos de dados otimizados para a nuvem, desabilite a otimização para a nuvem removendo data e visual da lista de roles do ativo no JSON do item STAC antes da ingestão.

Ingestão de Zarr e atualizações de dados

Como mencionado anteriormente, o Zarr é inerentemente um formato nativo de nuvem, portanto, nenhuma otimização extra ocorre quando ingerida e nenhuma modificação de seus itens STAC é necessária. No entanto, se você planeja atualizar dinamicamente seus ativos Zarr e reingestar itens STAC para trabalhar com a versão mais recente, você precisa estar ciente de dois métodos de atualização: Acréscimo e Sincronização.

Append

Se você adicionar novos dados a um repositório Zarr armazenado localmente, mas quiser atualizar a versão armazenada no Planetary Computer Pro, será necessário reingestar o item STAC. Quando esse item é reingessado, o comportamento padrão é examinar os ativos para quaisquer novos dados e adicioná-los aos dados armazenados na nuvem. Nenhuma modificação no item STAC é necessária antes da reingesção.

Sincronizar

Se você remover dados de um repositório Zarr armazenado localmente, reingressar o mesmo item STAC não permitirá que a versão baseada em nuvem corresponda à versão em seu computador, pois a funcionalidade acrescentar procura novos dados, mas não se ajusta de acordo com os dados ausentes. É aí que a sincronização entra em jogo. Ao modificar o item STAC para incluir um parâmetro que indica a sincronização dos dados existentes com os novos, e ao reingerir esse item STAC modificado, somente os dados mais atualizados do repositório Zarr estão disponíveis no Planetary Computer Pro. A modificação no item STAC deve aparecer da seguinte maneira:

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