Este guia explica como ativar e usar a descoberta do Dataplex Universal Catalog. A descoberta verifica e extrai metadados de dados em um data lake e os registra no Metastore do Dataproc, no BigQuery e no Data Catalog (descontinuado) para análise, pesquisa e exploração.
Para mais informações sobre como usar a descoberta automática para extrair e catalogar dados do Cloud Storage que não estão anexados a um data lake, consulte Descobrir e catalogar dados do Cloud Storage.
Visão geral
Para cada recurso do Dataplex Universal Catalog com a descoberta ativada, o Dataplex Universal Catalog faz o seguinte:
- Verifica os dados associados ao recurso.
- Agrupa arquivos estruturados e semiestruturados em tabelas.
- Coleta metadados técnicos, como nome da tabela, esquema e definição de partição.
Para dados não estruturados, como imagens e vídeos, a descoberta do Dataplex Universal Catalog
detecta e registra automaticamente grupos de arquivos
que compartilham o tipo de mídia como conjuntos de arquivos. Por exemplo, se gs://images/group1
contiver imagens GIF e gs://images/group2
contiver imagens JPEG,
a descoberta do catálogo universal do Dataplex vai detectar e registrar dois
conjuntos de arquivos. Para dados estruturados, como Avro, o Discovery detecta arquivos somente se eles estiverem localizados em pastas que contêm o mesmo formato de dados e esquema.
As tabelas e os conjuntos de arquivos descobertos são registrados no Data Catalog para pesquisa e descoberta. As tabelas aparecem no metastore do Dataproc como tabelas no estilo Hive e no BigQuery como tabelas externas, para que os dados sejam disponibilizados automaticamente para análise.
O Discovery é compatível com os seguintes formatos de dados estruturados e semiestruturados:
- Parquet
- Avro
- ORC
- JSON (apenas o formato delimitado por nova linha)
- CSV (arquivos CSV com linhas de comentários não são aceitos)
A descoberta é compatível com o seguinte formato de compactação para dados estruturados e semiestruturados:
Compactação interna para estes formatos:
Compactação Exemplo de extensão de arquivo Formato aceito gzip .gz.parquet Parquet lz4 .lz4.parquet Parquet Snappy .snappy.parquet Parquet, ORC, Avro lzo .lzo.parquet Parquet, ORC Compactação externa para arquivos JSON e CSV:
- gzip
- bzip2
Configuração da descoberta
A descoberta é ativada por padrão quando você cria uma nova zona ou um recurso. É possível desativar a descoberta no nível da zona ou do recurso.
Ao criar uma zona ou um recurso, você pode herdar as configurações de descoberta no nível da zona ou substituir as configurações de descoberta no nível do recurso.
Confira abaixo as opções de configuração da descoberta disponíveis nos níveis de zona e recurso:
Ativar e desativar a descoberta
Programação de descoberta: essa opção pode ser definida como uma programação predefinida, por exemplo, por hora ou por dia, ou uma programação personalizada definida pelo formato cron. Os novos recursos são verificados quando são adicionados. Para mais informações, consulte Configurar programações do cron. Recomendado: programe a descoberta para ser executada a cada hora ou com menos frequência.
Padrão de inclusão ou exclusão: defina quais arquivos incluir ou excluir das verificações de descoberta usando padrões glob no caminho de inclusão ou exclusão. Por exemplo, se você quiser excluir
gs://test_bucket/foo/..
da descoberta, insira**/foo/*
como o caminho de exclusão. As aspas causam erros. Insira**/foo/*
em vez de"**/foo/*"
. Essa função só está disponível para recursos do Cloud Storage. Quando ambos os padrões de inclusão e exclusão existem ao mesmo tempo, os padrões de exclusão são aplicados primeiro.Especificações JSON ou CSV: permitem fornecer mais informações sobre dados semiestruturados, como CSV e JSON, para aumentar a precisão dos resultados da descoberta.
Para arquivos CSV, você pode fornecer qualquer uma das seguintes opções:
Delimitador: esse campo aceita um caractere, exceto
\r
e\n
. Se mais de um caractere for fornecido, apenas o primeiro caractere da string será usado. Se não for fornecido, a descoberta usará uma vírgula como delimitador.Número de linhas de cabeçalho:esse campo aceita o valor
0
ou1
. O valor padrão é0
. Quando o valor é0
, a Descoberta realiza a inferência de cabeçalho e, se um cabeçalho for detectado, ela extrai os nomes das colunas dele e redefine o valor para1
.Codificação:esse campo aceita nomes de codificação de string, como
UTF-8
,US-ASCII
ouISO-8859-1
. Se nada for especificado,UTF-8
será usado como padrão.Desativar inferência de tipo:esse campo aceita um valor booleano. Ela é definida como
false
por padrão. Para dados CSV, se você desativar a inferência de tipo, todas as colunas serão registradas como strings.
Para arquivos JSON, você pode fornecer qualquer uma das seguintes opções:
Codificação:esse campo aceita nomes de codificação de string, como
UTF-8
,US-ASCII
ouISO-8859-1
. Se nada for especificado,UTF-8
será usado como padrão.Desativar a inferência de tipo de dados:esse campo aceita um valor booleano. Ela é definida como
false
por padrão. Para dados JSON, se você desativar a inferência de tipo, todas as colunas serão registradas como tipos primitivos (string, número ou booleano).
Publicar metadados
Quando você cria uma zona de dados no data lake do Catálogo Universal do Dataplex, o Catálogo Universal do Dataplex cria um conjunto de dados do BigQuery no projeto que contém o data lake. O Dataplex Universal Catalog publica tabelas nesse conjunto de dados para tabelas descobertas nos buckets do Cloud Storage adicionados à zona de dados como recursos. O conjunto de dados é chamado de conjunto de dados de publicação de metadados correspondente à zona.
Cada zona de dados do Dataplex Universal Catalog é mapeada para um conjunto de dados no BigQuery ou um banco de dados no metastore do Dataproc, em que as informações de metadados são disponibilizadas automaticamente.
É possível editar metadados descobertos automaticamente, como nome da tabela ou esquema, usando a API Dataplex.
Ver tabelas e conjuntos de arquivos descobertos
É possível pesquisar tabelas e conjuntos de arquivos descobertos na visualização Pesquisar do Dataplex Universal Catalog no Google Cloud console.
Para resultados de pesquisa mais precisos, use filtros específicos do Dataplex Universal Catalog, como nomes de lake e zona de dados. Os 50 principais itens por atributo são mostrados na lista de filtros. Você pode encontrar outros itens usando a caixa de pesquisa.
Cada entrada contém metadados técnicos e operacionais detalhados.
Na página de detalhes da entrada, é possível consultar a tabela no BigQuery e conferir os detalhes de registro correspondentes do metastore do Dataproc.
Se uma tabela do Cloud Storage puder ser publicada no BigQuery como uma tabela externa, você verá o seguinte na visualização de detalhes da entrada:
- Referências de tabelas externas do BigQuery
- Um botão para Abrir no BigQuery e começar a analisar os dados no BigQuery
As entradas de metadados do Dataplex Universal Catalog são diretamente visíveis e pesquisáveis no Data Catalog. Para saber mais, consulte a Referência de pesquisa do Data Catalog.
Todas as entradas descobertas podem ser visualizadas pela API Dataplex.
Ações de descoberta
A descoberta gera as seguintes ações do administrador sempre que problemas relacionados a dados são detectados durante as verificações.
Formato de dados inválido
As ações incluem o seguinte:
Formato de dados inconsistente em uma tabela. Por exemplo, arquivos de formatos diferentes existem com o mesmo prefixo de tabela.
Formato de dados inválido em zonas selecionadas (dados não estão nos formatos Avro, Parquet ou ORC).
Esquema incompatível
As ações incluem o seguinte:
Um esquema detectado pela descoberta é incompatível com o esquema de tabela ativo na API de metadados do metastore do Dataproc. O esquema A e o esquema B são incompatíveis nos seguintes cenários:
A e B compartilham campos com o mesmo nome, mas com tipos de dados diferentes e incompatíveis. Por exemplo, string e número inteiro.
A e B não têm campos sobrepostos.
A e B têm pelo menos um campo não anulável que não foi encontrado no outro esquema.
Desvio de esquema em relação a um esquema gerenciado pelo usuário na zona selecionada.
Definição de partição inválida
As ações incluem o seguinte:
Nomeação inconsistente de partição. Por exemplo,
gs://sales_data/year=2020/month=10/day=01
egs://sales_data/year=2020/region=us
.Nomenclatura de partição que não é no estilo Hive na zona de dados selecionados. Por exemplo,
gs://sales_data/2020/10/01
em vez degs://sales_data/year=2020/month=10/day=01
.
Dados ausentes
As ações incluem o seguinte:
- Na zona de dados organizada, os dados subjacentes de uma tabela ou conjunto de arquivos registrado não existem mais. Em outras palavras, uma tabela de zona organizada ou um conjunto de arquivos foi descoberto e registrado, mas depois os dados subjacentes foram excluídos. Para corrigir esse problema, reabasteça os dados ou exclua a entrada de metadados.
Resolver ações do Discovery
Os dados com ações são verificados por verificações de descoberta subsequentes. Quando o problema que aciona a ação é corrigido, a ação é resolvida automaticamente pela próxima verificação de descoberta programada.
Outras ações de descoberta
Além das ações de descoberta anteriores, há três outros tipos de ações relacionadas ao status do recurso e às propagação de políticas de segurança no Dataplex Universal Catalog.
Recurso ausente: o bucket ou conjunto de dados subjacente não foi encontrado correspondente a um recurso existente.
Recurso não autorizado: o Dataplex Universal Catalog não tem permissões suficientes para realizar a descoberta ou aplicar políticas de segurança ao bucket ou conjunto de dados gerenciado por ele.
Problemas com a propagação da política de segurança: as políticas de segurança especificadas para um determinado lake, zona ou recurso não puderam ser propagadas aos buckets ou conjuntos de dados subjacentes. Enquanto todas as outras ações estão no nível do recurso, esse tipo de ação pode ser gerado no nível do lago, da zona e do recurso.
Esses tipos de ações são resolvidos automaticamente quando os problemas de configuração de segurança ou de recursos subjacentes são corrigidos.
Perguntas frequentes
O que devo fazer se o esquema inferido pela descoberta estiver incorreto?
Se o esquema inferido for diferente do esperado para uma determinada tabela, você poderá substituir o esquema inferido atualizando os metadados usando a API de metadados.
Defina userManaged
como true
para que sua edição não seja substituída em verificações de descoberta subsequentes.
Como faço para excluir arquivos de uma verificação de descoberta?
Por padrão, a Descoberta exclui determinados tipos de arquivos da verificação, incluindo:
_SUCCESS
_started
_committed
_metadata
,_METADATA
,_Metadata
_common_metadata
,_COMMON_METADATA
- Arquivos que começam com
README
oureadme
- Diretórios que começam com
base_
,delta_
,delete_delta_
,bucket_
e um número - Diretórios que começam com
.
É possível especificar outros padrões de inclusão ou exclusão usando a configuração de descoberta no nível da zona ou do recurso ou usando a API de metadados.
O que devo fazer se o agrupamento de tabelas detectado pela Descoberta for muito granular?
Se as tabelas detectadas pela descoberta estiverem em um nível mais granular em comparação com o caminho raiz da tabela (por exemplo, cada partição individual é registrada como uma tabela), pode haver vários motivos:
Há diferenças de formato, como uma combinação de arquivos Avro e Parquet, no caminho raiz da tabela esperado, que dividem a tabela em agrupamentos menores.
Há diferentes tipos de incompatibilidades de esquema no caminho raiz esperado da tabela, que dividem a tabela em agrupamentos menores.
Resolva esse problema de uma das seguintes maneiras:
Corrija as diferenças de formato ou esquema para que todos os arquivos no mesmo caminho raiz da tabela tenham um formato consistente e um esquema compatível.
Exclua arquivos heterogêneos usando a configuração de padrão de exclusão como parte da configuração de zona / recurso ou da API de metadados.
Depois de realizar uma das etapas corretivas, na próxima verificação de descoberta, o seguinte vai acontecer:
- As tabelas de nível inferior atuais são removidas automaticamente da API Dataplex, do BigQuery, do metastore do Dataproc e do Data Catalog.
- Em vez disso, uma nova tabela de nível superior com o caminho raiz esperado é criada.
Como especifico nomes de tabelas?
É possível especificar nomes de tabelas usando a API de metadados.
O que acontece se eu criar tabelas manualmente no metastore do Dataproc ou no BigQuery?
Quando a descoberta está ativada para um determinado recurso, não é necessário registrar entradas manualmente no metastore do Dataproc ou no BigQuery.
É possível definir manualmente o nome da tabela, o esquema e as definições de partição, desativando a descoberta do Dataplex Universal Catalog. Como alternativa, faça o seguinte:
- Crie uma tabela especificando apenas as informações necessárias, como o caminho raiz da tabela.
- Use o Dataplex Universal Catalog Discovery para preencher o restante dos metadados, como definições de esquema e partição.
- Mantenha os metadados atualizados.
O que devo fazer se minha tabela não aparecer no BigQuery?
Embora os metadados do Catálogo universal do Dataplex sejam registrados centralmente na API de metadados, somente as tabelas do Cloud Storage compatíveis com o BigQuery são publicadas no BigQuery como tabelas externas. Como parte dos detalhes da entrada da tabela na API de metadados, é possível encontrar um marcador de compatibilidade do BigQuery que indica quais entidades são publicadas no BigQuery e por quê.
Limitações
- As tabelas externas, incluindo as do BigLake, não são compatíveis com a descoberta. No entanto, as tabelas externas são ingeridas automaticamente no Dataplex Universal Catalog, e você pode pesquisar por elas no Dataplex Universal Catalog.
A seguir
- Saiba como trabalhar com metadados.