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:
- Parquet
- Avro
- ORC
- JSON (apenas o formato delimitado por newline)
- CSV (mas não ficheiros CSV com linhas de comentários)
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.
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:
-
Agente de serviço de deteção do Dataplex (
roles/dataplex.discoveryServiceAgent
) no contentor de armazenamento -
Agente de serviço de publicação do Dataplex Discovery (
roles/dataplex.discoveryPublishingServiceAgent
) no projeto do utilizador -
Criar tabelas do BigLake:
Agente do serviço de publicação do BigLake do Dataplex Discovery (
roles/dataplex.discoveryBigLakePublishingServiceAgent
) na associação do BigQuery
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.
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
Na Google Cloud consola, aceda à página Organização dos metadados.
No separador Deteção do armazenamento na nuvem, clique em Criar.
No painel Criar análise de deteção, configure os detalhes sobre os dados a analisar.
Introduza um nome para a análise.
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.
Opcional: forneça uma descrição da análise.
Para especificar o contentor do Cloud Storage que contém os ficheiros a analisar, no campo Contentor, procure e selecione o contentor.
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.
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.
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.
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.
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.
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.
- 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.
- 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
ou1
. Se especificar o valor0
, 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
ouISO-8859-1
. Se não especificar um valor, é usado UTF-8 como predefinição.
- Para configurar as opções JSON, selecione Ativar opções de análise JSON.
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çãoBUCKET_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:
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çãoPROJECT_ID
: ID do projeto com a tabela do BigLakeTABLE_NAME
: nome da tabela do BigLakeTABLE_ID
: ID da tabela do BigLake
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:
Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, expanda o projeto e o conjunto de dados e, de seguida, selecione a tabela.
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:
Clique em
Editar detalhes.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:
Elimine os ficheiros de dados da tabela no contentor do Cloud Storage.
Na Google Cloud consola, aceda à página BigQuery.
No painel Explorador, expanda o projeto e o conjunto de dados e, de seguida, selecione a tabela.
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 comouser_managed
, siga estes passos:Clique em Editar detalhes
.Junto à chave metadata-managed-mode, no campo value, introduza
discovery-managed
.
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
Na Google Cloud consola, aceda à página BigQuery.
No menu de navegação, clique em Governança > Curadoria de metadados.
No painel Deteção de armazenamento na nuvem, clique na análise de deteção que quer executar.
Clique em Executar agora.
gcloud
Para executar uma análise de deteção, use o comando gcloud dataplex datascans run
:
gcloud dataplex datascans runDATASCAN
\ --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
Na Google Cloud consola, aceda à página BigQuery.
No menu de navegação, clique em Governança > Curadoria de metadados.
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 projetoPROJECT_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
Na Google Cloud consola, aceda à página BigQuery.
No menu de navegação, clique em Governança > Curadoria de metadados.
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
Na Google Cloud consola, aceda à página BigQuery.
No menu de navegação, clique em Governança > Curadoria de metadados.
No painel Deteção do armazenamento na nuvem, clique na análise de deteção cujos detalhes quer ver.
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.
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
Na Google Cloud consola, aceda à página BigQuery.
No menu de navegação, clique em Governança > Curadoria de metadados.
No painel Deteção do Cloud Storage, para a análise de deteção que quer atualizar, clique em Ações > Editar.
Edite os valores.
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 atualizarLOCATION
: a Google Cloud região na qual a análise de deteção foi criadaDESCRIPTION
: 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
Na Google Cloud consola, aceda à página BigQuery.
No menu de navegação, clique em Governança > Curadoria de metadados.
No painel Deteção do armazenamento na nuvem, para a análise de deteção que quer eliminar, clique em Ações > Eliminar.
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.