Descobrir dados

Neste guia, explicamos como ativar e usar a descoberta do Dataplex. A descoberta verifica e extrai metadados de dados em um data lake e os registra no Dataproc Metastore, BigQuery e Data Catalog para análise, pesquisa e exploração.

Visão geral

Para cada recurso do Dataplex com o Discovery ativado, o Dataplex 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 da partição.

Para dados não estruturados, como imagens e vídeos, a descoberta do Dataplex detecta e registra automaticamente grupos de arquivos que compartilham tipo de mídia como conjuntos de arquivos. Por exemplo, se gs://images/group1 tiver imagens GIF e gs://images/group2 contiver imagens JPEG, a descoberta do Dataplex detectará e registrará dois conjuntos de arquivos. Para dados estruturados, como Avro, o Discovery detecta arquivos somente quando eles estão localizados em pastas com 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 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 aceita os 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 e 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 recurso. É possível desativar a descoberta no nível da zona ou do recurso.

Ao criar uma zona ou um recurso, é possível optar por herdar as configurações de descoberta no nível da zona ou modificar as configurações de descoberta no nível do recurso.

Estas são 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: esta opção pode ser definida como uma programação predefinida, por exemplo, por hora ou 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 Como configurar programações de cron. Recomendado: programe a descoberta para que seja executada a cada hora ou com menos frequência.

  • Incluir ou excluir padrão: defina quais arquivos serão incluídos ou excluídos 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. 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 descoberta.

    • Para arquivos CSV, é possível fornecer qualquer um dos seguintes itens:

      • Delimitador: esse campo aceita um caractere, exceto \r e \n. Quando há mais de um caractere, apenas o primeiro da string é usado. Se não for fornecido, o Discovery usará uma vírgula como delimitador.

      • Número de linhas de cabeçalho: esse campo aceita o valor 0 ou 1. O valor padrão é 0. Quando o valor é 0, a descoberta realiza a inferência de cabeçalho. Se um cabeçalho for detectado, ela extrai nomes de colunas e redefine 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:esse campo aceita um valor booleano. Ele é definido 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, é possível fornecer qualquer um dos seguintes itens:

      • 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:esse campo aceita um valor booleano. Ele é definido 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, ele 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 é conhecido como um 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 para um banco de dados no metastore do Dataproc, em que as informações de metadados são disponibilizadas automaticamente.

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

Ver tabelas e conjuntos de arquivos descobertos

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

Abrir a Pesquisa

Para resultados de pesquisa mais precisos, use filtros específicos do Dataplex, como nomes de zona de data e lake e. Os 50 principais itens por atributo são mostrados na lista de filtros. Use a caixa de pesquisa para encontrar outros itens.

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 visualizar os detalhes correspondentes do registro 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 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

incluindo estas ações:

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

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

Esquema incompatível

incluindo estas ações:

  • Um esquema detectado pelo Discovery é incompatível com o esquema da tabela ativa na API de metadados no metastore do Dataproc. Os esquemas A e B são incompatíveis se:

    • 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 não 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

incluindo estas ações:

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

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

Dados ausentes

incluindo estas ações:

  • Na zona de dados selecionada, os dados de uma tabela ou conjunto de arquivos registrados não existem mais. Em outras palavras, uma tabela de zona selecionada ou um conjunto de arquivos foi descoberto e registrado, mas posteriormente os dados subjacentes foram excluídos. Para corrigir esse problema, reabasteça os dados ou exclua a entrada de metadados.

Resolver ações de descoberta

Os dados com ações são verificados pelas 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

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

  • Recurso ausente: o bucket ou conjunto de dados não foi encontrado correspondente a um recurso atual.

  • Recurso não autorizado: o Dataplex não tem permissões suficientes para executar 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 foram propagadas com êxito para os buckets ou conjuntos de dados subjacentes. Embora todas as outras ações estejam no nível do recurso, esse tipo de ação pode ser gerado no nível do lake, da zona e do recurso.

Esses tipos de ações são resolvidos automaticamente quando os problemas de configuração de segurança ou recursos subjacentes são corrigidos.

Perguntas frequentes

O que fazer se o esquema inferido pela descoberta estiver incorreto?

Se o esquema inferido for diferente do esperado para uma determinada tabela, modifique o esquema inferido atualizando os metadados com a API de metadados. Defina userManaged como true para que sua edição não seja substituída nas 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 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 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 a dividem em agrupamentos menores.

  • Há diferentes tipos de incompatibilidades de esquema no caminho raiz esperado da tabela, que a dividem em agrupamentos 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 formato consistente e 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, ocorrerá o seguinte:

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

Como faço para especificar nomes de tabelas?

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

O que acontecerá se eu criar tabelas manualmente no metastore do Dataproc ou no BigQuery?

Quando o Discovery está ativado para um determinado recurso, você não precisa registrar manualmente as entradas no metastore do Dataproc ou no BigQuery.

É possível definir manualmente o nome da tabela, o esquema e as definições de partição, enquanto desativa a descoberta do Dataplex. 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 estiver aparecendo no BigQuery?

Embora os metadados do Dataplex sejam todos registrados centralmente na API de metadados, apenas 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, você pode encontrar um marcador de compatibilidade do BigQuery que indica quais entidades foram publicadas no BigQuery e por quê.

A seguir