Faça a gestão dos metadados de lagos, zonas e recursos

Este guia descreve os metadados do Dataplex Universal Catalog para lagos, zonas e recursos, e como pode usar a API Dataplex para os gerir.

Vista geral

O Dataplex Universal Catalog analisa o seguinte:

  • Recursos de dados estruturados e semiestruturados em data lakes, para extrair metadados de tabelas em entidades de tabelas
  • Dados não estruturados, como imagens e textos, para extrair metadados de conjuntos de ficheiros em entidades de conjuntos de ficheiros

Pode usar a API Dataplex Universal Catalog Metadata para fazer o seguinte:

  • Ver, editar e eliminar metadados de tabelas e conjuntos de ficheiros
  • Crie os seus próprios metadados de entidade de tabela ou conjunto de ficheiros

Pode analisar os metadados do Dataplex Universal Catalog através do seguinte:

  • Catálogo de dados (descontinuado) para pesquisar e etiquetar
  • Dataproc Metastore e BigQuery para consultas de metadados de tabelas e tratamento de estatísticas

Dataplex API

Esta secção resume os recursos de lago, zona e ativos na API Dataplex e os recursos principais com eles.

API do plano de controlo

A API do plano de controlo do Dataplex Universal Catalog permite a criação e a gestão dos recursos de lago, zona e recurso.

  • Lake: Uma instância do serviço Dataplex Universal Catalog que permite gerir recursos de armazenamento em projetos numa organização.

  • Zona: Uma agrupamento lógico de recursos num lago. Use várias zonas num lake para organizar os dados com base na disponibilidade, na carga de trabalho ou na estrutura da organização.

  • Recursos: Recursos de armazenamento, com dados armazenados em contentores do Cloud Storage ou conjuntos de dados do BigQuery, que estão anexados a uma zona num lago.

API Metadata

Use a API Dataplex Universal Catalog Metadata para criar e gerir metadados em entidades e partições de tabelas e conjuntos de ficheiros. O Dataplex Universal Catalog analisa os recursos de dados, quer num lago de dados ou fornecidos por si, para criar entidades e partições. As entidades e as partições mantêm referências aos recursos associados e às localizações de armazenamento físico.

Conceitos-chave

Entidade de tabela:

Metadados para dados estruturados com esquemas bem definidos. As entidades de tabela são identificadas de forma exclusiva pelo ID da entidade e pela localização dos dados. Os metadados da entidade de tabela são consultáveis no BigQuery e no Dataproc Metastore:

  • Objetos do Cloud Storage: metadados dos objetos do Cloud Storage, que são acedidos através das APIs Cloud Storage.
  • Tabelas do BigQuery: metadados para tabelas do BigQuery, aos quais se acede através das APIs BigQuery.
Entidade Fileset:

Metadados sobre dados não estruturados, normalmente sem esquema. Os conjuntos de ficheiros são identificados de forma exclusiva pelo ID da entidade e pela localização dos dados. Cada conjunto de ficheiros tem um formato de dados.

Partições:

Metadados para um subconjunto de dados numa entidade de tabela ou conjunto de ficheiros, identificados por um conjunto de pares de chave/valor e uma localização de dados.

Experimente a API

Use as páginas de documentação de referência da API lakes.zones.entities e lakes.zones.partitions do catálogo universal do Dataplex para ver os parâmetros e os campos associados a cada API. Use o painel Experimentar esta API que acompanha a documentação de referência para cada método da API para fazer pedidos de API com diferentes parâmetros e campos. Pode criar, ver e enviar os seus pedidos sem ter de gerar credenciais e, em seguida, ver as respostas devolvidas pelo serviço.

As secções seguintes fornecem informações para ajudar a compreender e usar as APIs de metadados do catálogo universal do Dataplex.

Entidades

Listar entidades

Para limitar a lista de entidades devolvidas pelo serviço, adicione parâmetros de consulta filter ao URL do pedido list entities.

Obter entidade

Por predefinição, a resposta Get Entity contém metadados básicos da entidade. Para obter metadados de esquema adicionais, adicione o parâmetro de consulta view ao URL do pedido.

Detalhes de compatibilidade: embora os metadados do catálogo universal do Dataplex estejam registados centralmente na API de metadados, apenas os metadados da tabela de entidades compatíveis com o BigQuery e o Apache Hive Metastore são publicados no BigQuery e no Dataproc Metastore. A API Get Entity devolve uma mensagem CompatibilityStatus, que indica se os metadados da tabela são compatíveis com o BigQuery e o Hive Metastore e, caso contrário, o motivo da incompatibilidade.

Atualize a entidade

Use esta API para editar metadados de entidades, incluindo se os metadados de entidades vão ser geridos por si ou pelo catálogo universal do Dataplex.

  • Esta API faz uma substituição completa de todos os campos mutáveis Entity. Os seguintes campos de entidade são imutáveis e, se os especificar num pedido de atualização, são ignorados:
  • Especifique um valor para todos os campos de entidades mutáveis, incluindo todos os campos de esquema, mesmo que os valores não estejam a ser alterados.
  • Indique o campo etag. Pode obter o etag enviando primeiro um pedido entities.get, que devolve o etag da entidade na resposta.
  • Atualizar campos de esquema: pode atualizar o esquema da tabela descoberto pelo Dataplex Universal Catalog para melhorar a respetiva precisão:
    • Se o esquema for um conjunto de ficheiros, deixe todos os campos do esquema vazios.
    • Para definir um campo repetido, defina o mode como REPEATED. Para definir um campo struct, defina o type como RECORD.
    • Pode definir o campo userManaged do esquema para especificar se é o utilizador ou o catálogo universal do Dataplex que gere os metadados da tabela. A predefinição é Dataplex Universal Catalog gerido. Se userManaged estiver definido como verdadeiro, esta definição é incluída nas informações devolvidas por um pedido entities.get se EntityView estiver definido como SCHEMA ou FULL.
  • Atualizar campos de partição:
    • Para dados particionados de estilo não Hive, a deteção do catálogo universal do Dataplex gera automaticamente chaves de partição. Por exemplo, para o caminho de dados gs://root/2020/12/31, são geradas as chaves de partição p0, p1 e p2. Para tornar as consultas mais intuitivas, pode atualizar p0, p1 e p2 para year, month e day, respetivamente.
    • Se atualizar o estilo de partição para estilo HIVE, o campo de partição é imutável.
  • Atualizar outros campos de metadados: pode atualizar os campos mimeType, CompressionFormat, CsvOptions e JsonOptions gerados automaticamente para ajudar na deteção do catálogo universal do Dataplex. A deteção do Dataplex Universal Catalog vai usar novos valores na próxima execução.

Crie uma entidade

Use a API entities.create para criar entidades de metadados de tabelas ou conjuntos de ficheiros. Preencha os campos obrigatórios e opcionais relevantes ou deixe que o serviço de descoberta do catálogo universal do Dataplex preencha os campos opcionais.

Elimine a entidade

  • Indique o campo etag. Pode obter o etag enviando primeiro um pedido entities.get, que devolve o etag da entidade na resposta.

Se os dados subjacentes de uma tabela ou de um conjunto de ficheiros numa zona não processada forem eliminados, os metadados da tabela ou do conjunto de ficheiros são eliminados automaticamente na análise de deteção seguinte. Se os dados subjacentes de uma tabela numa zona organizada forem eliminados, os metadados da tabela não são eliminados em conformidade. Em vez disso, é comunicada uma ação de dados em falta. Para resolver este problema, elimine explicitamente a entidade de metadados da tabela através da API de metadados.

Partições

Listar partições

Para limitar a lista de partições devolvidas pelo serviço, adicione parâmetros de consulta filter ao URL do pedido list partitions.

Exemplos:

  • ?filter="Country=US AND State=CA AND City=Sunnyvale"
  • ?filter="year < 2000 AND month > 12 AND Date > 10"

Get partition

Para obter uma partição, tem de concluir o URL do pedido anexando os valores da chave de partição ao final do URL, formatados para leitura como partitions/value1/value2/…./value10.

Exemplo: se uma partição tiver valores, {Country=US, State=CA, City=Sunnyvale}, o URL do pedido GET deve terminar com /partitions/US/CA/Sunnyvale.

Importante: os valores de URL anexados têm de ser duplamente codificados. Por exemplo, url_encode(url_encode(value)) pode ser usado para codificar "US:CA/CA#Sunnyvale" de modo que o URL do pedido termine com /partitions/US%253ACA/CA%2523Sunnyvale. O campo de nome na resposta mantém o formato codificado.

Crie uma partição

Para criar uma partição personalizada para a sua origem de dados, use a API partitions.create. Especifique o campo location obrigatório com um caminho do Cloud Storage.

Elimine a partição

Conclua o URL do pedido anexando valores de chave de partição ao final do URL do pedido, formatados para leitura como partitions/value1/value2/…./value10.

Exemplo: se uma partição tiver valores, {Country=US, State=CA, City=Sunnyvale}, o URL do pedido deve terminar com /partitions/US/CA/Sunnyvale.

Importante: os valores de URL anexados têm de estar em conformidade com o RFC-1034 ou têm de ser codificados duas vezes, por exemplo, US:/CA#/Sunnyvale como US%3A/CA%3A/Sunnyvale.

O que se segue?