Descobrir e catalogar dados do Cloud Storage

Este documento explica como usar a descoberta automática do Catálogo Universal do Dataplex, um recurso do BigQuery que permite verificar dados em buckets do Cloud Storage para extrair e catalogar metadados. Como parte da verificação de descoberta, a descoberta automática cria tabelas externas ou do BigLake para dados estruturados e tabelas de objetos para dados não estruturados. Esses dados centralizados facilitam insights, segurança e governança de dados com tecnologia de IA.

Para usar a descoberta automática de dados do Cloud Storage, crie e execute uma verificação de descoberta.

Visão geral da verificação de descoberta

Uma verificação de descoberta faz o seguinte:

  • Verifica os dados no bucket ou caminho do Cloud Storage.
  • Agrupa dados estruturados e semiestruturados em tabelas.
  • Coleta metadados, como nome da tabela, esquema e definição de partição.
  • Cria e atualiza tabelas do BigLake, externas ou de objetos no BigQuery usando o esquema e a definição de partição.

Para dados não estruturados, como imagens e vídeos, a verificação de descoberta detecta e registra grupos de arquivos que compartilham o mesmo tipo de mídia das tabelas de objetos do BigLake. Por exemplo, se gs://images/group1 contiver imagens GIF e gs://images/group2 contiver imagens JPEG, a verificação de descoberta vai detectar e registrar dois conjuntos de arquivos.

Para dados estruturados, como Avro, a verificação de descoberta registra grupos de arquivos como tabelas externas do BigLake e detecta arquivos apenas se eles estiverem localizados em pastas que contêm o mesmo formato de dados e esquema compatível.

A verificação de descoberta é compatível com os seguintes formatos de dados estruturados e semiestruturados:

A verificação de descoberta é compatível com os seguintes formatos de compactação para dados estruturados e semiestruturados:

  • Compactação interna para os seguintes 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

Para saber o limite de tabelas que uma verificação de descoberta pode processar, consulte Cotas e limites.

As tabelas descobertas são registradas no BigQuery como tabelas externas do BigLake, tabelas de objetos do BigLake ou tabelas externas. Isso disponibiliza os dados para análise no BigQuery. O armazenamento em cache de metadados para tabelas do BigLake e de objetos também está ativado. Todas as tabelas do BigLake são ingeridas automaticamente no Dataplex Universal Catalog para pesquisa e descoberta.

Antes de começar

Enable the Dataplex API.

Enable the API

Papéis necessários para a conta de serviço do Dataplex Universal Catalog

Antes de começar, atribua as permissões do IAM à conta de serviço do Dataplex Universal Catalog no seu projeto.

  service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
  

Substitua PROJECT_NUMBER pelo projeto em que a API Dataplex está ativada.

Para garantir que a conta de serviço do Dataplex tenha as permissões necessárias para criar e executar uma verificação de descoberta, peça ao administrador para conceder a ela os seguintes papéis do IAM:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para criar e executar uma verificação de descoberta. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar e executar uma verificação de descoberta:

  • bigquery.datasets.create no projeto da fonte de dados
  • storage.buckets.get no bucket da fonte de dados
  • storage.objects.get no bucket da fonte de dados
  • storage.objects.list no bucket da fonte de dados
  • bigquery.datasets.get no projeto da fonte de dados
  • Forneça uma conexão:
    • bigquery.connections.delegate na conexão do BigQuery
    • bigquery.connections.use na conexão do BigQuery

O administrador também pode conceder essas permissões à conta de serviço do Dataplex com papéis personalizados ou outros papéis predefinidos.

Papéis obrigatórios para a conta de serviço de conexão do BigQuery

Para garantir que a conta de serviço de conexão do BigQuery tenha as permissões necessárias para criar uma verificação de descoberta, peça ao administrador para conceder a ela o papel do IAM de Agente de serviço de descoberta do Dataplex (roles/dataplex.discoveryServiceAgent) no bucket do Cloud Storage.

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para criar uma verificação de descoberta. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar uma verificação de descoberta:

  • bigquery.datasets.create no projeto da fonte de dados
  • storage.buckets.get no bucket da fonte de dados
  • storage.objects.get no bucket da fonte de dados
  • storage.objects.list no bucket da fonte de dados
  • bigquery.datasets.get no projeto da fonte de dados
  • Forneça uma conexão:
    • bigquery.connections.delegate na conexão do BigQuery
    • bigquery.connections.use na conexão do BigQuery

O administrador também pode conceder essas permissões à conta de serviço do BigQuery Connection com papéis personalizados ou outros papéis predefinidos.

Funções necessárias para usuários finais

Para receber as permissões necessárias para criar e gerenciar verificações de descoberta de dados, peça ao administrador para conceder a você os seguintes papéis do IAM no bucket do Cloud Storage:

  • Acesso total aos recursos do DataScan: Administrador do DataScan Dataplex (roles/dataplex.dataScanAdmin): seu projeto
  • Acesso de gravação aos recursos do DataScan: Editor do DataScan Dataplex (roles/dataplex.dataScanEditor): seu projeto
  • Acesso de leitura aos recursos do DataScan, exceto os resultados: Leitor do DataScan Dataplex (roles/dataplex.dataScanViewer): seu projeto
  • Acesso de leitura aos recursos do DataScan, incluindo os resultados: Leitor de dados do DataScan Dataplex (roles/dataplex.dataScanDataViewer): seu projeto

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para criar e gerenciar verificações de descoberta de dados. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar e gerenciar verificações de descoberta de dados:

  • Crie um DataScan: dataplex.datascans.create no seu projeto
  • Excluir uma DataScan: dataplex.datascans.delete no seu projeto ou em um recurso DataScan
  • Ver detalhes da DataScan sem os resultados: dataplex.datascans.get no seu projetor, um recurso DataScan
  • Ver detalhes da DataScan, incluindo resultados: dataplex.datascans.getData no seu projeto ou em um recurso DataScan
  • Listar DataScans: dataplex.datascans.list no seu projeto ou em um recurso DataScan
  • Execute uma DataScan: dataplex.datascans.run no seu projeto ou em um recurso DataScan
  • Atualize a descrição de uma DataScan: dataplex.datascans.update no seu projetor, um recurso DataScan
  • Confira as permissões do IAM do DataScan: dataplex.datascans.getIamPolicy no seu projeto ou em um recurso do DataScan
  • Defina as permissões do IAM no DataScan: dataplex.datascans.setIamPolicy no seu projeto ou em um recurso DataScan

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Criar uma verificação de descoberta

Para descobrir dados, crie e execute uma verificação de descoberta. É possível definir uma programação para a verificação ou executá-la sob demanda.

Quando a verificação de descoberta é executada, ela cria um novo conjunto de dados no BigQuery que corresponde ao bucket do Cloud Storage verificado. O nome do conjunto de dados do BigQuery é o mesmo do bucket do Cloud Storage. Os caracteres inválidos no nome do bucket são substituídos por um sublinhado. Se o nome do conjunto de dados não estiver disponível, um sufixo será anexado (por exemplo, _discovered_001). O conjunto de dados contém as tabelas externas do BigLake ou não BigLake que foram criadas pela verificação de descoberta para análise posterior.

Console

  1. No console Google Cloud , acesse a página Criação de metadados.

    Acessar "Curadoria de metadados"

  2. Na guia Descoberta do Cloud Storage, clique em Criar.

  3. No painel Criar verificação de descoberta, configure os detalhes sobre os dados a serem verificados.

  4. Digite um nome para a verificação.

  5. No campo ID da verificação, insira um ID exclusivo que siga as convenções de nomenclatura de recursos em Google Cloud. Se você não fornecer um ID, a verificação de descoberta vai gerar um.

  6. Opcional: forneça uma descrição da verificação.

  7. Para especificar o bucket do Cloud Storage que contém os arquivos a serem verificados, no campo Bucket, procure e selecione o bucket.

  8. Opcional: defina os dados a serem incluídos ou excluídos da verificação de descoberta fornecendo uma lista de padrões glob para filtragem de arquivos.

    • Incluir: se apenas um subconjunto dos dados precisar ser verificado, forneça uma lista de padrões glob que correspondam aos objetos a serem incluídos.
    • Excluir: forneça uma lista de padrões glob que correspondam aos objetos a serem excluídos.

    Por exemplo, se você quiser excluir gs://test_bucket/foo/.. da verificação de descoberta, insira **/foo/** como o caminho de exclusão. As aspas causam erros. Não se esqueça de inserir **/foo/** em vez de "**/foo/**".

    Se você fornecer padrões de inclusão e exclusão, os de exclusão serão aplicados primeiro.

  9. Opcional: em Projeto, selecione o projeto do conjunto de dados do BigQuery que contém as tabelas externas do BigLake ou não BigLake criadas pela verificação de descoberta. Se não for fornecido, o conjunto de dados será criado no projeto que contém o bucket do Cloud Storage.

  10. Em Tipo de local, selecione Região ou Multirregião (o que estiver disponível) em que o conjunto de dados de publicação do BigQuery será criado.

  11. Para criar tabelas do BigLake com base nos dados verificados, no campo ID da conexão, forneça o ID da conexão do recurso Google Cloud . Para mais informações, consulte conexões de recursosGoogle Cloud no BigQuery.

    É possível criar um novo ID de conexão no mesmo local do conjunto de dados do BigQuery, que é compatível com o local do bucket do Cloud Storage.

    Se você não fornecer um ID de conexão de recurso, a verificação de descoberta criará tabelas externas que não são do BigLake.

  12. Na seção Frequência de descoberta, configure quando você quer que a verificação de descoberta seja executada:

    • Repetir: a verificação é executada em uma programação predefinida. Informe o horário de início, os dias para executar a verificação e a frequência, como "a cada hora".

    • Sob demanda: a verificação é executada sob demanda.

  13. Opcional: na seção Especificações JSON ou CSV, especifique como a verificação deve processar arquivos JSON e CSV. Clique em Especificações JSON ou CSV.

    1. Para configurar as opções de JSON, selecione Ativar opções de análise JSON.
      • Desativar inferência de tipo: se a verificação de descoberta deve inferir tipos de dados ao verificar dados. Se você desativar a inferência de tipo para dados JSON, todas as colunas serão registradas como tipos primitivos, como string, número ou booleano.
      • Formato de codificação: a codificação de caracteres dos dados, como UTF-8, US-ASCII ou ISO-8859-1. Se você não especificar um valor, UTF-8 será usado como padrão.
    2. Para configurar as opções de CSV, marque Ativar opções de análise de CSV.
      • Desativar inferência de tipo: se a verificação de descoberta deve inferir tipos de dados ao verificar dados. Se você desativar a inferência de tipo para dados CSV, todas as colunas serão registradas como strings.
      • Linhas de cabeçalho: o número de linhas de cabeçalho, 0 ou 1. Se você especificar o valor 0, a verificação de descoberta vai inferir cabeçalhos e extrair os nomes das colunas do arquivo. O padrão é 0.
      • Caractere delimitador de coluna: o caractere usado para separar valores. Forneça um único caractere, \r (retorno de carro) ou \n (nova linha). O padrão é uma vírgula (,).
      • Formato de codificação: a codificação de caracteres dos dados, como UTF-8, US-ASCII ou ISO-8859-1. Se você não especificar um valor, UTF-8 será usado como padrão.
  14. Clique em Criar (para uma verificação programada) ou Executar agora (para uma verificação sob demanda).

    Uma verificação programada é executada de acordo com a programação definida.

    Uma verificação sob demanda é executada uma vez inicialmente quando você a cria, e é possível executá-la a qualquer momento. A verificação de descoberta pode levar vários minutos para ser concluída.

gcloud

Para criar uma verificação de descoberta, use o comando gcloud dataplex datascans create data-discovery.

gcloud dataplex datascans create data-discovery --location=LOCATION
--data-source-resource=BUCKET_PATH

Substitua:

  • LOCATION: o local em que você quer criar a verificação de descoberta
  • BUCKET_PATH: o caminho do Cloud Storage do bucket que você quer verificar

REST

Para criar uma verificação de descoberta, use o método dataScans.create.

Consultar tabelas publicadas do BigLake

Depois de executar a verificação de descoberta, as tabelas do BigLake são publicadas em um novo conjunto de dados no BigQuery. As tabelas ficam disponíveis para análise no BigQuery usando SQL ou no Dataproc usando Apache Spark ou HiveQL.

SQL

É possível visualizar ou consultar tabelas no BigQuery. Para mais informações sobre como executar consultas no BigQuery, consulte Executar uma consulta.

Apache Spark

Para consultar tabelas do BigLake usando o Spark SQL em um job do Dataproc sem servidor, siga estas etapas:

  1. Crie um script do PySpark semelhante ao exemplo a seguir:

    from pyspark.sql import SparkSession
    session = (
      SparkSession.builder.appName("testing")
        .config("viewsEnabled","true")
        .config("materializationDataset", "DATASET_ID")
        .config("spark.hive.metastore.bigquery.project.id", "PROJECT_ID")
        .config("spark.hive.metastore.client.factory.class", "com.google.cloud.bigquery.metastore.client.BigQueryMetastoreClientFactory")
        .enableHiveSupport()
        .getOrCreate()
    )
    
    session.sql("show databases").show()
    session.sql("use TABLE_NAME").show()
    session.sql("show tables").show()
    
    sql = "SELECT * FROM DATASET_ID.TABLE_ID LIMIT 10"
    df = session.read.format("bigquery").option("dataset", "DATASET_ID").load(sql)
    df.show()

    Substitua:

    • DATASET_ID: ID do conjunto de dados para o qual os usuários têm permissão de criação
    • PROJECT_ID: ID do projeto com a tabela do BigLake
    • TABLE_NAME: nome da tabela do BigLake
    • TABLE_ID: ID da tabela do BigLake
  2. Envie o job em lote.

Gerenciar tabelas publicadas do BigLake

As tabelas publicadas do BigLake são criadas e gerenciadas no BigQuery pela verificação de descoberta. Por padrão, a verificação de descoberta processa a descoberta de novos dados, as inferências e a evolução de esquema sempre que as verificações programadas ou sob demanda são executadas. Para indicar que os metadados são gerenciados pela verificação, ela publica tabelas com o rótulo metadata-managed-mode definido como discovery-managed.

Se você quiser gerenciar o esquema e outros metadados, como opções de CSV ou JSON, defina o rótulo metadata-managed-mode como user_managed. Assim, o esquema permanece inalterado quando a próxima verificação de descoberta é executada. Essa abordagem pode ser útil em cenários em que o esquema inferido pela verificação de descoberta está incorreto ou é diferente do esperado para uma determinada tabela. Quando o rótulo metadata-managed-mode é definido como user_managed, o custo pode ser reduzido.

Para atualizar o rótulo, edite o valor da chave de rótulo metadata-managed-mode para user_managed em vez de discovery-managed. Nesse caso, a verificação de descoberta não atualiza o esquema da tabela enquanto o rótulo user_managed estiver anexado a ela.

Atualizar tabelas publicadas do BigLake

Para tabelas do BigLake publicadas usando os jobs de verificação de descoberta com a configuração padrão, o esquema e outros metadados são atualizados automaticamente a cada execução do job de verificação de descoberta na frequência programada.

Para atualizar uma tabela do BigLake publicada, siga estas etapas:

  1. No console Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. Atualize uma ou mais propriedades da tabela.

  3. No painel Explorer, expanda o projeto e o conjunto de dados e selecione a tabela.

  4. Na guia Detalhes, na seção Marcadores, verifique se o marcador metadata-managed-mode está definido como user_managed. Se ele estiver definido com um valor diferente, siga estas etapas:

    1. Clique em Editar detalhes.

    2. Ao lado da chave metadata-managed-mode, no campo valor, insira user_managed.

Excluir tabelas publicadas do BigLake

Para excluir uma tabela publicada do BigLake, siga estas etapas:

  1. Exclua os arquivos de dados da tabela no bucket do Cloud Storage.

  2. No console Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  3. No painel Explorer, expanda o projeto e o conjunto de dados e selecione a tabela.

  4. No painel Detalhes, na seção Marcadores, verifique se o marcador metadata-managed-mode não está definido como user_managed. Se estiver definido como user_managed, siga estas etapas:

    1. Clique em Editar detalhes .

    2. Ao lado da chave metadata-managed-mode, no campo valor, insira discovery-managed.

  5. Clique em Executar. A verificação de descoberta é executada sob demanda.

Depois que a verificação de descoberta é executada, a tabela do BigLake é excluída no BigQuery e não fica disponível para listagem ou consulta pelo Spark.

Executar uma verificação de descoberta sob demanda

Para executar uma verificação de descoberta sob demanda, selecione uma das seguintes opções.

Console

  1. No console Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. No menu de navegação, clique em Governança > Curadoria de metadados.

  3. No painel Descoberta do Cloud Storage, clique na verificação de descoberta que você quer executar.

  4. Clique em Executar agora.

gcloud

Para executar uma verificação de descoberta, use o comando gcloud dataplex datascans run:

gcloud dataplex datascans run DATASCAN \
  --location=LOCATION

Substitua as seguintes variáveis:

  • LOCATION: a região Google Cloud em que a verificação de descoberta foi criada.
  • DATASCAN: o nome da verificação de descoberta.

REST

Para executar uma verificação de descoberta sob demanda, use o método dataScans.run na API Dataplex.

Listar verificações de descoberta

Para listar suas verificações de descoberta, selecione uma das seguintes opções.

Console

  1. No console Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. No menu de navegação, clique em Governança > Curadoria de metadados.

  3. No painel Descoberta do Cloud Storage, as verificações de descoberta criadas no projeto são listadas.

gcloud

gcloud dataplex datascans list --location=LOCATION --project=PROJECT_ID

Substitua:

  • LOCATION: o local do projeto
  • PROJECT_ID: o ID do Google Cloud projeto

REST

Para recuperar a lista de verificações de descoberta no seu projeto, use o método dataScans.listdataScans.list na API Dataplex Universal Catalog.

Ver uma verificação de descoberta

Para conferir uma verificação de descoberta, selecione uma das seguintes opções:

Console

  1. No console Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. No menu de navegação, clique em Governança > Curadoria de metadados.

  3. No painel Descoberta do Cloud Storage, clique na verificação de descoberta para conferir os detalhes.

    • A seção Detalhes da verificação mostra detalhes sobre a verificação de descoberta.
    • A seção Status da verificação mostra os resultados da descoberta do job de verificação mais recente.

gcloud

gcloud dataplex datascans jobs describe JOB \
    --location=LOCATION \
    --datascan=DATASCAN \
    --view=FULL

Substitua:

  • JOB: o ID do job de verificação de descoberta.
  • LOCATION: a região Google Cloud em que a verificação de descoberta foi criada.
  • DATASCAN: o nome da verificação de descoberta a que o job pertence.
  • --view=FULL: confira o resultado do job de verificação de descoberta.

REST

Para conferir os resultados de uma verificação de descoberta de dados, use o método dataScans.get na API Dataplex Universal Catalog.

Conferir resultados históricos da verificação de descoberta

Para conferir os resultados históricos da verificação de descoberta, selecione uma das seguintes opções:

Console

  1. No console Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. No menu de navegação, clique em Governança > Curadoria de metadados.

  3. No painel Descoberta do Cloud Storage, clique na verificação de descoberta para conferir os detalhes.

  4. Clique no painel Histórico de verificação. O painel Histórico de verificação fornece informações sobre jobs anteriores, incluindo o número de registros verificados em cada job, o status de cada job e a hora em que os jobs foram executados.

  5. Para ver informações detalhadas sobre um job, clique nele na coluna ID do job.

gcloud

gcloud dataplex datascans jobs list \
    --location=LOCATION \
    --datascan=DATASCAN

Substitua:

  • LOCATION: a região Google Cloud em que a verificação de descoberta foi criada.
  • DATASCAN: o nome da verificação de descoberta a que o job pertence.

REST

Para conferir todos os jobs de uma verificação de descoberta, use o método dataScans.job/list na API Dataplex Universal Catalog.

Atualizar uma verificação de descoberta

Para mudar a programação de uma verificação de descoberta, por exemplo, de sob demanda para recorrente, atualize a verificação.

Console

  1. No console Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. No menu de navegação, clique em Governança > Curadoria de metadados.

  3. No painel Descoberta do Cloud Storage, clique em Ações > Editar na verificação de descoberta que você quer atualizar.

  4. Edite os valores.

  5. Clique em Salvar.

gcloud

Para atualizar uma verificação de descoberta, use o comando gcloud dataplex datascans update data-discovery.

gcloud dataplex datascans update data-discovery SCAN_ID --location=LOCATION --description=DESCRIPTION

Substitua:

  • SCAN_ID: o ID da verificação de descoberta que você quer atualizar.
  • LOCATION: a região Google Cloud em que a verificação de descoberta foi criada
  • DESCRIPTION: a nova descrição da verificação de descoberta

REST

Para atualizar uma verificação de descoberta, use o método dataScans.patch na API Dataplex Universal Catalog.

Excluir uma verificação de descoberta

Para excluir uma verificação de descoberta, selecione uma das seguintes opções:

Console

  1. No console Google Cloud , acesse a página BigQuery.

    Acessar o BigQuery

  2. No menu de navegação, clique em Governança > Curadoria de metadados.

  3. No painel Descoberta do Cloud Storage, clique em Ações > Excluir na verificação de descoberta que você quer excluir.

  4. Clique em Excluir.

gcloud

gcloud dataplex datascans delete SCAN_ID --location=LOCATION --async

Substitua:

  • SCAN_ID: o ID da verificação de descoberta que você quer excluir.
  • LOCATION: a região Google Cloud em que a verificação de descoberta foi criada.

REST

Para excluir uma verificação de descoberta, use o método dataScans.delete na API Dataplex Universal Catalog.