Questa pagina fornisce query di esempio che puoi utilizzare per analizzare i risultati della Protezione dei dati sensibili esportati in BigQuery.
Puoi configurare un job di ispezione o un attivatore di job per salvare i risultati in BigQuery. In questo modo puoi eseguire query sui risultati per ulteriori analisi. Quando i risultati vengono esportati in BigQuery, i dati vengono scritti in una tabella nuova o esistente.
Per ulteriori informazioni su tutte le azioni che Sensitive Data Protection può eseguire dopo l'ispezione, consulta l'argomento concettuale Azioni.
Per ulteriori informazioni sull'esecuzione di query, consulta le seguenti risorse:
Colonne della tabella BigQuery
Le colonne della tabella dei risultati esportati si basano sugli attributi dell'oggetto
Finding
.
Collega i risultati alle righe contenenti i risultati
Se stai configurando l'ispezione di una tabella BigQuery, puoi configurare il job o l'attivatore del job in modo che i risultati esportati contengano gli identificatori della riga. In questo modo puoi collegare i risultati dell'ispezione alle righe che li contengono.
Nel job di ispezione o nell'attivatore del job, imposta i seguenti campi sui nomi delle colonne che identificano in modo univoco ogni riga della tabella, ovvero le colonne che hanno la funzione di una chiave primaria:
- Se utilizzi la console Google Cloud, imposta il campo Campi di identificazione (separati da virgole).
- Se utilizzi l'API DLP, imposta la proprietà
identifyingFields
.
Al termine dell'ispezione e dell'esportazione dei risultati in
BigQuery, ogni risultato conterrà i valori corrispondenti delle
colonne che hai specificato. Questi valori saranno nel
campo location.content_locations.record_location.record_key.id_values
. Puoi poi utilizzare questi valori per collegare il rilevamento alla riga specifica nella tabella BigQuery ispezionata.
Query di esempio
Puoi utilizzare le seguenti query di esempio per analizzare i risultati. Puoi anche utilizzare le query in uno strumento di visualizzazione come Looker Studio. Queste query vengono fornite per aiutarti a iniziare a eseguire query sui dati dei risultati.
In ogni una delle seguenti query, sostituisci quanto segue:
PROJECT_ID
: l'identificatore del progettoDATASET
: il nome del set di dati BigQueryTABLE_ID
: l'ID tabella
Seleziona il conteggio di ogni infoType
Console Google 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;
Riga di 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;'
Seleziona il conteggio di ogni infoType per giorno
Console Google 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;
Riga di 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;'
Consente di selezionare il conteggio di ogni infoType in ogni contenitore
Console Google 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;
Riga di 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;'
Consente di selezionare i tipi di risultati trovati per ogni colonna di una tabella
Questa query raggruppa tutti i risultati in base al nome della colonna ed è progettata per elaborare i risultati di un job di ispezione BigQuery. Questa query è utile se stai cercando di identificare i tipi probabili per una determinata colonna. Puoi modificare le impostazioni modificando le clausole WHERE e HAVING. Ad esempio, se nella tabella dei risultati sono inclusi più risultati di tabella, puoi limitarli a un'unica esecuzione del job o a un solo nome di tabella.
Console Google 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
La query riportata sopra potrebbe produrre un risultato come questo per una tabella di esempio, dove la colonna infoTypes indica quante istanze di ciascun infoType sono state trovate per la colonna in questione.
field_name | infoType |
---|---|
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] |