Descobrir e catalogar dados do Cloud Storage
Este documento explica como usar a descoberta automática de dados do Cloud Storage.
A descoberta automática 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, a descoberta automática cria tabelas do BigLake ou externas para dados estruturados e tabelas de objetos para dados não estruturados, que podem ser usados para análises e IA. As tabelas são automaticamente catalogadas no Dataplex Catalog, que pode ser pesquisado ou navegado.
Para usar a descoberta automática de dados do Cloud Storage, crie e execute uma verificação de descoberta.
Visão geral
Uma verificação de descoberta faz o seguinte:
- Verifica os dados no bucket ou caminho do Cloud Storage.
- Agrupe arquivos estruturados e semiestruturados em tabelas.
- Coleta metadados, como o nome da tabela, o esquema e a definição da partição.
- Cria e atualiza tabelas do BigLake, externas ou de objetos no BigQuery usando a definição de esquema e 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
imagens JPEG,
a verificação de descoberta detectará e registrará dois conjuntos de arquivos.
Para dados estruturados, como o 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 oferece suporte aos seguintes formatos de dados estruturados e semiestruturados:
- Parquet
- Avro
- ORC
- JSON (apenas o formato delimitado por nova linha)
- CSV (mas não arquivos CSV com linhas de comentários)
A verificação de descoberta oferece suporte aos 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
As tabelas descobertas são registradas no BigQuery como tabelas externas, tabelas de objetos ou tabelas externas do BigLake. Isso disponibiliza os dados para análise no BigQuery. O armazenamento em cache de metadados para tabelas do BigLake e de objetos também é ativado. Todas as tabelas do BigLake são automaticamente incluídas no Dataplex Catalog para pesquisa e descoberta.
Antes de começar
Verifique se você tem as permissões necessárias do Identity and Access Management (IAM) para realizar as tarefas neste documento.
Papéis necessários para a conta de serviço
Antes de começar, atribua as permissões do IAM à conta de serviço do Dataplex 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 executar uma verificação de descoberta, peça ao administrador para conceder à conta de serviço do Dataplex os seguintes papéis do IAM:
-
Usuário do BigQuery (
roles/bigquery.user
) no projeto da fonte de dados -
Leitor de objetos do Storage (
roles/storage.objectViewer
) no bucket da origem de dados -
Forneça uma conexão:
Administrador de conexão do BigQuery (
roles/bigquery.connectionAdmin
)
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 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 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
-
bigquery.connections.use
-
O administrador também pode conceder essas permissões à conta de serviço do Dataplex com papéis personalizados ou outros papéis predefinidos.
Funções obrigatórias para usuários finais
Para garantir que você tenha as permissões necessárias para usar a API DataScan, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Acesso total aos recursos do DataScan:
Administrador do DataScan Dataplex (
roles/dataplex.dataScanAdmin
) no seu projeto -
Acesso de gravação aos recursos do DataScan:
Editor do DataScan Dataplex (
roles/dataplex.dataScanEditor
) no seu projeto -
Acesso de leitura aos recursos do DataScan, excluindo os resultados:
Leitor de dados do DataScan Dataplex (
roles/dataplex.dataScanViewer
) no seu projeto -
Acesso de leitura aos recursos do DataScan, incluindo os resultados:
Leitor de dados do DataScan Dataplex (
roles/dataplex.dataScanDataViewer
) no 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 usar a API DataScan. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para usar a API DataScan:
-
Crie uma verificação de dados:
dataplex.datascans.create
no projeto -
Excluir uma verificação de dados:
dataplex.datascans.delete
no projeto ou em um recurso de verificação de dados -
Para conferir os detalhes da verificação de dados sem os resultados:
dataplex.datascans.get
no projetor um recurso de verificação de dados -
Acesse os detalhes do DataScan, incluindo os resultados:
dataplex.datascans.getData
no seu projeto ou em um recurso do DataScan -
Listar verificações de dados:
dataplex.datascans.list
no projeto ou em um recurso de verificação de dados -
Execute uma verificação de dados:
dataplex.datascans.run
no seu projeto ou em um recurso de verificação de dados -
Atualize a descrição de uma verificação de dados:
dataplex.datascans.update
no projetor um recurso de verificação de dados -
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 do DataScan
O administrador também pode conceder essas permissões com papéis personalizados ou outros papéis predefinidos.
Criar uma verificação de descoberta
Para descobrir dados, você precisa criar e executar uma verificação de descoberta. É possível
programar a verificação ou executá-la sob demanda. Para criar e executar uma
verificação de descoberta, você precisa ter a permissão dataplex.datascans.create
.
Quando a verificação de descoberta é executada, ela cria um novo conjunto de dados no BigQuery que corresponde ao bucket do Cloud Storage que foi 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 que não são do BigLake que foram criadas pela verificação de descoberta para análise posterior.
Console
No Console do Google Cloud, acesse a página BigQuery.
No Explorer, clique em
Adicionar.No painel Add, na seção Popular sources, clique em Auto-create external and BigLake tables from GCS.
No painel Criar tabela, na seção Origem, configure os seguintes detalhes sobre os dados a serem verificados:
- Digite um nome para a verificação.
- No campo ID do scanner, insira um ID exclusivo que siga a convenção de nomenclatura de recursos. Se você não fornecer um ID, a verificação de descoberta vai gerar o ID da verificação.
- Opcional: forneça uma descrição da verificação.
- Para especificar o bucket do Cloud Storage que contém os arquivos a serem verificados, no campo Bucket, procure e selecione o bucket.
Opcional: defina os dados a serem incluídos ou excluídos da verificação de descoberta fornecendo uma lista de padrões glob.
- Incluir: se apenas um subconjunto dos dados precisar ser verificado, forneça uma lista de padrões de glob que correspondam aos objetos a serem incluídos.
- Excluir: forneça uma lista de padrões glob que correspondem 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. Insira**/foo/*
em vez de"**/foo/*"
.Se você fornecer padrões de inclusão e exclusão, os padrões de exclusão serão aplicados primeiro.
Para criar tabelas do BigLake com base nos dados digitalizados, no campo ID da conexão, forneça o ID da conexão de recursos do Google Cloud. Para mais informações, consulte Conexões de recursos do Google Cloud.
Se você não fornecer um ID de conexão de recurso, o recurso de descoberta vai criar tabelas externas que não sejam do BigLake.
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.
Opcional: na seção Especificações JSON ou CSV, especifique como a verificação vai processar arquivos 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 tipo: se a verificação de descoberta precisa 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, o UTF-8 será usado como padrão.
- 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 precisa 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
ou1
. Se você especificar o valor0
, a verificação de descoberta vai inferir os títulos e extrair os nomes das colunas do arquivo. O padrão é0
. - Caracter 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
ouISO-8859-1
. Se você não especificar um valor, o UTF-8 será usado como padrão.
- Para configurar as opções JSON, selecione Ativar opções de análise JSON.
Quando terminar de configurar a verificação de descoberta de dados, 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 que você definir.
Uma verificação sob demanda é executada uma vez inicialmente quando você a cria e pode ser executada a qualquer momento. A verificação pode levar alguns minutos para ser concluída.
REST
Para criar uma verificação de descoberta, use o método dataScans.create
.
Monitorar uma verificação de descoberta
Para monitorar os resultados de uma verificação de descoberta, consulte os registros criados quando uma verificação é executada.
Console
No console do Google Cloud, acesse a página do Explorador de registros.
Na visualização Análise de registros, encontre a guia Consulta.
Clique no menu Recurso.
Selecione DataScan do Cloud Dataplex. Clique em Aplicar.
Clique no menu Nome do registro.
No campo Pesquisar nomes de registros, insira
dataplex.googleapis.com%2Fdata_scan
. Selecione data_scan e clique em Aplicar.Opcional: filtre os registros para um ID ou local de verificação de dados específico adicionando os seguintes filtros na consulta de registro:
resource.type="dataplex.googleapis.com/DataScan" AND resource.labels.resource_container="projects/PROJECT_ID" AND resource.labels.datascan_id="DATA_SCAN_ID"
Substitua:
PROJECT_ID
: o ID do projeto do Google CloudDATA_SCAN_ID
: o ID do DataScan
Clique em Executar consulta.
REST
Para monitorar uma verificação de descoberta, use o método dataScans.get
.
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 e ficam disponíveis para análise no BigQuery usando SQL ou no Dataproc usando o Apache Spark, o Dataproc ou o HiveQL.
Consultar usando SQL
É possível consultar ou consultar tabelas no BigQuery. Para mais informações sobre como executar consultas no BigQuery, consulte Executar uma consulta.
Consultar usando o Apache Spark
Para consultar tabelas do BigLake usando o Spark SQL em um job sem servidor do Dataproc, siga estas etapas:
Crie um script PySpark semelhante ao exemplo abaixo:
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 que os usuários têm permissã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
Gerenciar tabelas do BigLake publicadas
As tabelas do BigLake publicadas são criadas no BigQuery
pela verificação de descoberta. A menos que o rótulo metadata-managed-mode esteja definido como
user_managed
, a verificação de descoberta gerencia as tabelas do BigLake
publicadas. A verificação de descoberta processa novas descobertas de dados, inferências de esquema e
evolução de esquema sempre que as verificações de dados programadas ou sob demanda são executadas.
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 com cada execução de job de verificação de dados na frequência programada.
Para atualizar uma tabela do BigLake publicada, siga estas etapas:
No Console do Google Cloud, acesse a página BigQuery.
No painel Explorer, expanda o projeto e o conjunto de dados e selecione a tabela.
No painel Detalhes, na seção Rótulos, verifique se o metadata-managed-mode está definido como
user_managed
. Se estiver definido como um valor diferente, siga estas etapas:Clique em
Editar detalhes.Ao lado da chave metadata-managed-mode, no campo value, insira
user_managed
.
Uma tabela com um esquema atualizado fica disponível para consultas SQL e Spark. Quando as próximas verificações de descoberta forem executadas, os metadados da tabela vão permanecer inalterados.
Excluir tabelas do BigLake publicadas
Para excluir uma tabela do BigLake publicada, siga estas etapas:
Exclua os arquivos de dados da tabela no bucket do Cloud Storage.
No Console do Google Cloud, acesse a página BigQuery.
No painel Explorer, expanda o projeto e o conjunto de dados e selecione a tabela.
No painel Detalhes, na seção Rótulos, verifique se o rótulo metadata-managed-mode não está definido como
user_managed
. Se estiver definido comouser_managed
, siga estas etapas:Clique em Editar detalhes
.Ao lado da chave metadata-managed-mode, no campo value, insira um valor que não seja
user_managed
.
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 está disponível para listar ou consultar pelo Spark.
Executar uma verificação de descoberta sob demanda
Para executar uma verificação de descoberta sob demanda, use o
método dataScans.run
na API Dataplex.
Listar verificações de descobertas
Para recuperar a lista de verificações no projeto, use o
método dataScans.list
na API Dataplex.
Atualizar uma verificação de descoberta
Para mudar a programação de uma verificação, por exemplo, de "sob demanda" para "recorrente", é necessário atualizar o DataScan.
Para atualizar uma verificação de descoberta, use o
método dataScans.patch
na API Dataplex.
Excluir uma verificação de descoberta
Para excluir uma verificação de descoberta, use o
método dataScans.delete
na API Dataplex.