Analisar perfis de dados

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 ter insights sobre seus dados. Também é possível usar ferramentas de visualização, como o Looker Studio, para criar relatórios personalizados de acordo com as necessidades da sua empresa. Como alternativa, você pode usar um relatório predefinido que a Proteção de dados sensíveis oferece, 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. Também mostra como visualizar perfis de dados no Looker Studio.

Para mais informações sobre perfis de dados, consulte Perfis de dados.

Antes de começar

Esta página pressupõe que você tenha configurado o perfil no nível da organização, da pasta ou do projeto. Na configuração do Discovery Scan, ative a exportação de perfil de dados clicando no botão Salvar cópias do perfil de dados no BigQuery. Para mais informações sobre como criar uma configuração de verificação de descoberta, consulte Criar uma configuração de verificação.

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ê vai precisar deles para realizar os procedimentos desta página.

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 visualização latest. 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. Assim, você pode usar as duas de forma intercambiável nas consultas SQL e nos relatórios do Looker 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 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.

Última visualização

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 mais recentes do perfil de dados, enquanto a tabela de saída tem todos os snapshots do perfil de dados, incluindo os que estão 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 analisada.

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

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

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

Amostras de consultas SQL

Esta seção mostra 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 dos seguintes:

  • O nome da tabela de saída, que contém os perfis de dados exportados, por exemplo, myproject.mydataset.table-profile.
  • O nome da visualização latest da tabela de saída, por exemplo, myproject.mydataset.table-profile_latest_v1.

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 com 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 saber como corrigir essas descobertas, consulte Estratégias recomendadas para reduzir o risco de dados.

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

Lista 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 de crédito.

Para saber como corrigir essas descobertas, consulte Estratégias recomendadas para reduzir o risco de dados.

Listar perfis de tabelas que contêm colunas de números de cartão de crédito, CPF ou CNPJ 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

Esta consulta usa os seguintes infoTypes integrados:

  • CREDIT_CARD_NUMBER: representa um número de cartão de crédito
  • PERSON_NAME: representa o nome completo de uma pessoa
  • US_SOCIAL_SECURITY_NUMBER representa um CPF

Para saber como corrigir essas descobertas, consulte Estratégias recomendadas para reduzir o risco de dados.

Lista de 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 de crédito.

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 de crédito, nome de pessoa ou CPF 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
;

Esta consulta usa os seguintes infoTypes integrados:

  • CREDIT_CARD_NUMBER: representa um número de cartão de crédito
  • PERSON_NAME: representa o nome completo de uma pessoa
  • US_SOCIAL_SECURITY_NUMBER representa um CPF

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

Trabalhar com perfis de dados no Looker Studio

Para visualizar seus perfis de dados no Looker Studio, use um relatório pré-criado ou crie o seu.

Usar um relatório predefinido

A Proteção de Dados Sensíveis oferece um relatório predefinido do Looker Studio que destaca os insights avançados dos perfis de dados. O Painel de proteção de dados confidenciais é um relatório com várias páginas que oferece uma visão geral rápida dos perfis de dados, incluindo detalhamentos por risco, infoType e local. Confira as outras guias para ver visualizações por região geográfica e risco de postura ou acesse métricas específicas. Você pode usar esse relatório predefinido como está ou personalizar conforme necessário. Esta é a versão recomendada do relatório predefinido.

Para conferir o relatório predefinido 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:

  • PROJECT_ID: o projeto que contém a tabela de saída.
  • DATASET_ID: o conjunto de dados que contém a tabela de saída.
  • TABLE_OR_VIEW: uma das seguintes opções:

    • O nome da tabela de saída, que contém os perfis de dados exportados, por exemplo, myproject.mydataset.table-profile.
    • O nome da visualização latest da tabela de saída, por exemplo, myproject.mydataset.table-profile_latest_v1.

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

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

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

Relatório predefinido

Versão anterior do relatório predefinido

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

Crie um relatório

O Looker Studio permite criar relatórios interativos. Nesta seção, você cria um relatório de tabela simples no Looker 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 visualização latest disponíveis. Você precisa deles para realizar este procedimento.

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

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

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

  1. Abra o Looker 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 Looker Studio a acessar seus projetos do BigQuery.
  5. Conecte-se aos seus 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 visualização latest 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 exibida, clique em Adicionar ao relatório.

  6. Para adicionar uma tabela que mostre 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 Chart.

    5. No painel Gráfico, na guia Configuração, remova todas 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 testar outras dimensões. Por exemplo, é possível usar dimensões no nível da tabela e do 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 Looker Studio.

Resolver erros com o relatório predefinido

Se você encontrar erros, controles ausentes ou gráficos ausentes ao carregar o relatório predefinido, 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 ativa de verificação de descoberta. Para conferir as configurações das suas configurações de verificação, consulte Conferir uma configuração de verificação.

  • Se o relatório predefinido estiver conectado à visualização latest, confirme se ela ainda está presente no BigQuery. Se estiver presente, tente fazer uma mudança na visualização. Outra opção é fazer uma cópia da visualização e conectar o relatório preparado a ela. Para mais informações sobre a visualização latest, consulte A visualização latest nesta página.

Se os erros continuarem ocorrendo depois de seguir essas etapas, entre em contato com o atendimento ao cliente do Cloud.

A seguir

Saiba o que fazer para corrigir as descobertas do perfil de dados.