Auf dieser Seite finden Sie Beispielabfragen, mit denen Sie Ergebnisse des Schutzes sensibler Daten analysieren können, die nach BigQuery exportiert wurden.
Sie können einen Inspektionsjob oder Job-Trigger so konfigurieren, dass die Ergebnisse in BigQuery gespeichert werden. So können Sie die Ergebnisse für weitere Analysen abfragen. Bei der Übertragung Ihrer Ergebnisse in BigQuery werden die Daten in eine neue oder vorhandene Tabelle geschrieben.
Weitere Informationen zu allen Aktionen, die der Schutz sensibler Daten nach der Überprüfung ausführen kann , finden Sie im Konzeptthema Aktionen.
Weitere Informationen zum Ausführen von Abfragen finden Sie unter:
Spalten der BigQuery-Tabelle
Die Spalten der Tabelle mit exportierten Ergebnissen basieren auf den Attributen des
Finding Objekts.
Ergebnisse mit den Zeilen verknüpfen, die die Ergebnisse enthalten
Wenn Sie die Überprüfung einer BigQuery Tabelle konfigurieren, können Sie den Job oder Job-Trigger so einrichten, dass die exportierten Ergebnisse die IDs der Zeilen enthalten. So können Sie die Überprüfungsergebnisse mit den Zeilen verknüpfen, die sie enthalten.
Legen Sie im Inspektionsjob oder Job-Trigger die folgenden Felder auf die Namen der Spalten fest, die jede Zeile in der Tabelle eindeutig identifizieren. Das sind die Spalten, die als Primärschlüssel dienen:
- Wenn Sie die Google Cloud Console verwenden, legen Sie das Feld Identifying fields (comma separated) (Identifizierungsfelder (durch Kommas getrennt)) fest.
- Wenn Sie die DLP API verwenden, legen Sie die
identifyingFieldsEigenschaft fest.
Nach Abschluss der Überprüfung und dem Export der Ergebnisse nach BigQuery enthält jedes Ergebnis die entsprechenden Werte der von Ihnen angegebenen Spalten. Diese Werte befinden sich im Feld location.content_locations.record_location.record_key.id_values. Sie können diese Werte dann verwenden, um das Ergebnis mit der jeweiligen Zeile in der überprüften BigQuery-Tabelle zu verknüpfen.
Beispielabfragen
Sie können die folgenden Beispielabfragen verwenden, um Ihre Ergebnisse zu analysieren. Sie können die Abfragen auch in einem Visualisierungstool wie Data Studioaufrufen. Diese Abfragen werden zur Verfügung gestellt, um Ihnen den Einstieg in das Abfragen von Ergebnisdaten zu erleichtern.
Ersetzen Sie in jeder der folgenden Abfragen Folgendes:
PROJECT_ID: die Projekt-IDDATASET: der Name des BigQuery-DatasetsTABLE_ID: die Tabellen-ID
Anzahl jedes infoType auswählen
Google Cloud Console
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;
Befehlszeile
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;'
Anzahl jedes infoType nach Tag auswählen
Google Cloud Console
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;
Befehlszeile
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;'
Anzahl jedes infoType in jedem Container auswählen
Google Cloud Console
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;
Befehlszeile
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;'
Für jede Tabellenspalte gefundene Ergebnistypen auswählen
Bei dieser Abfrage werden alle Ergebnisse nach Spaltennamen gruppiert, um Ergebnisse aus einem BigQuery-Überprüfungsjob zu bearbeiten. Diese Abfrage ist nützlich, wenn Sie versuchen, die wahrscheinlichen Typen in einer bestimmten Spalte zu ermitteln. Sie können die Einstellungen anpassen, indem Sie die WHERE- und HAVING-Klauseln ändern. Wenn Ihre Ergebnistabelle beispielsweise mehrere Ergebnisse aus mehreren Tabellen enthält, können Sie diese auf eine Jobausführung oder einen Tabellennamen eingrenzen.
Google Cloud Console
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
Die obige Abfrage könnte ein solches Ergebnis für eine Beispieltabelle erzeugen, wobei die Spalte "infoTypes" anzeigt, wie oft jeder infoType in dieser Spalte gefunden wurde für diese Spalte.
| 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] |