Descobrir dados

Este guia explica como ativar e usar o Dataplex Discovery. O Discovery verifica e extrai metadados de um data lake e os registra no Metastore do Dataproc, no BigQuery e no Data Catalog para análise, pesquisa e exploração.

Visão geral

Para cada recurso do Dataplex com a descoberta ativada, o Dataplex faz o seguinte:

  • Faz a verificação dos dados associados ao recurso.
  • Agrupe arquivos estruturados e semiestruturados em tabelas.
  • Coleta metadados técnicos, como nome da tabela, esquema e definição da partição.

Para dados não estruturados, como imagens e vídeos, o Dataplex Discovery 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 imagens JPEG, o Dataplex Discovery detectará e registrará dois arquivos de conjunto. Para dados estruturados, como o Avro, o Discovery só detecta arquivos se eles estiverem localizados em pastas que contêm o mesmo formato e esquema de dados.

As tabelas e os conjuntos de arquivos descobertos são registrados no Data Catalog para pesquisa e descoberta. As tabelas aparecem no Dataproc Metastore como tabelas do tipo Hive e no BigQuery como tabelas externas, para que os dados sejam disponibilizados automaticamente para análise.

O Discovery oferece suporte aos seguintes formatos de dados estruturados e semiestruturados:

O Discovery oferece suporte ao 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 novo recurso. É possível desativar a Discovery 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 a seguir as opções de configuração da descoberta disponíveis nos níveis de zona e recurso:

  • Descoberta ativada e desativada

  • Programação de descoberta: essa opção pode ser definida como uma programação predefinida, por exemplo, de hora em hora ou diária, ou uma programação personalizada definida pelo formato cron. Os novos recursos são verificados quando são adicionados. Para mais informações, consulte Como configurar programações de cron. Recomendado: programe a Discovery para ser executada a cada hora ou menos.

  • Incluir ou excluir padrã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 detecção, 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 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 melhorar a precisão dos resultados da Discovery.

    • Para arquivos CSV, você pode fornecer qualquer um dos seguintes:

      • Delimitador: este 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, o Discovery vai usar uma vírgula como delimitador.

      • Número de linhas de cabeçalho:este campo aceita o valor 0 ou 1. O valor padrão é 0. Quando o valor é 0, o Discovery realiza a inferência de cabeçalho. Se um cabeçalho for detectado, o Discovery extrai os nomes das colunas do cabeçalho e redefinirá o valor como 1.

      • Codificação:este campo aceita nomes de codificação de string, como UTF-8, US-ASCII ou ISO-8859-1. Se nada for especificado, UTF-8 será usado como padrão.

      • Desativar inferência de tipo:este 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 um dos seguintes:

      • Codificação:este campo aceita nomes de codificação de string, como UTF-8, US-ASCII ou ISO-8859-1. Se nada for especificado, UTF-8 será usado como padrão.

      • Desativar a inferência de tipo de dados:este 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 lake do Dataplex, o Dataplex cria um conjunto de dados do BigQuery no projeto que contém o lake. O Dataplex 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 é mapeada para um conjunto de dados no BigQuery ou um banco de dados no Metastore do Dataproc, onde as informações de metadados são disponibilizadas automaticamente.

É possível editar os metadata descobertos automaticamente, como o nome da tabela ou o esquema, usando a API de metadados do Dataplex.

Conferir as tabelas e os conjuntos de arquivos descobertos

É possível pesquisar tabelas e conjuntos de arquivos descobertos na visualização Pesquisa do Dataplex no console do Google Cloud .

Pesquisa aberta

Para resultados de pesquisa mais precisos, use filtros específicos do Dataplex, como nomes de lake e zona de dados. Os 50 principais itens por faceta 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 Dataproc Metastore.

Se uma tabela do Cloud Storage puder ser publicada no BigQuery como uma tabela externa, você poderá conferir 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 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 na API de metadados do 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:

  • Formato de dados inconsistente em uma tabela. Por exemplo, arquivos de formatos diferentes com o mesmo prefixo de tabela.

  • Formato de dados inválido em zonas selecionadas (dados que não estão nos formatos Avro, Parquet ou ORC).

Esquema incompatível

As ações incluem:

  • Um esquema detectado pelo Discovery é incompatível com o esquema de tabela ativo na API de metadados no Metastore do Dataproc. Os esquemas A e B são incompatíveis nos seguintes cenários:

    • A e B compartilham campos com o mesmo nome, mas de 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 nulo que não foi encontrado no outro esquema.

  • Desvio de esquema em relação a um esquema gerenciado pelo usuário na zona de curadoria.

Definição de partição inválida

As ações incluem:

  • Nomeação de partição inconsistente. Por exemplo, gs://sales_data/year=2020/month=10/day=01 e gs://sales_data/year=2020/region=us.

  • Nomeação de partição que não é do estilo Hive na zona de dados selecionados. Por exemplo, gs://sales_data/2020/10/01 em vez de gs://sales_data/year=2020/month=10/day=01.

Dados ausentes

As ações incluem:

  • Na zona de dados selecionados, os dados subjacentes de uma tabela ou de um conjunto de arquivos registrados não existem mais. Em outras palavras, uma tabela de zona ou um conjunto de arquivos foi descoberto e registrado, mas os dados subjacentes foram excluídos. Para corrigir esse problema, recarregue 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, ela é resolvida automaticamente pela próxima verificação de descoberta programada.

Outras ações da Discovery

Além das ações de descoberta anteriores, há três outros tipos de ações relacionadas ao status do recurso e à propagação de políticas de segurança no Dataplex.

  • Recurso ausente: o bucket ou conjunto de dados subjacente não foi encontrado e corresponde a um recurso existente.

  • Recurso não autorizado: o Dataplex não tem permissões suficientes para realizar a descoberta ou aplicar políticas de segurança ao bucket ou conjunto de dados gerenciado pelo Dataplex.

  • 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 para os 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 recurso ou de configuração de segurança subjacentes são corrigidos.

Perguntas frequentes

O que devo fazer se o esquema inferido pelo Discovery 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 a edição não seja substituída em verificações posteriores do Discovery.

Como faço para excluir arquivos de uma verificação de descoberta?

Por padrão, a Discovery 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 ou readme
  • Diretórios que começam com base_, delta_, delete_delta_, bucket_, seguidos por 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 do Discovery no nível da zona ou do recurso ou a API de metadados.

O que devo fazer se o agrupamento de tabelas detectado pelo Discovery for muito detalhado?

Se as tabelas detectadas pelo Discovery estiverem em um nível mais granular em comparação com o caminho raiz da tabela, por exemplo, se cada partição individual for registrada como uma tabela, pode haver vários motivos:

  • Há diferenças de formato, como uma mistura de arquivos Avro e Parquet, no caminho raiz da tabela esperado, que divide a tabela em grupos menores.

  • Há diferentes tipos de incompatibilidades de esquema no caminho raiz da tabela esperada, que dividem a tabela em grupos menores.

É possível resolver 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 exclusão de padrões como parte da API de metadados ou da configuração de zona / recurso.

Depois de seguir uma das etapas corretivas, na próxima verificação de descoberta, o seguinte ocorre:

  • As tabelas de nível inferior atuais são removidas automaticamente da API de metadados do Dataplex, do BigQuery, do Dataproc Metastore e do Data Catalog.
  • Em vez disso, uma nova tabela de nível superior com o caminho raiz esperado é criada.

Como especificar os nomes das tabelas?

É possível especificar nomes de tabelas usando a API de metadados.

O que acontece se eu criar tabelas manualmente no Dataproc Metastore ou no BigQuery?

Quando a descoberta é ativada para um determinado recurso, não é necessário registrar entradas manualmente no Dataproc Metastore ou no BigQuery.

É possível definir manualmente o nome da tabela, o esquema e as definições de partição, além de desativar o Dataplex Discovery. Como alternativa, faça o seguinte:

  1. Crie uma tabela especificando apenas as informações necessárias, como o caminho raiz da tabela.
  2. Use o Dataplex Discovery para preencher o restante dos metadados, como definições de esquema e partição.
  3. Mantenha os metadados atualizados.

O que devo fazer se minha tabela não aparecer no BigQuery?

Embora os metadados do Dataplex sejam registrados centralmente na API de metadados, apenas as tabelas do Cloud Storage compatíveis com o BigQuery são publicadas como tabelas externas. Como parte dos detalhes da entrada de 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 o Discovery. No entanto, as tabelas externas são automaticamente incluídas no Dataplex Catalog, e você pode procurar por elas no Dataplex Catalog.

A seguir