Dados do Discover

Este guia explica como ativar e usar a funcionalidade Discovery do Dataplex Universal Catalog. A deteção analisa e extrai metadados de dados num data lake e regista-os no Dataproc Metastore, BigQuery e Data Catalog (descontinuado) para análise, pesquisa e exploração.

Vista geral

Para cada recurso do Dataplex Universal Catalog com a deteção ativada, o Dataplex Universal Catalog faz o seguinte:

  • Analisa os dados associados ao recurso.
  • Agrupa ficheiros estruturados e semiestruturados em tabelas.
  • Recolhe metadados técnicos, como o nome da tabela, o esquema e a definição de partição.

Para dados não estruturados, como imagens e vídeos, a deteção do catálogo universal do Dataplex deteta e regista automaticamente grupos de ficheiros que partilham o tipo de suporte como conjuntos de ficheiros. Por exemplo, se gs://images/group1 contiver imagens GIF e gs://images/group2 contiver imagens JPEG, a deteção do catálogo universal do Dataplex deteta e regista dois conjuntos de ficheiros. Para dados estruturados, como o Avro, o Discovery deteta ficheiros apenas se estiverem localizados em pastas que contenham o mesmo formato de dados e esquema.

As tabelas e os conjuntos de ficheiros descobertos são registados no catálogo de dados para pesquisa e descoberta. As tabelas aparecem no Dataproc Metastore como tabelas no estilo Hive e no BigQuery como tabelas externas, para que os dados sejam disponibilizados automaticamente para análise.

O Discovery suporta os seguintes formatos de dados estruturados e semiestruturados:

O Discovery suporta o seguinte formato de compressão para dados estruturados e semiestruturados:

  • Compressão interna para estes formatos:

    Compressão Exemplo de extensão de ficheiro Formato suportado
    gzip .gz.parquet Parquet
    lz4 .lz4.parquet Parquet
    Snappy .snappy.parquet Parquet, ORC, Avro
    lzo .lzo.parquet Parquet, ORC
  • Compressão externa para ficheiros JSON e CSV:

    • gzip
    • bzip2

Configuração da descoberta

A descoberta está ativada por predefinição quando cria uma nova zona ou um novo recurso. Pode desativar o Discovery ao nível da zona ou do recurso.

Quando cria uma zona ou um recurso, pode optar por herdar as definições do Discovery ao nível da zona ou substituir as definições do Discovery ao nível do recurso.

Seguem-se as opções de configuração das campanhas Discovery disponíveis ao nível da zona e do recurso:

  • Discovery ativado e desativado

  • Agendamento de descoberta: esta opção pode ser definida para um agendamento predefinido, por exemplo, por hora ou diário, ou um agendamento personalizado definido pelo formato cron. Os novos recursos são analisados quando são adicionados. Para mais informações, consulte o artigo Configurar programações cron. Recomendado: agende a campanha Discovery para ser executada a cada hora ou com menos frequência.

  • Incluir ou excluir padrão: define que ficheiros incluir ou excluir das análises de deteção, usando padrões glob no caminho de inclusão ou exclusão. Por exemplo, se quiser excluir gs://test_bucket/foo/.. da descoberta, introduza **/foo/* como o caminho de exclusão. As aspas causam erros. Certifique-se de que introduz **/foo/* em vez de "**/foo/*".) Esta função só está disponível para recursos do Cloud Storage. Quando existem padrões de inclusão e exclusão ao mesmo tempo, os padrões de exclusão são aplicados primeiro.

  • Especificações JSON ou CSV: permitem-lhe fornecer informações adicionais acerca de dados semiestruturados, como CSV e JSON, para melhorar a precisão dos resultados da descoberta.

    • Para ficheiros CSV, pode fornecer qualquer um dos seguintes elementos:

      • Delimitador: este campo aceita um caráter, exceto \r e \n. Se forem fornecidos mais de um caráter, apenas é usado o primeiro caráter da string. Se não for indicado, o Discovery usa uma vírgula como delimitador.

      • Número de linhas de cabeçalho: este campo aceita o valor 0 ou 1. O valor predefinido é 0. Quando o valor é 0, o Discovery realiza a inferência de cabeçalhos e, se for detetado um cabeçalho, o Discovery extrai os nomes das colunas do cabeçalho e repõe o valor para 1.

      • Codificação: este campo aceita nomes de codificação de strings, como UTF-8, US-ASCII ou ISO-8859-1. Se não for especificado nada, UTF-8 é usado como predefinição.

      • Desativar inferência de tipo: este campo aceita um valor booleano. Por predefinição, está definida como false. Para dados CSV, se desativar a inferência de tipos, todas as colunas são registadas como strings.

    • Para ficheiros JSON, pode fornecer qualquer um dos seguintes elementos:

      • Codificação: este campo aceita nomes de codificação de strings, como UTF-8, US-ASCII ou ISO-8859-1. Se não for especificado nada, é usado UTF-8 como predefinição.

      • Desativar inferência do tipo de dados: este campo aceita um valor booleano. Por predefinição, está definida como false. Para dados JSON, se desativar a inferência de tipos, todas as colunas são registadas como os respetivos tipos primitivos (string, número ou booleano).

Publicar metadados

Quando cria uma zona de dados no seu lago do Dataplex Universal Catalog, o Dataplex Universal Catalog cria um conjunto de dados do BigQuery no projeto que contém o lago. O catálogo universal do Dataplex publica tabelas nesse conjunto de dados para tabelas descobertas nos contentores do Cloud Storage adicionados à zona de dados como recursos. O conjunto de dados é denominado conjunto de dados de publicação de metadados correspondente à zona.

Cada zona de dados do catálogo universal do Dataplex é mapeada para um conjunto de dados no BigQuery ou uma base de dados no Dataproc Metastore, onde as informações de metadados são disponibilizadas automaticamente.

Pode editar os metadados descobertos automaticamente, como o nome da tabela ou o esquema, através da API Dataplex.

Veja tabelas e conjuntos de ficheiros descobertos

Pode pesquisar tabelas e conjuntos de ficheiros descobertos na vista Pesquisa do catálogo universal do Dataplex na Google Cloud consola.

Abrir pesquisa

Para resultados da pesquisa mais precisos, use filtros específicos do catálogo universal do Dataplex, como nomes de lagos e zonas de dados. Os 50 principais itens por faceta são apresentados na lista de filtros. Pode encontrar itens adicionais através da caixa de pesquisa.

Cada entrada contém metadados técnicos e operacionais detalhados.

Na página de detalhes da entrada, pode consultar a tabela no BigQuery e ver os detalhes de registo correspondentes do Dataproc Metastore.

Se for possível publicar uma tabela do Cloud Storage no BigQuery como uma tabela externa, pode ver o seguinte na vista de detalhes da respetiva entrada:

  • Referências de tabelas externas do BigQuery
  • Um botão para Abrir no BigQuery para 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 catálogo de dados.

Pode ver todas as entradas descobertas através da API Dataplex.

Ações de descoberta

A descoberta aciona as seguintes ações de administrador sempre que são detetados problemas relacionados com dados durante as análises.

Formato de dados inválido

As ações incluem o seguinte:

  • Formato de dados inconsistente numa tabela. Por exemplo, existem ficheiros de formatos diferentes com o mesmo prefixo de tabela.

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

Esquema incompatível

As ações incluem o seguinte:

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

    • A e B partilham 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 se encontra no outro esquema.

  • Desvio do esquema em relação a um esquema gerido pelo utilizador na zona organizada.

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

As ações incluem o seguinte:

  • Nomenclatura de partições inconsistente. Por exemplo, gs://sales_data/year=2020/month=10/day=01 e gs://sales_data/year=2020/region=us.

  • Nomes de partições com estilo não Hive na zona de dados organizada. Por exemplo, gs://sales_data/2020/10/01 em vez de gs://sales_data/year=2020/month=10/day=01.

Dados em falta

As ações incluem o seguinte:

  • Na zona de dados organizada, os dados subjacentes de uma tabela registada ou de um conjunto de ficheiros já não existem. Por outras palavras, foi detetada e registada uma tabela ou um conjunto de ficheiros de zona organizado, mas, posteriormente, os respetivos dados subjacentes foram eliminados. Pode corrigir este problema repondo os dados ou eliminando a entrada de metadados.

Resolva ações de campanhas Discovery

Os dados com ações são verificados por análises de deteção subsequentes. Quando o problema que aciona a ação é corrigido, a ação é resolvida automaticamente pela próxima análise de deteção agendada.

Outras ações de descoberta

Além das ações de deteção anteriores, existem três outros tipos de ações relacionadas com o estado dos recursos e as propagações da política de segurança no catálogo universal do Dataplex.

  • Recurso em falta: não foi encontrado o conjunto de dados ou o contentor subjacente correspondente a um recurso existente.

  • Recurso não autorizado: o Dataplex Universal Catalog não tem autorizações suficientes para realizar a deteção ou aplicar políticas de segurança ao contentor ou ao conjunto de dados gerido pelo Dataplex Universal Catalog

  • Problemas com a propagação da política de segurança: não foi possível propagar com êxito as políticas de segurança especificadas para um determinado lake, zona ou recurso aos conjuntos de dados ou contentores subjacentes. Embora todas as outras ações sejam ao nível do recurso, este tipo de ação pode ser apresentado ao nível do lago, da zona e do recurso.

Estes tipos de ações são resolvidos automaticamente quando os problemas subjacentes de recursos ou de configuração de segurança 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, pode substituir o esquema inferido atualizando os metadados através da API de metadados. Certifique-se de que define userManaged como true para que a sua edição não seja substituída em análises de deteção subsequentes.

Como posso excluir ficheiros de uma análise de deteção?

Por predefinição, o Discovery exclui determinados tipos de ficheiros da análise, incluindo o seguinte:

  • _SUCCESS
  • _started
  • _committed
  • _metadata, _METADATA, _Metadata
  • _common_metadata, _COMMON_METADATA
  • Ficheiros que começam por README ou readme
  • Diretórios que começam por base_, delta_, delete_delta_, bucket_, seguidos de um número
  • Diretórios que começam com .

Pode especificar padrões de inclusão ou exclusão adicionais através da configuração de descoberta ao nível da zona ou do recurso, ou através da API de metadados.

O que devo fazer se o agrupamento de tabelas detetado pela descoberta for demasiado detalhado?

Se as tabelas detetadas pela deteção estiverem a um nível mais detalhado em comparação com o caminho raiz da tabela, por exemplo, cada partição individual está registada como uma tabela, pode haver vários motivos:

  • Existem diferenças de formato, como uma combinação de ficheiros Avro e Parquet, no caminho raiz da tabela esperado, que dividem a tabela em agrupamentos mais pequenos.

  • Existem diferentes tipos de incompatibilidades de esquemas no caminho raiz da tabela esperado, que dividem a tabela em agrupamentos mais pequenos.

Pode resolver este problema de uma das seguintes formas:

  • Corrija as diferenças de formato ou esquema para que todos os ficheiros no mesmo caminho raiz da tabela tenham um formato consistente e um esquema compatível.

  • Exclua ficheiros heterogéneos usando a configuração do padrão de exclusão como parte da configuração da zona / recurso ou da API de metadados.

Depois de tomar uma das medidas corretivas, na próxima análise de deteção, ocorre o seguinte:

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

Como posso especificar nomes de tabelas?

Pode especificar os nomes das tabelas através da API de metadados.

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

Quando a deteção está ativada para um determinado recurso, não precisa de registar manualmente entradas no Dataproc Metastore nem no BigQuery.

Pode definir manualmente o nome da tabela, o esquema e as definições de partição, enquanto desativa a deteção do catálogo universal do Dataplex. Em alternativa, faça o seguinte:

  1. Criar uma tabela especificando apenas as informações necessárias, como o caminho raiz da tabela.
  2. Use a descoberta do Dataplex Universal Catalog para preencher o resto dos metadados, como o esquema e as definições de partições.
  3. Mantenha os metadados atualizados.

O que devo fazer se a minha tabela não for apresentada no BigQuery?

Embora os metadados do catálogo universal do Dataplex estejam todos registados 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 das entradas de tabelas na API metadata, pode encontrar um marcador de compatibilidade do BigQuery que indica que entidades são publicadas no BigQuery e porquê.

Limitações

  • As tabelas externas, incluindo as tabelas externas do BigLake, não são suportadas pelo Discovery. No entanto, as tabelas externas são automaticamente carregadas no Dataplex Universal Catalog e, em alternativa, pode pesquisá-las no Dataplex Universal Catalog.

O que se segue?