検出結果が BigQuery に転送されると、データが新しいテーブルまたは既存のテーブルに書き込まれます。アクションの詳細については、アクションのコンセプトのトピックをご覧ください。
サンプルクエリ
以下のサンプルクエリを使用して、検出結果を分析できます。クエリは、Google データポータルなどの可視化ツールでも使用できます。これらのクエリは、検出データのクエリを始める際にご利用いただくために提供されています。
次の各クエリでは、[DATASET]
を BigQuery データセット名、[TABLE_ID]
をテーブル ID、[PROJECT_ID]
をプロジェクト ID に置き換えます。
各 infoType の数を選択する
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;
コマンドライン
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;'
各 infoType の数を日ごとに選択する
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;
コマンドライン
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;'
各コンテナの各 infoType の数を選択する
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;
コマンドライン
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;'
テーブルの各列の検出タイプを選択する
このクエリは、すべての検出結果を列名でグループ化し、BigQuery 検査ジョブの検出結果を処理します。指定した列のタイプを特定する場合に利用できます。設定を調整するには、WHERE 句と HAVING 句を変更します。たとえば、複数のテーブルの結果が結果テーブルに含まれている場合、これらの結果を 1 つのジョブ実行または 1 つのテーブル名に制限できます。
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
上記のクエリで、サンプル テーブルに対して次のような結果が生成されることがあります。infoTypes 列には、その infoType のインスタンス数が表示されます。
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] |