Analyser les profils de données

Si vous avez configuré le service de découverte des données sensibles pour envoyer tous les profils de données générés avec succès à BigQuery, vous pouvez interroger ces profils de données pour obtenir des insights sur vos données. Vous pouvez également utiliser des outils de visualisation tels que Looker Studio pour créer des rapports personnalisés adaptés aux besoins de votre entreprise. Vous pouvez également utiliser un rapport prédéfini fourni par la protection des données sensibles, l'ajuster et le partager si nécessaire.

Cette page fournit des exemples de requêtes SQL que vous pouvez utiliser pour en savoir plus sur vos profils de données. Il vous montre également comment visualiser les profils de données dans Looker Studio.

Pour en savoir plus sur les profils de données, consultez la section Profils de données.

Avant de commencer

Cette page suppose que vous avez configuré le profilage au niveau de l'organisation, du dossier ou du projet. Dans la configuration de l'analyse de découverte, veillez à activer l'exportation des profils de données en cliquant sur le bouton bascule Enregistrer des copies des profils de données dans BigQuery. Pour savoir comment créer une configuration d'analyse de découverte, consultez Créer une configuration d'analyse.

Dans ce document, la table contenant les profils de données exportés est appelée table de sortie.

Assurez-vous d'avoir à portée de main l'ID du projet, l'ID de l'ensemble de données et l'ID de la table de sortie. Vous en aurez besoin pour effectuer les procédures décrites sur cette page.

Vue latest

Lorsque la protection des données sensibles exporte des profils de données vers votre table de sortie, elle crée également la vue latest. Cette vue est une table virtuelle préfiltrée qui n'inclut que les derniers instantanés de vos profils de données. La vue latest a le même schéma que la table de sortie. Vous pouvez donc utiliser les deux de manière interchangeable dans vos requêtes SQL et vos rapports Looker Studio. Les résultats peuvent différer, car le tableau de sortie contient des instantanés plus anciens des profils de données.

La vue latest est stockée au même emplacement que la table de sortie. Son nom est au format suivant:

OUTPUT_TABLE_latest_VERSION

Remplacez les éléments suivants :

  • OUTPUT_TABLE: ID de la table contenant les profils de données exportés.
  • VERSION: numéro de version de la vue.

Par exemple, si le nom de votre table de sortie est table-profile, la vue latest porte un nom tel que table-profile_latest_v1.

Dernière vue

Lorsque vous utilisez la vue latest dans des requêtes SQL, utilisez son nom complet, qui inclut l'ID de projet, l'ID de l'ensemble de données, l'ID de la table et le suffixe (par exemple, myproject.mydataset.table-profile_latest_v1).

PROJECT_ID.DATASET_ID.OUTPUT_TABLE_latest_VERSION

Choisir entre la table de sortie et la vue latest

La vue latest n'inclut que les derniers instantanés de profil de données, tandis que la table de sortie contient tous les instantanés de profil de données, y compris les instantanés obsolètes. Par exemple, une requête sur la table de sortie peut renvoyer plusieurs profils de données de colonne pour la même colonne, un pour chaque fois que cette colonne a été profilée.

Lorsque vous choisissez d'utiliser la table de sortie ou la vue latest dans vos requêtes SQL ou vos rapports Looker Studio, tenez compte des points suivants:

  • La vue latest est utile si vous avez des composants de données qui ont été reprofilés et que vous ne souhaitez afficher que les derniers profils, et non leurs versions précédentes. En d'autres termes, vous souhaitez connaître l'état actuel de vos données profilées.

  • Le tableau de sortie est utile si vous souhaitez obtenir un historique de vos données profilées. Par exemple, vous essayez de déterminer si votre organisation a déjà stocké un infoType particulier ou si vous souhaitez voir les modifications apportées à un profil de données spécifique.

Exemples de requêtes SQL

Cette section fournit des exemples de requêtes que vous pouvez utiliser lorsque vous analysez des profils de données. Pour exécuter ces requêtes, consultez la section Exécuter des requêtes interactives.

Dans les exemples suivants, remplacez TABLE_OR_VIEW par l'un des éléments suivants:

  • Nom de la table de sortie, qui est la table contenant les profils de données exportés (par exemple, myproject.mydataset.table-profile).
  • Nom de la vue latest de la table de sortie (par exemple, myproject.mydataset.table-profile_latest_v1).

Dans les deux cas, vous devez inclure l'ID du projet et l'ID de l'ensemble de données.

Pour en savoir plus, consultez la section Choisir entre le tableau de sortie et la vue latest sur cette page.

Pour résoudre les erreurs que vous rencontrez, consultez la page Messages d'erreur.

Lister toutes les colonnes dont le score de texte libre est élevé et qui présentent des correspondances d'autres infoTypes

SELECT
  column_profile.table_full_resource,
  column_profile.COLUMN,
  other_matches.info_type.name,
  column_profile.profile_last_generated
FROM
   `TABLE_OR_VIEW`
  LEFT JOIN UNNEST(column_profile.other_matches) AS other_matches
WHERE
  column_profile.free_text_score = 1
  AND ( column_profile.column_info_type.info_type.name>""
    OR ARRAY_LENGTH(column_profile.other_matches)>0 )

Pour savoir comment remédier à ces problèmes, consultez la section Stratégies recommandées pour atténuer le risque lié aux données.

Pour en savoir plus sur les métriques Score du texte libre et Autres infoTypes, consultez la section Profils de données de colonne.

Lister toutes les tables contenant une colonne de numéros de carte de crédit

SELECT
  column_profile.table_full_resource,
  column_profile.profile_last_generated
FROM
  `TABLE_OR_VIEW`
WHERE
  column_profile.column_info_type.info_type.name="CREDIT_CARD_NUMBER"

CREDIT_CARD_NUMBER est un infoType intégré qui représente un numéro de carte de crédit.

Pour savoir comment remédier à ces problèmes, consultez la section Stratégies recommandées pour atténuer le risque lié aux données.

Lister les profils de table contenant des colonnes de numéros de carte de crédit, de numéros de sécurité sociale et de noms de personnes

SELECT
  table_full_resource,
  COUNT(*) AS count_findings
FROM (
  SELECT
    DISTINCT column_profile.table_full_resource,
    column_profile.column_info_type.info_type.name
  FROM
    `TABLE_OR_VIEW`
  WHERE
    column_profile.column_info_type.info_type.name IN ('PERSON_NAME',
      'CREDIT_CARD_NUMBER',
      'US_SOCIAL_SECURITY_NUMBER')
  ORDER BY
    column_profile.table_full_resource ) ot1
GROUP BY
  table_full_resource
  #increase this number to match the total distinct infoTypes that must be present
HAVING
  count_findings>=3

Cette requête utilise les infoTypes intégrés suivants:

  • CREDIT_CARD_NUMBER: représente un numéro de carte de crédit
  • PERSON_NAME: représente le nom complet d'une personne
  • US_SOCIAL_SECURITY_NUMBER représente un numéro de sécurité sociale américain

Pour savoir comment remédier à ces problèmes, consultez la section Stratégies recommandées pour atténuer le risque lié aux données.

Lister les buckets dont le score de sensibilité est SENSITIVITY_HIGH

SELECT file_store_profile.file_store_path, file_store_profile.resource_visibility, file_store_profile.sensitivity_score
FROM `TABLE_OR_VIEW`
WHERE file_store_profile.sensitivity_score.score ='SENSITIVITY_HIGH'
;

Pour en savoir plus, consultez la page Profils de données de Filestore.

Liste de tous les chemins d'accès aux buckets, clusters et extensions de fichiers analysés pour lesquels le score de sensibilité est SENSITIVITY_HIGH

SELECT file_store_profile.file_store_path, summaries.file_cluster_type.cluster, STRING_AGG(scanned_file_extensions.file_extension) AS scanned_extensions, file_store_profile.profile_last_generated.timestamp
FROM `TABLE_OR_VIEW`
LEFT JOIN UNNEST(file_store_profile.file_cluster_summaries) as summaries
LEFT JOIN UNNEST(summaries.file_store_info_type_summaries) as info_types
LEFT JOIN UNNEST(summaries.file_extensions_scanned) as scanned_file_extensions
WHERE file_store_profile.data_source_type.data_source = 'google/storage/bucket'
AND summaries.sensitivity_score.score ='SENSITIVITY_HIGH'
GROUP BY 1, 2, 4
;

Pour en savoir plus, consultez la page Profils de données de Filestore.

Liste de tous les chemins d'accès aux buckets, des clusters et des extensions de fichiers analysés pour lesquels des numéros de carte de crédit ont été détectés

SELECT file_store_profile.file_store_path, summaries.file_cluster_type.cluster, STRING_AGG(scanned_file_extensions.file_extension) AS scanned_extensions
FROM `TABLE_OR_VIEW`
LEFT JOIN UNNEST(file_store_profile.file_cluster_summaries) as summaries
LEFT JOIN UNNEST(summaries.file_store_info_type_summaries) as info_types
LEFT JOIN UNNEST(summaries.file_extensions_scanned) as scanned_file_extensions
WHERE file_store_profile.data_source_type.data_source = 'google/storage/bucket'
AND info_types.info_type.name='CREDIT_CARD_NUMBER'
GROUP BY 1, 2
;

CREDIT_CARD_NUMBER est un infoType intégré qui représente un numéro de carte de crédit.

Pour en savoir plus, consultez la page Profils de données de Filestore.

Liste de tous les chemins d'accès aux buckets, des clusters et des extensions de fichiers analysés pour lesquels un numéro de carte de crédit, un nom de personne ou un numéro de sécurité sociale américain a été détecté

SELECT file_store_profile.file_store_path, summaries.file_cluster_type.cluster, STRING_AGG(scanned_file_extensions.file_extension) AS scanned_extensions
FROM `TABLE_OR_VIEW`
LEFT JOIN UNNEST(file_store_profile.file_cluster_summaries) as summaries
LEFT JOIN UNNEST(summaries.file_store_info_type_summaries) as info_types
LEFT JOIN UNNEST(summaries.file_extensions_scanned) as scanned_file_extensions
WHERE file_store_profile.data_source_type.data_source = 'google/storage/bucket'
AND info_types.info_type.name IN ('CREDIT_CARD_NUMBER', 'PERSON_NAME', 'US_SOCIAL_SECURITY_NUMBER')
GROUP BY 1, 2
;

Cette requête utilise les infoTypes intégrés suivants:

  • CREDIT_CARD_NUMBER: représente un numéro de carte de crédit
  • PERSON_NAME: représente le nom complet d'une personne
  • US_SOCIAL_SECURITY_NUMBER représente un numéro de sécurité sociale américain

Pour en savoir plus, consultez la page Profils de données de Filestore.

Utiliser des profils de données dans Looker Studio

Pour visualiser vos profils de données dans Looker Studio, vous pouvez utiliser un rapport prédéfini ou en créer un.

Utiliser un rapport prédéfini

La protection des données sensibles fournit un rapport Looker Studio prédéfini qui met en avant les insights riches des profils de données. Le tableau de bord de protection des données sensibles est un rapport multipage qui vous offre un aperçu rapide et général de vos profils de données, y compris une répartition par risque, par infoType et par emplacement. Parcourez les autres onglets pour afficher les vues par région géographique et par risque de mauvaise posture, ou pour analyser en détail des métriques spécifiques. Vous pouvez utiliser ce rapport prédéfini tel quel ou le personnaliser si nécessaire. Il s'agit de la version recommandée du rapport prédéfini.

Pour afficher le rapport prédéfini avec vos données, saisissez les valeurs requises dans l'URL suivante. Copiez ensuite l'URL obtenue dans votre navigateur.

https://lookerstudio.google.com/c/u/0/reporting/create?c.reportId=c9826374-e016-4c96-a495-7281328375c6&ds.connector=BIG_QUERY&ds.projectId=PROJECT_ID&ds.datasetId=DATASET_ID&ds.tableId=TABLE_OR_VIEW&ds.type=TABLE&ds.useFreshSchema=false

Remplacez les éléments suivants :

  • PROJECT_ID: projet contenant la table de sortie.
  • DATASET_ID: ensemble de données contenant la table de sortie.
  • TABLE_OR_VIEW: l'une des options suivantes:

    • Nom de la table de sortie, qui est la table contenant les profils de données exportés (par exemple,myproject.mydataset.table-profile).
    • Nom de la vue latest de la table de sortie (par exemple, myproject.mydataset.table-profile_latest_v1).

    Pour en savoir plus, consultez la section Choisir entre le tableau de sortie et la vue latest sur cette page.

Le chargement du rapport avec vos données peut prendre quelques minutes. Si vous rencontrez des erreurs ou si le rapport ne se charge pas, consultez la section Résoudre les erreurs liées au rapport prédéfini sur cette page.

Dans l'exemple suivant, le tableau de bord montre que des données à faible et à haute sensibilité sont présentes dans plusieurs pays du monde.

Rapport prédéfini

Version précédente du rapport prédéfini

La première version du rapport prédéfini est toujours disponible à l'adresse suivante:

https://lookerstudio.google.com/c/u/0/reporting/create?c.reportId=907a2b73-ffe4-40b2-b9a1-c2aa0bbd69fd&ds.connector=BIG_QUERY&ds.projectId=PROJECT_ID&ds.datasetId=DATASET_ID&ds.tableId=TABLE_OR_VIEW&ds.type=TABLE&ds.useFreshSchema=false

Créer un rapport

Looker Studio vous permet de créer des rapports interactifs. Dans cette section, vous allez créer dans Looker Studio un rapport sous forme de tableau simple, basé sur les profils de données exportés vers votre table de sortie dans BigQuery.

Assurez-vous d'avoir à portée de main l'ID du projet, l'ID de l'ensemble de données et l'ID de la table de sortie ou de la vue latest. Vous en avez besoin pour effectuer cette procédure.

Cet exemple vous montre comment créer un rapport contenant un tableau qui affiche chaque infoType signalé dans vos profils de données et sa fréquence correspondante.

En général, l'accès à BigQuery via Looker Studio entraîne des frais d'utilisation BigQuery. Pour en savoir plus, consultez la page Visualiser des données BigQuery à l'aide de Looker Studio.

Pour créer un rapport, procédez comme suit:

  1. Ouvrez Looker Studio, puis connectez-vous.
  2. Cliquez sur Rapport vide.
  3. Dans l'onglet Se connecter aux données, cliquez sur la fiche BigQuery.
  4. Si vous y êtes invité, autorisez Looker Studio à accéder à vos projets BigQuery.
  5. Connectez-vous à vos données BigQuery:

    1. Pour Projet, sélectionnez le projet contenant la table de sortie. Vous pouvez rechercher le projet dans les onglets Projets récents, Mes projets et Projets partagés.
    2. Dans le champ Ensemble de données, sélectionnez l'ensemble de données contenant la table de sortie.
    3. Pour Table, sélectionnez la table de sortie ou la vue latest de la table de sortie.

      Pour en savoir plus, consultez la section Choisir entre le tableau de sortie et la vue latest sur cette page.

    4. Cliquez sur Ajouter.

    5. Dans la boîte de dialogue qui s'affiche, cliquez sur Ajouter au rapport.

  6. Pour ajouter un tableau affichant chaque infoType signalé et sa fréquence correspondante (nombre d'enregistrements), procédez comme suit:

    1. Cliquez sur Ajouter un graphique.
    2. Sélectionnez un style de tableau.
    3. Cliquez sur la zone dans laquelle vous souhaitez placer le graphique.

      Le graphique s'affiche au format tableau.

    4. Redimensionnez le tableau si nécessaire.

      Tant que le tableau est sélectionné, ses propriétés apparaissent dans le volet Graphique.

    5. Dans le volet Graphique, dans l'onglet Configuration, supprimez toutes les dimensions et métriques présélectionnées.

    6. Pour Dimension, ajoutez column_profile.column_info_type.info_type.name ou file_store_profile.file_cluster_summaries.file_store_info_type_summaries.info_type.name.

      Ces exemples fournissent des données au niveau des colonnes et des groupes de fichiers. Vous pouvez également essayer d'autres dimensions. Par exemple, vous pouvez utiliser des dimensions au niveau de la table et au niveau du bucket.

    7. Dans Métrique, ajoutez Nombre d'enregistrements.

    La table obtenue ressemble à ceci:

    Tableau affichant les infoTypes détectés et leur nombre d'enregistrements correspondants

En savoir plus sur les tableaux dans Looker Studio

Résoudre les erreurs avec le rapport prédéfini

Si des erreurs, des commandes ou des graphiques sont manquants lorsque vous chargez le rapport prédéfini, assurez-vous qu'il utilise les derniers champs:

  • Si votre rapport prédéfini est associé au tableau de sortie, vérifiez qu'il est associé à une configuration de numérisation de découverte active. Pour afficher les paramètres de vos configurations d'analyse, consultez Afficher une configuration d'analyse.

  • Si votre rapport prédéfini est connecté à la vue latest, vérifiez que cette vue est toujours présente dans BigQuery. Si c'est le cas, essayez de modifier la vue. Vous pouvez également créer une copie de la vue et associer le rapport prédéfini à cette copie. Pour en savoir plus sur la vue latest, consultez la section Vue latest sur cette page.

Si des erreurs persistent après avoir suivi cette procédure, contactez le service client Cloud.

Étape suivante

Découvrez les actions que vous pouvez entreprendre pour corriger les résultats du profil de données.