Descubra e catalogue dados do Cloud Storage

Este documento explica como usar a deteção automática do catálogo universal do Dataplex, uma funcionalidade no BigQuery que lhe permite analisar dados em contentores do Cloud Storage para extrair e, em seguida, catalogar metadados. Como parte da análise de deteção, a deteção automática cria tabelas externas ou do BigLake para dados estruturados e tabelas de objetos para dados não estruturados. Esta tabela de dados centralizada facilita as estatísticas de dados, a segurança dos dados e a governação com tecnologia de IA.

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

A deteção automática também é denominada deteção autónoma.

Vista geral da análise de deteção

Uma análise de deteção faz o seguinte:

  • Analisa os dados no contentor ou no caminho do Cloud Storage.
  • Agrupa dados estruturados e semiestruturados em tabelas.
  • Recolhe metadados, como o nome da tabela, o esquema e a definição da partição.
  • Cria e atualiza tabelas BigLake, externas ou de objetos no BigQuery através do esquema e da definição de partições.

Para dados não estruturados, como imagens e vídeos, a análise de deteção deteta e regista grupos de ficheiros que partilham o mesmo tipo de suporte que as tabelas de objetos do BigLake. Por exemplo, se gs://images/group1 contiver imagens GIF e gs://images/group2 contiver imagens JPEG, a análise de deteção deteta e regista dois conjuntos de ficheiros.

Para dados estruturados, como o Avro, a análise de deteção regista grupos de ficheiros como tabelas externas do BigLake e deteta ficheiros apenas se estiverem localizados em pastas que contenham o mesmo formato de dados e esquema compatível.

A análise de deteção suporta os seguintes formatos de dados estruturados e semiestruturados:

A análise de deteção suporta os seguintes formatos de compressão para dados estruturados e semiestruturados:

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

Para ver o limite de tabelas suportadas por uma análise de deteção, consulte Quotas e limites.

As tabelas descobertas são registadas no BigQuery como tabelas externas do BigLake, tabelas de objetos do BigLake ou tabelas externas. Isto disponibiliza os respetivos dados para análise no BigQuery. O armazenamento em cache de metadados para tabelas BigLake e tabelas de objetos também está ativado. Todas as tabelas do BigLake são carregadas automaticamente no catálogo universal do Dataplex para pesquisa e deteção.

Antes de começar

Enable the Dataplex API.

Roles required to enable APIs

To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

Enable the API

Funções necessárias para a conta de serviço do catálogo universal do Dataplex

Antes de começar, atribua as autorizações de IAM à conta de serviço do catálogo universal do Dataplex no seu projeto.

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

Substitua PROJECT_NUMBER pelo projeto no qual a API Dataplex está ativada.

Para garantir que a conta de serviço do Dataplex tem as autorizações necessárias para criar e executar uma análise de deteção, peça ao seu administrador para conceder à conta de serviço do Dataplex as seguintes funções do IAM:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para criar e executar uma análise de deteção. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para criar e executar uma análise de deteção:

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

O administrador também pode conceder à conta de serviço do Dataplex estas autorizações com funções personalizadas ou outras funções predefinidas.

Funções necessárias para a conta de serviço de ligação ao BigQuery

Para garantir que a conta de serviço de ligação do BigQuery tem as autorizações necessárias para criar uma análise de deteção, peça ao seu administrador para conceder à conta de serviço de ligação do BigQuery a função de IAM agente do serviço de deteção do Dataplex (roles/dataplex.discoveryServiceAgent) no contentor do Cloud Storage.

Para mais informações sobre a concessão de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém as autorizações necessárias para criar uma análise de deteção. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para criar uma análise de deteção:

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

O seu administrador também pode atribuir à conta de serviço de ligação ao BigQuery estas autorizações com funções personalizadas ou outras funções predefinidas.

Funções necessárias para utilizadores finais

Para receber as autorizações de que precisa para criar e gerir análises de deteção de dados, peça ao seu administrador para lhe conceder as seguintes funções de IAM no contentor do Cloud Storage:

  • Acesso total aos recursos do DataScan: Administrador do DataScan do Dataplex (roles/dataplex.dataScanAdmin) – o seu projeto
  • Acesso de escrita aos recursos DataScan: Editor do DataScan do Dataplex (roles/dataplex.dataScanEditor) – o seu projeto
  • Acesso de leitura aos recursos DataScan, excluindo os resultados: Leitor do DataScan do Dataplex (roles/dataplex.dataScanViewer) – o seu projeto
  • Acesso de leitura aos recursos DataScan, incluindo os resultados: Dataplex DataScan DataViewer (roles/dataplex.dataScanDataViewer) – o seu projeto

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para criar e gerir análises de deteção de dados. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para criar e gerir análises de deteção de dados:

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

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Crie uma análise de deteção

Para descobrir dados, tem de criar e executar uma análise de deteção. Pode definir um agendamento para a análise ou executar a análise a pedido.

Quando a análise de deteção é executada, cria um novo conjunto de dados no BigQuery que corresponde ao contentor do Cloud Storage que foi analisado. O nome do conjunto de dados do BigQuery é igual ao nome do contentor do Cloud Storage. Os carateres inválidos no nome do contentor são substituídos por um sublinhado. Se o nome do conjunto de dados não estiver disponível, é anexado um sufixo (por exemplo, _discovered_001). O conjunto de dados contém as tabelas externas do BigLake ou externas não pertencentes ao BigLake que foram criadas pela análise de deteção para análise adicional.

Consola

  1. Na Google Cloud consola, aceda à página Organização dos metadados.

    Aceda à organização de metadados

  2. No separador Deteção do armazenamento na nuvem, clique em Criar.

  3. No painel Criar análise de deteção, configure os detalhes sobre os dados a analisar.

  4. Introduza um nome para a análise.

  5. No campo ID da análise, introduza um ID exclusivo que siga as convenções de nomenclatura de recursos em Google Cloud. Se não fornecer um ID, a análise de deteção gera o ID da análise.

  6. Opcional: forneça uma descrição da análise.

  7. Para especificar o contentor do Cloud Storage que contém os ficheiros a analisar, no campo Contentor, procure e selecione o contentor.

  8. Opcional: defina os dados a incluir ou excluir da análise de deteção fornecendo uma lista de padrões glob para a filtragem de ficheiros.

    • Include: se apenas uma parte dos dados deve ser analisada, forneça uma lista de padrões glob que correspondam aos objetos a incluir.
    • Excluir: forneça uma lista de padrões glob que correspondam aos objetos a excluir.

    Por exemplo, se quiser excluir gs://test_bucket/foo/.. da análise de deteção, introduza **/foo/** como o caminho de exclusão. As aspas causam erros. Certifique-se de que introduz **/foo/** em vez de "**/foo/**".

    Se fornecer padrões de inclusão e padrões de exclusão, os padrões de exclusão sã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 externas do BigLake criadas pela análise de deteção. Se não for fornecido, o conjunto de dados é criado no projeto que contém o contentor do Cloud Storage.

  10. Em Tipo de localização, selecione Região ou Várias regiões (consoante a opção disponível) onde o conjunto de dados de publicação do BigQuery é criado.

  11. Para criar tabelas do BigLake a partir dos dados analisados, no campo ID da associação, indique o ID da associação de recursos. Google Cloud Para mais informações, consulte o artigo Google Cloud Ligações de recursos no BigQuery.

    Pode criar um novo ID de ligação na mesma localização que a localização do conjunto de dados do BigQuery, que é compatível com a localização do contentor do Cloud Storage.

    Se não fornecer um ID de ligação de recursos, a análise de deteção cria tabelas externas não pertencentes ao BigLake.

  12. Na secção Frequência da deteção, configure quando quer que a análise de deteção seja executada:

    • Repetir: a análise é executada numa programação predefinida. Indique a hora de início, os dias para executar a análise e a frequência, como de hora a hora.

    • A pedido: a análise é executada a pedido.

  13. Opcional: na secção Especificações de JSON ou CSV, especifique como a análise deve processar ficheiros JSON e CSV. Clique em Especificações JSON ou CSV.

    1. Para configurar as opções JSON, selecione Ativar opções de análise JSON.
      • Desativar inferência de tipos: se a análise de deteção deve inferir tipos de dados ao analisar dados. Se desativar a inferência de tipos para dados JSON, todas as colunas são registadas como os respetivos tipos primitivos, como string, número ou Booleano.
      • Formato de codificação: a codificação de carateres dos dados, como UTF-8, US-ASCII ou ISO-8859-1. Se não especificar um valor, é usado UTF-8 como predefinição.
    2. Para configurar as opções de CSV, selecione Ativar opções de análise de CSV.
      • Desativar inferência de tipos: se a análise de deteção deve inferir tipos de dados ao analisar dados. Se desativar a inferência de tipos para dados CSV, todas as colunas são registadas como strings.
      • Linhas de cabeçalho: o número de linhas de cabeçalho, 0 ou 1. Se especificar o valor 0, a análise de deteção infere os cabeçalhos e extrai os nomes das colunas do ficheiro. A predefinição é 0.
      • Caráter delimitador de colunas: o caráter usado para separar valores. Indique um único caráter, \r (retorno de carro) ou \n (nova linha). A predefinição é uma vírgula (,).
      • Formato de codificação: a codificação de carateres dos dados, como UTF-8, US-ASCII ou ISO-8859-1. Se não especificar um valor, é usado UTF-8 como predefinição.
  14. Clique em Criar (para uma análise agendada) ou Executar agora (para uma análise a pedido).

    Uma análise agendada é executada de acordo com o agendamento que definir.

    Uma análise a pedido é executada inicialmente uma vez quando a cria e pode executá-la em qualquer altura. A análise de deteção pode demorar vários minutos a ser executada.

gcloud

Para criar uma análise de deteção, use o comando gcloud dataplex datascans create data-discovery.

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

Substitua o seguinte:

  • LOCATION: a localização na qual quer criar a sua análise de deteção
  • BUCKET_PATH: o caminho do Cloud Storage do contentor que quer analisar

REST

Para criar uma análise de deteção, use o método dataScans.create.

Consulte tabelas BigLake publicadas

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

SQL

Pode ver 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 através do Spark SQL num trabalho sem servidor do Dataproc, siga estes passos:

  1. Crie um script PySpark semelhante ao seguinte script de exemplo:

    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 o seguinte:

    • DATASET_ID: ID do conjunto de dados para o qual os utilizadores têm autorizaçã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 trabalho em lote.

Faça a gestão de tabelas BigLake publicadas

As tabelas do BigLake publicadas são criadas e geridas no BigQuery pela análise de deteção. Por predefinição, a análise de deteção processa a deteção de novos dados, as inferências de esquemas e a evolução de esquemas sempre que as análises agendadas ou a pedido são executadas. Para indicar que os metadados são geridos pela análise, a análise publica tabelas com a etiqueta metadata-managed-mode definida como discovery-managed.

Se quiser gerir o esquema e outros metadados, como opções CSV ou JSON, defina a etiqueta metadata-managed-mode como user_managed. Desta forma, o esquema permanece inalterado quando a próxima análise de deteção for executada. Esta abordagem pode ser útil em cenários em que o esquema inferido pela análise de deteção está incorreto ou é diferente do esperado para uma determinada tabela. Quando a etiqueta metadata-managed-mode está definida como user_managed, pode reduzir o custo.

Para atualizar a etiqueta, pode editar o valor da chave da etiqueta metadata-managed-mode para user_managed em vez de discovery-managed. Neste caso, a análise de deteção não atualiza o esquema da tabela desde que a etiqueta user_managed esteja anexada à tabela.

Atualize tabelas BigLake publicadas

Para tabelas do BigLake publicadas através de tarefas de análise de deteção com a configuração predefinida, o esquema e outros metadados são atualizados automaticamente com cada tarefa de análise de deteção executada na frequência agendada.

Para atualizar uma tabela do BigLake publicada, siga estes passos:

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. Atualize uma ou mais propriedades da tabela.

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

  4. No separador Detalhes, na secção Etiquetas, certifique-se de que a etiqueta metadata-managed-mode está definida como user_managed. Se estiver definido para um valor diferente, siga estes passos:

    1. Clique em Editar detalhes.

    2. Junto à chave metadata-managed-mode, no campo value, introduza user_managed.

Elimine tabelas BigLake publicadas

Para eliminar uma tabela do BigLake publicada, siga estes passos:

  1. Elimine os ficheiros de dados da tabela no contentor do Cloud Storage.

  2. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

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

  4. No painel Detalhes, na secção Etiquetas, certifique-se de que a etiqueta metadata-managed-mode não está definida como user_managed. Se estiver definido como user_managed, siga estes passos:

    1. Clique em Editar detalhes .

    2. Junto à chave metadata-managed-mode, no campo value, introduza discovery-managed.

  5. Clique em Executar. A análise de deteção é executada a pedido.

Após a execução da análise de deteção, a tabela do BigLake é eliminada no BigQuery e não está disponível para apresentação ou consulta através do Spark.

Execute uma análise de deteção a pedido

Para executar uma análise de deteção a pedido, selecione uma das seguintes opções.

Consola

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

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

  3. No painel Deteção de armazenamento na nuvem, clique na análise de deteção que quer executar.

  4. Clique em Executar agora.

gcloud

Para executar uma análise de deteção, use o comando gcloud dataplex datascans run:

gcloud dataplex datascans run DATASCAN \
  --location=LOCATION

Substitua as seguintes variáveis:

  • LOCATION: a Google Cloud região em que a análise de deteção foi criada.
  • DATASCAN: o nome da análise de deteção.

REST

Para executar uma análise de deteção a pedido, use o método dataScans.run na API Dataplex.

Liste as análises de descoberta

Para listar as suas análises de deteção, selecione uma das seguintes opções.

Consola

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

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

  3. No painel Deteção do Cloud Storage, são apresentadas as análises de deteção criadas no projeto.

gcloud

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

Substitua o seguinte:

  • LOCATION: a localização do seu projeto
  • PROJECT_ID: o ID do seu Google Cloud projeto

REST

Para obter a lista de análises de deteção no seu projeto, use o método dataScans.list na API Dataplex.

Veja uma análise de deteção

Para ver uma análise de deteção, selecione uma das seguintes opções.

Consola

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

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

  3. No painel Deteção do armazenamento na nuvem, clique na análise de deteção cujos detalhes quer ver.

    • A secção Detalhes da análise mostra detalhes sobre a análise de deteção.
    • A secção Estado da análise mostra os resultados da deteção da tarefa de análise mais recente.

gcloud

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

Substitua o seguinte:

  • JOB: o ID da tarefa de análise de deteção.
  • LOCATION: a Google Cloud região em que a análise de deteção foi criada.
  • DATASCAN: o nome da procura de deteção a que a tarefa pertence.
  • --view=FULL: veja o resultado da tarefa de análise de deteção.

REST

Para ver os resultados de uma análise de deteção de dados, use o método dataScans.get na API Dataplex.

Veja os resultados do histórico de análises de deteção

Para ver os resultados do histórico da análise de deteção, selecione uma das seguintes opções.

Consola

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

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

  3. No painel Deteção do armazenamento na nuvem, clique na análise de deteção cujos detalhes quer ver.

  4. Clique no painel Histórico de verificações. O painel Histórico de análises fornece informações sobre tarefas anteriores, incluindo o número de registos analisados em cada tarefa, o estado de cada tarefa e a hora em que as tarefas foram executadas.

  5. Para ver informações detalhadas sobre uma tarefa, clique na tarefa na coluna ID da tarefa.

gcloud

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

Substitua o seguinte:

  • LOCATION: a Google Cloud região em que a análise de deteção foi criada.
  • DATASCAN: o nome da procura de deteção a que a tarefa pertence.

REST

Para ver todas as tarefas de uma análise de deteção, use o método dataScans.job/list na API Dataplex.

Atualize uma análise de deteção

Para alterar a programação de uma análise de deteção, por exemplo, para alterar a programação de pedido para recorrente, atualize a análise de deteção.

Consola

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

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

  3. No painel Deteção do Cloud Storage, para a análise de deteção que quer atualizar, clique em Ações > Editar.

  4. Edite os valores.

  5. Clique em Guardar.

gcloud

Para atualizar uma análise de deteção, use o comando gcloud dataplex datascans update data-discovery.

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

Substitua o seguinte:

  • SCAN_ID: o ID da análise de deteção que quer atualizar
  • LOCATION: a Google Cloud região na qual a análise de deteção foi criada
  • DESCRIPTION: a nova descrição da análise de deteção

REST

Para atualizar uma análise de deteção, use o método dataScans.patch na API Dataplex.

Elimine uma análise de deteção

Para eliminar uma análise de deteção, selecione uma das seguintes opções.

Consola

  1. Na Google Cloud consola, aceda à página BigQuery.

    Aceda ao BigQuery

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

  3. No painel Deteção do armazenamento na nuvem, para a análise de deteção que quer eliminar, clique em Ações > Eliminar.

  4. Clique em Eliminar.

gcloud

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

Substitua o seguinte:

  • SCAN_ID: o ID da análise de deteção que quer eliminar.
  • LOCATION: a Google Cloud região em que a análise de deteção foi criada.

REST

Para eliminar uma análise de deteção, use o método dataScans.delete na API Dataplex.