Este guia descreve os metadados do Catálogo Universal do Dataplex para data lakes, zonas e recursos, e como usar as APIs do Catálogo Universal do Dataplex para gerenciá-los.
Visão geral
O Dataplex Universal Catalog verifica o seguinte:
- Ativos 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 arquivos em entidades de conjuntos de arquivos
É possível usar a API de metadados do Dataplex Universal Catalog para fazer o seguinte:
- Ver, editar e excluir metadados de entidades de tabela e conjunto de arquivos
- Criar seus próprios metadados de entidade de tabela ou conjunto de arquivos
É possível analisar os metadados do Dataplex Universal Catalog usando o seguinte:
- Data Catalog (descontinuado) para pesquisa e inclusão de tags
- Dataproc Metastore e BigQuery para consultas de metadados de tabelas e processamento de análises
APIs do Dataplex Universal Catalog
Esta seção resume as APIs do Dataplex Universal Catalog e os principais recursos com elas.
API do plano de controle
A API do plano de controle do Dataplex Universal Catalog permite a criação e o gerenciamento dos recursos de data lake, zona e recurso.
Lake: uma instância do serviço Dataplex Universal Catalog que permite gerenciar recursos de armazenamento em projetos dentro de uma organização.
Zona: Um agrupamento lógico de recursos em um lake. Use várias zonas em um data lake para organizar os dados com base na prontidão, na carga de trabalho ou na estrutura da organização.
Recursos: recursos de armazenamento, com dados armazenados em buckets do Cloud Storage ou conjuntos de dados do BigQuery, que são anexados a uma zona em um lake.
API Metadata
Use a API de metadados do Dataplex Universal Catalog para criar e gerenciar metadados em entidades e partições de tabelas e conjuntos de arquivos. O Dataplex Universal Catalog verifica recursos de dados, em um data lake ou fornecidos por você, para criar entidades e partições. As entidades e partições mantêm referências a recursos associados e locais de armazenamento físico.
Principais conceitos
- 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 podem ser consultados no BigQuery e no metastore do Dataproc:
- Objetos do Cloud Storage:metadados de objetos do Cloud Storage, que são acessados pelas APIs do Cloud Storage.
- Tabelas do BigQuery:metadados de tabelas do BigQuery, que são acessados pelas APIs do BigQuery.
- Entidade Fileset:
Metadados sobre dados não estruturados, geralmente sem esquema. Os conjuntos de arquivos são identificados de forma exclusiva pelo ID da entidade e pelo local dos dados. Cada conjunto de arquivos tem um formato de dados.
- Partições:
Metadados de um subconjunto de dados em uma tabela ou entidade de conjunto de arquivos, identificados por um conjunto de pares de chave-valor e um local de dados.
Teste 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 conferir os parâmetros e campos associados a cada API. Use o painel Testar esta API que acompanha a documentação de referência de cada método de API para fazer solicitações de API usando diferentes parâmetros e campos. É possível criar, visualizar e enviar solicitações sem precisar gerar credenciais e, em seguida, conferir as respostas retornadas pelo serviço.
As seções a seguir fornecem informações para ajudar você a entender e usar as APIs de metadados do Dataplex Universal Catalog.
Entidades
Listar entidades
Para limitar a lista de entidades retornadas pelo serviço, adicione parâmetros de consulta filter ao URL de solicitação list entities
.
Acessar entidade
Por padrão, a resposta Get Entity
contém metadados básicos da entidade. Para recuperar outros metadados de esquema, adicione o parâmetro de consulta view ao URL da solicitação.
Detalhes da compatibilidade:embora os metadados do catálogo universal do Dataplex sejam registrados centralmente na API de metadados, apenas os metadados da tabela de entidades compatíveis com o BigQuery e o metastore do Apache Hive são publicados no BigQuery e no metastore do Dataproc.
A API Get Entity
retorna uma mensagem CompatibilityStatus
, que indica se os metadados da tabela são compatíveis com o BigQuery e o Hive Metastore e, se não forem, o motivo da incompatibilidade.
Atualizar entidade
Use essa API para editar metadados de entidades, incluindo se você ou o Dataplex Universal Catalog vai gerenciar os metadados de entidades.
- Essa API faz uma substituição completa de todos os campos mutáveis da entidade. Os seguintes campos de entidade são imutáveis e, se você os especificar em uma solicitação de atualização, eles serão ignorados:
- Especifique um valor para todos os campos mutáveis da entidade, incluindo todos os campos do esquema, mesmo que os valores não estejam sendo alterados.
- Forneça o campo
etag. Para conseguir a ETag, primeiro envie uma solicitação entities.get, que retorna o
etag
da entidade na resposta. - Atualizar campos de esquema:é possível atualizar o esquema da tabela descoberto pelo
Catálogo Universal do Dataplex para melhorar a precisão:
- Se o esquema for um conjunto de arquivos, deixe todos os campos de esquema vazios.
- Para definir um campo repetido, defina o modo como
REPEATED
. Para definir um campo de estrutura, defina o tipo comoRECORD
. - É possível definir o campo
userManaged
do esquema para especificar se você ou o Dataplex Universal Catalog gerencia os metadados da tabela. A configuração padrão é o Dataplex Universal Catalog gerenciado. SeuserManaged
for definido como verdadeiro, essa configuração será incluída nas informações retornadas de uma solicitaçãoentities.get
se EntityView for definido comoSCHEMA
ouFULL
.
- Atualizando campos de partição:
- Para dados particionados que não são do estilo Hive, a descoberta do Dataplex Universal Catalog
gera automaticamente chaves de partição. Por exemplo, para o caminho de dados
gs://root/2020/12/31
, as chaves de partiçãop0
,p1
ep2
são geradas. Para tornar as consultas mais intuitivas, atualizep0
,p1
ep2
parayear
,month
eday
, respectivamente. - Se você atualizar o estilo de partição para estilo do HIVE, o campo de partição será imutável.
- Para dados particionados que não são do estilo Hive, a descoberta do Dataplex Universal Catalog
gera automaticamente chaves de partição. Por exemplo, para o caminho de dados
- Atualizar outros campos de metadados:é possível atualizar os campos mimeType, CompressionFormat, CsvOptions e JsonOptions gerados automaticamente para ajudar na descoberta do catálogo universal do Dataplex. A descoberta do Dataplex Universal Catalog usará novos valores na próxima execução.
Criar entidade
Use a API entities.create
para criar entidades de metadados de tabela ou conjunto de arquivos.
Preencha os campos obrigatórios e opcionais relevantes ou deixe que o serviço de descoberta do Dataplex Universal Catalog preencha os campos opcionais.
Excluir entidade
- Forneça o campo
etag. Para conseguir a ETag, primeiro envie uma solicitação entities.get, que retorna o
etag
da entidade na resposta.
Se os dados de uma tabela ou um conjunto de arquivos em uma zona bruta forem excluídos, os metadados da tabela ou do conjunto de arquivos serão excluídos automaticamente na próxima verificação de descoberta. Se os dados de uma tabela em uma zona organizada forem excluídos, os metadados da tabela não serão excluídos da mesma forma. Em vez disso, uma ação de dados ausente será informada. Para resolver esse problema, exclua explicitamente a entidade de metadados da tabela usando a API de metadados.
Partições
Listar partições
Para limitar a lista de partições retornadas pelo serviço, adicione parâmetros de consulta filter ao URL de solicitação list partitions
.
Exemplos:
?filter="Country=US AND State=CA AND City=Sunnyvale"
?filter="year < 2000 AND month > 12 AND Date > 10"
Receber partição
Para receber uma partição, conclua o URL da solicitação anexando os valores da chave de partição ao final do URL, formatados para serem lidos como partitions/value1/value2/…./value10
.
Por exemplo, se uma partição tiver valores, {Country=US, State=CA, City=Sunnyvale}
, o URL da solicitação GET vai terminar com /partitions/US/CA/Sunnyvale
.
Importante:os valores de URL anexados precisam ser codificados duas vezes. Por exemplo, url_encode(url_encode(value))
pode ser usado para codificar "US:CA/CA#Sunnyvale" para que o URL da solicitação termine com /partitions/US%253ACA/CA%2523Sunnyvale
. O campo "name" na resposta mantém o formato codificado.
Criar partição
Para criar uma partição personalizada para sua fonte de dados, use a API partitions.create
. Especifique o campo obrigatório location com um caminho do Cloud Storage.
Excluir partição
Conclua o URL da solicitação anexando os valores da chave de partição ao final do URL, formatado para ser lido como partitions/value1/value2/…./value10
.
Por exemplo, se uma partição tiver valores, {Country=US, State=CA, City=Sunnyvale}
,
o URL da solicitação vai terminar com /partitions/US/CA/Sunnyvale
.
Importante:os valores de URL anexados precisam estar em conformidade com a RFC-1034 ou ser codificados duas vezes, por exemplo, US:/CA#/Sunnyvale
como US%3A/CA%3A/Sunnyvale
.
A seguir
- Saiba mais sobre como acessar metadados no Apache Spark.