Como consultar descobertas do Cloud DLP no BigQuery

Quando as descobertas são transferidas para o BigQuery, os dados são gravados em uma tabela nova ou atual. Para mais informações sobre ações, consulte o tópico conceitual Ações.

Consultas de amostra

Use as consultas de exemplo a seguir para analisar as descobertas. Também é possível usar as consultas em uma ferramenta de visualização, como o Google Data Studio. Essas consultas são fornecidas para ajudar você a começar a consultar os dados das descobertas.

Em cada uma das consultas a seguir, substitua [DATASET] pelo nome do conjunto de dados do BigQuery, [TABLE_ID] pelo ID da tabela e [PROJECT_ID] pelo identificador do projeto.

Selecionar a contagem de cada infoType

Console do Cloud

SELECT info_type.name,
COUNT(info_type.name) AS count
FROM [PROJECT_ID].[DATASET].[TABLE_ID],
GROUP BY info_type.name
ORDER BY count DESC;

Linha de comando

bq query --use_legacy_sql=false ' SELECT info_type.name,
COUNT(info_type.name) AS count
FROM [PROJECT_ID].[DATASET].[TABLE_ID],
GROUP BY info_type.name ORDER BY count DESC;'

Selecionar a contagem de cada infoType por dia

Console do Cloud

SELECT info_type.name, cast(TIMESTAMP_SECONDS(create_time.seconds) as date) as day,
COUNT(locations.container_name) AS count
FROM [PROJECT_ID].[DATASET].[TABLE_ID],
UNNEST(location.content_locations) AS locations
GROUP BY info_type.name, day
ORDER BY count DESC;

Linha de comando

bq query --use_legacy_sql=false ' SELECT info_type.name,
cast(TIMESTAMP_SECONDS(create_time.seconds) as date) as day,
COUNT(locations.container_name) AS count FROM [PROJECT_ID].[DATASET].[TABLE_ID],
UNNEST(location.content_locations) AS locations
GROUP BY info_type.name, day ORDER BY count DESC;'

Seleciona a contagem de cada infoType em cada contêiner

Console do Cloud

SELECT info_type.name, locations.container_name,
COUNT(locations.container_name) AS count
FROM [PROJECT_ID].[DATASET].[TABLE_ID],
UNNEST(location.content_locations) AS locations
GROUP BY locations.container_name, info_type.name
ORDER BY count DESC;

Linha de comando

bq query --use_legacy_sql=false ' SELECT info_type.name, locations.container_name,
COUNT(locations.container_name) AS count FROM [PROJECT_ID].[DATASET].[TABLE_ID],
UNNEST(location.content_locations) AS locations
GROUP BY locations.container_name,info_type.name ORDER BY count DESC;'

Seleciona os tipos de descoberta encontrados para cada coluna de uma tabela

Essa consulta agrupa todas as descobertas por nome de coluna e sua finalidade é trabalhar em descobertas de um job de inspeção do BigQuery, o que é útil se você está tentando identificar os tipos prováveis de uma determinada coluna. É possível ajustar as configurações modificando as cláusulas WHERE e HAVING. Por exemplo, se vários resultados de tabela forem incluídos em sua tabela de descobertas, será possível limitá-los a apenas uma execução de job ou um nome de tabela.

Console do Cloud

SELECT
  table_counts.field_name,
  STRING_AGG( CONCAT(" ",table_counts.name," [count: ",CAST(table_counts.count_total AS String),"]")
  ORDER BY
    table_counts.count_total DESC) AS infoTypes
FROM (
  SELECT
    locations.record_location.field_id.name AS field_name,
    info_type.name,
    COUNT(*) AS count_total
  FROM
    [PROJECT_ID].[DATASET].[TABLE_ID],
    UNNEST(location.content_locations) AS locations
  WHERE
    (likelihood = 'LIKELY'
      OR likelihood = 'VERY_LIKELY'
      OR likelihood = 'POSSIBLE')
  GROUP BY
    locations.record_location.field_id.name,
    info_type.name
  HAVING
    count_total>200 ) AS table_counts
GROUP BY
  table_counts.field_name
ORDER BY
  table_counts.field_name

A consulta acima pode produzir um resultado como este para uma tabela de amostra, em que a coluna infoTypes informa quantas instâncias de cada infoType foram encontradas para essa coluna.

field_name infoTypes
field1 CUSTOM_USER_US [count: 7004], CUSTOM_USER_EU [count: 2996]
field2 US_VEHICLE_IDENTIFICATION_NUMBER [count: 9597]
field3 EMAIL_ADDRESS [count: 10000]
field4 IP_ADDRESS [count: 10000]
field5 PHONE_NUMBER [count: 7815]
field6 US_SOCIAL_SECURITY_NUMBER [count: 10000]
field7 CREDIT_CARD_NUMBER [count: 10000]