Questa pagina fornisce query di esempio che puoi utilizzare per analizzare i risultati di Cloud DLP esportati in BigQuery.
Puoi configurare un job di ispezione o un trigger 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 Cloud DLP può eseguire dopo l'ispezione, consulta l'argomento concettuale Azioni.
Per ulteriori informazioni sulle query in esecuzione, vedi quanto segue:
Collega i risultati alle righe contenenti i risultati
Se configuri l'ispezione di una tabella BigQuery, puoi configurare il trigger di job o 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 trigger di job, imposta i seguenti campi sui nomi delle colonne che identificano in modo univoco ogni riga della tabella, ovvero le colonne che hanno lo scopo di una chiave primaria:
- Se utilizzi la console Google Cloud, imposta il campo Identifica i campi (separati da virgole).
- Se utilizzi l'API DLP, imposta la proprietà
identifyingFields
.
Al termine dell'ispezione, gli esiti vengono esportati in BigQuery e ogni risultato conterrà i valori corrispondenti delle colonne specificate. Questi valori saranno riportati nel campo location.content_locations.record_location.record_key.id_values
. Puoi quindi utilizzare questi valori per collegare il risultato 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 ciascuna delle seguenti query, sostituisci quanto segue:
PROJECT_ID
: l'identificatore del progettoDATASET
: 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 in base al 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;'
Seleziona 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;'
Seleziona i tipi di risultati trovati per ogni colonna di una tabella
Questa query raggruppa tutti i risultati per nome di colonna e vuole lavorare sui risultati di un job di ispezione di BigQuery. Questa query è utile se stai cercando di identificare i tipi possibili per una determinata colonna. Puoi regolare le impostazioni modificando le clausole WHERE e HAVING. Ad esempio, se nella tabella dei risultati sono inclusi più risultati della tabella, puoi limitarli a una sola esecuzione del job o al nome di una 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 precedente potrebbe produrre un risultato come questo per una tabella di esempio, dove la colonna infoType ci comunica quante istanze di ogni infoType sono state trovate per quella determinata colonna.
nome_campo | infoType |
---|---|
field1 |
CUSTOM_USER_US [count: 7004] e 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] |