Analisar perfis de dados armazenados no BigQuery

Se você configurou o serviço de descoberta de dados sensíveis para enviar todos os perfis de dados gerados com sucesso para o BigQuery, é possível consultar esses perfis para extrair insights sobre seus dados. Também é possível usar ferramentas de visualização, como o Data Studio, para criar relatórios personalizados adequados às suas necessidades comerciais. Como alternativa, você pode usar um relatório pré-criado fornecido pela Proteção de Dados Sensíveis, ajustá-lo e compartilhá-lo conforme necessário.

Esta página fornece exemplos de consultas SQL que podem ser usadas para saber mais sobre seus perfis de dados. Ela também mostra como visualizar perfis de dados no Data Studio.

Para mais informações sobre perfis de dados, consulte Visão geral da descoberta de dados sensíveis.

Antes de começar

Esta página pressupõe que você configurou a criação de perfil no nível da organização, da pasta ou do projeto. Na configuração de verificação de descoberta, verifique se a ação Salvar cópias do perfil dos dados no BigQuery está ativada. Para mais informações sobre como criar uma configuração de verificação de descoberta, consulte Criar uma configuração de verificação.

A tabela de saída

Neste documento, a tabela que contém os perfis de dados exportados é chamada de tabela de saída.

Verifique se você tem o ID do projeto, do conjunto de dados e da tabela de saída disponíveis. Você precisa deles para realizar os procedimentos nesta página.

A visualização latest

Quando a Proteção de Dados Sensíveis exporta perfis de dados para a tabela de saída, ela também cria a latest visualização. Essa visualização é uma tabela virtual pré-filtrada que inclui apenas os snapshots mais recentes dos seus perfis de dados. A visualização latest tem o mesmo esquema da tabela de saída. Portanto, você pode usar as duas de forma intercambiável nas consultas SQL e nos relatórios do Data Studio. Os resultados podem ser diferentes porque a tabela de saída contém snapshots mais antigos dos perfis de dados.

A visualização latest é armazenada no mesmo local que a tabela de saída. O nome dela tem o seguinte formato:

OUTPUT_TABLE_latest_VERSION

Substitua:

  • OUTPUT_TABLE: o ID da tabela que contém os perfis de dados exportados.
  • VERSION: o número da versão da visualização.

Por exemplo, se o nome da tabela de saída for table-profile, a visualização latest terá um nome como table-profile_latest_v1.

Visualização mais recente

Ao usar a visualização latest em consultas SQL, use o nome completo dela, que inclui o ID do projeto, do conjunto de dados, da tabela e o sufixo, por exemplo, myproject.mydataset.table-profile_latest_v1.

PROJECT_ID.DATASET_ID.OUTPUT_TABLE_latest_VERSION

Escolher entre a tabela de saída e a visualização latest

A visualização latest inclui apenas os snapshots de perfil dos dados mais recentes, enquanto a tabela de saída tem todos os snapshots de perfil dos dados, incluindo os desatualizados. Por exemplo, uma consulta na tabela de saída pode retornar vários perfis de dados de coluna para a mesma coluna, um para cada vez que a coluna foi criada.

Ao escolher entre usar a tabela de saída e a visualização latest nas consultas SQL ou nos relatórios do Data Studio, considere o seguinte:

  • A visualização latest é útil se você tiver recursos de dados que foram recriados e quiser ver apenas os perfis mais recentes, não as versões anteriores. Ou seja, você quer ver o estado atual dos seus dados de perfil.

  • A tabela de saída é útil se você quiser ter uma visualização histórica dos seus dados criados. Por exemplo, você está tentando determinar se sua organização já armazenou um InfoType específico ou quer ver as mudanças que um perfil dos dados específico passou.

Amostras de consultas SQL

Esta seção fornece exemplos de consultas que podem ser usadas ao analisar perfis de dados. Para executar essas consultas, consulte Como executar consultas interativas.

Nos exemplos a seguir, substitua TABLE_OR_VIEW por um destes:

Em ambos os casos, é necessário incluir o ID do projeto e do conjunto de dados.

Para mais informações, consulte Escolher entre a tabela de saída e a visualização latest nesta página.

Para resolver qualquer erro, consulte Mensagens de erro.

Listar todas as colunas que têm uma pontuação de texto livre alta e evidências de outras correspondências de infoType

SELECT
  column_profile.table_full_resource,
  column_profile.COLUMN,
  other_matches.info_type.name,
  column_profile.profile_last_generated
FROM
   `TABLE_OR_VIEW`
  LEFT JOIN UNNEST(column_profile.other_matches) AS other_matches
WHERE
  column_profile.free_text_score = 1
  AND ( column_profile.column_info_type.info_type.name>""
    OR ARRAY_LENGTH(column_profile.other_matches)>0 )

Para informações sobre como corrigir essas descobertas, consulte Estratégias recomendadas para mitigar o risco de dados.

Para mais informações sobre as métricas Pontuação de texto livre e Outros infoTypes , consulte Perfis de dados de coluna.

Listar todas as tabelas que contêm uma coluna de números de cartão de crédito

SELECT
  column_profile.table_full_resource,
  column_profile.profile_last_generated
FROM
  `TABLE_OR_VIEW`
WHERE
  column_profile.column_info_type.info_type.name="CREDIT_CARD_NUMBER"

CREDIT_CARD_NUMBER é um InfoType integrado que representa um número de cartão.

Para informações sobre como corrigir essas descobertas, consulte Estratégias recomendadas para mitigar o risco de dados.

Listar perfis de tabela que contêm colunas de números de cartão de crédito, CPFs ou CNPJs e nomes de pessoas

SELECT
  table_full_resource,
  COUNT(*) AS count_findings
FROM (
  SELECT
    DISTINCT column_profile.table_full_resource,
    column_profile.column_info_type.info_type.name
  FROM
    `TABLE_OR_VIEW`
  WHERE
    column_profile.column_info_type.info_type.name IN ('PERSON_NAME',
      'CREDIT_CARD_NUMBER',
      'US_SOCIAL_SECURITY_NUMBER')
  ORDER BY
    column_profile.table_full_resource ) ot1
GROUP BY
  table_full_resource
  #increase this number to match the total distinct infoTypes that must be present
HAVING
  count_findings>=3

Essa consulta usa os seguintes infoTypes integrados:

  • CREDIT_CARD_NUMBER: representa um número de cartão
  • PERSON_NAME: representa o nome completo de uma pessoa
  • US_SOCIAL_SECURITY_NUMBER representa um número de CPF ou CNPJ dos EUA

Para informações sobre como corrigir essas descobertas, consulte Estratégias recomendadas para mitigar o risco de dados.

Listar buckets em que a pontuação de sensibilidade é SENSITIVITY_HIGH

SELECT file_store_profile.file_store_path, file_store_profile.resource_visibility, file_store_profile.sensitivity_score
FROM `TABLE_OR_VIEW`
WHERE file_store_profile.sensitivity_score.score ='SENSITIVITY_HIGH'
;

Para mais informações, consulte Perfis de dados do armazenamento de arquivos.

Listar todos os caminhos de bucket, clusters e extensões de arquivo verificados em que a pontuação de sensibilidade é SENSITIVITY_HIGH

SELECT file_store_profile.file_store_path, summaries.file_cluster_type.cluster, STRING_AGG(scanned_file_extensions.file_extension) AS scanned_extensions, file_store_profile.profile_last_generated.timestamp
FROM `TABLE_OR_VIEW`
LEFT JOIN UNNEST(file_store_profile.file_cluster_summaries) as summaries
LEFT JOIN UNNEST(summaries.file_store_info_type_summaries) as info_types
LEFT JOIN UNNEST(summaries.file_extensions_scanned) as scanned_file_extensions
WHERE file_store_profile.data_source_type.data_source = 'google/storage/bucket'
AND summaries.sensitivity_score.score ='SENSITIVITY_HIGH'
GROUP BY 1, 2, 4
;

Para mais informações, consulte Perfis de dados do armazenamento de arquivos.

Listar todos os caminhos de bucket, clusters e extensões de arquivo verificados em que números de cartão de crédito foram detectados

SELECT file_store_profile.file_store_path, summaries.file_cluster_type.cluster, STRING_AGG(scanned_file_extensions.file_extension) AS scanned_extensions
FROM `TABLE_OR_VIEW`
LEFT JOIN UNNEST(file_store_profile.file_cluster_summaries) as summaries
LEFT JOIN UNNEST(summaries.file_store_info_type_summaries) as info_types
LEFT JOIN UNNEST(summaries.file_extensions_scanned) as scanned_file_extensions
WHERE file_store_profile.data_source_type.data_source = 'google/storage/bucket'
AND info_types.info_type.name='CREDIT_CARD_NUMBER'
GROUP BY 1, 2
;

CREDIT_CARD_NUMBER é um InfoType integrado que representa um número de cartão.

Para mais informações, consulte Perfis de dados do armazenamento de arquivos.

Listar todos os caminhos de bucket, clusters e extensões de arquivo verificados em que um número de cartão, nome de pessoa ou CPF ou CNPJ dos EUA foi detectado

SELECT file_store_profile.file_store_path, summaries.file_cluster_type.cluster, STRING_AGG(scanned_file_extensions.file_extension) AS scanned_extensions
FROM `TABLE_OR_VIEW`
LEFT JOIN UNNEST(file_store_profile.file_cluster_summaries) as summaries
LEFT JOIN UNNEST(summaries.file_store_info_type_summaries) as info_types
LEFT JOIN UNNEST(summaries.file_extensions_scanned) as scanned_file_extensions
WHERE file_store_profile.data_source_type.data_source = 'google/storage/bucket'
AND info_types.info_type.name IN ('CREDIT_CARD_NUMBER', 'PERSON_NAME', 'US_SOCIAL_SECURITY_NUMBER')
GROUP BY 1, 2
;

Essa consulta usa os seguintes infoTypes integrados:

  • CREDIT_CARD_NUMBER: representa um número de cartão
  • PERSON_NAME: representa o nome completo de uma pessoa
  • US_SOCIAL_SECURITY_NUMBER representa um número de CPF ou CNPJ dos EUA

Para mais informações, consulte Perfis de dados do armazenamento de arquivos.

Trabalhar com perfis de dados no Data Studio

Para visualizar seus perfis de dados no Data Studio, você pode usar um relatório pré-criado ou você pode criar o seu próprio.

Usar um relatório pré-criado

A Proteção de Dados Sensíveis fornece um relatório pré-criado do Data Studio que destaca os insights avançados dos perfis de dados. O painel da Proteção de Dados Sensíveis é um relatório de várias páginas que oferece uma visão geral dos seus perfis de dados, incluindo detalhamentos por risco, infoType e local. Explore as outras guias para ver visualizações por região geográfica e risco de postura ou detalhar métricas específicas. Você pode usar esse relatório pré-criado no estado em que se encontra ou personalizá-lo conforme necessário. Essa é a versão recomendada do relatório pré-criado.

Para conferir o relatório pré-criado com seus dados, insira os valores necessários no URL a seguir. Em seguida, copie o URL resultante para o navegador.

https://lookerstudio.google.com/c/u/0/reporting/create?c.reportId=c9826374-e016-4c96-a495-7281328375c6&ds.connector=BIG_QUERY&ds.projectId=PROJECT_ID&ds.datasetId=DATASET_ID&ds.tableId=TABLE_OR_VIEW&ds.type=TABLE&ds.useFreshSchema=false

Substitua:

Pode levar alguns minutos para que o Data Studio carregue o relatório com seus dados. Se você encontrar erros ou se o relatório não for carregado, consulte Resolver erros com o relatório pré-criado nesta página.

No exemplo a seguir, o painel mostra que dados de baixa e alta sensibilidade estão presentes em vários países do mundo.

Relatório predefinido

Versão anterior do relatório pré-criado

A primeira versão do relatório pré-criado ainda está disponível no seguinte endereço:

https://lookerstudio.google.com/c/u/0/reporting/create?c.reportId=907a2b73-ffe4-40b2-b9a1-c2aa0bbd69fd&ds.connector=BIG_QUERY&ds.projectId=PROJECT_ID&ds.datasetId=DATASET_ID&ds.tableId=TABLE_OR_VIEW&ds.type=TABLE&ds.useFreshSchema=false

Criar um relatório

O Data Studio permite criar relatórios interativos. Nesta seção, você cria um relatório de tabela simples no Data Studio com base nos perfis de dados exportados para a tabela de saída no BigQuery.

Verifique se você tem o ID do projeto, do conjunto de dados e da tabela de saída ou da latest visualização disponíveis. Você precisa deles para realizar esse procedimento.

Este exemplo mostra como criar um relatório contendo uma tabela que mostra cada infoType informado nos seus perfis de dados e a frequência correspondente.

Em geral, são cobrados os custos de uso do BigQuery ao acessar o BigQuery pelo Data Studio. Saiba mais em Como visualizar dados do BigQuery com o Data Studio.

Para criar um relatório, faça o seguinte:

  1. Abra o Data Studio e faça login.
  2. Clique em Relatório em branco.
  3. Na guia Conectar aos dados, clique no cartão do BigQuery.
  4. Se necessário, autorize o Data Studio a acessar seus projetos do BigQuery.
  5. Conecte-se aos dados do BigQuery:

    1. Em Projeto, selecione o projeto que contém a tabela de saída. Você pode pesquisar o projeto nas guias Projetos recentes, Meus projetos, e Projetos compartilhados.
    2. Em Conjunto de dados, selecione o conjunto de dados que contém a tabela de saída.
    3. Em Tabela, selecione a tabela de saída ou a latest visualização da tabela de saída.

      Para mais informações, consulte Escolher entre a tabela de saída e a visualização latest nesta página.

    4. Clique em Adicionar.

    5. Na caixa de diálogo que aparece, clique em Adicionar ao relatório.

  6. Para adicionar uma tabela que mostra cada infoType informado e a frequência correspondente (contagem de registros), siga estas etapas:

    1. Clique em Adicionar um gráfico.
    2. Selecione um estilo de tabela.
    3. Clique na área em que você quer posicionar o gráfico.

      O gráfico aparece no formato de tabela.

    4. Redimensione a tabela conforme necessário.

      Enquanto a tabela estiver selecionada, as propriedades dela vão aparecer no painel Gráfico.

    5. No painel Gráfico, na guia Configuração, remova as dimensões e métricas pré-selecionadas.

    6. Em Dimensão, adicione column_profile.column_info_type.info_type.name ou file_store_profile.file_cluster_summaries.file_store_info_type_summaries.info_type.name.

      Esses exemplos fornecem dados nos níveis de coluna e cluster de arquivos. Você também pode tentar outras dimensões. Por exemplo, é possível usar dimensões de nível de tabela e de bucket.

    7. Em Métrica, adicione Contagem de registros.

    A tabela resultante será semelhante a esta:

    Uma tabela mostrando os infoTypes detectados e as contagens de registros correspondentes

Saiba mais sobre tabelas no Data Studio.

Resolver erros com o relatório pré-criado

Se você encontrar erros, controles ou gráficos ausentes ao carregar o relatório pré-criado, verifique se ele está usando os campos mais recentes:

  • Se o relatório pré-criado estiver conectado à tabela de saída, confirme se ela está anexada a uma configuração de verificação de descoberta ativa. Para conferir as configurações das suas configurações de verificação, consulte Ver uma configuração de verificação.

  • Se o relatório pré-criado estiver conectado à visualização latest, confirme se ela ainda está presente no BigQuery. Se estiver presente, tente fazer uma mudança na visualização. Como alternativa, faça uma cópia da visualização e conecte o relatório pré-criado a essa cópia. Para mais informações sobre a visualização latest, consulte A visualização latest nesta página.

Se os erros continuarem aparecendo depois de tentar essas etapas, entre em contato com o Cloud Customer Care.

A seguir

Saiba mais sobre as ações que você pode realizar para corrigir as descobertas do perfil dos dados.