Les ensembles de données Storage Insights vous permettent de collecter des métadonnées et des données d'activité à partir de vos buckets et objets Cloud Storage, puis d'analyser ces données dans BigQuery. Vous pouvez utiliser ces insights pour optimiser les coûts, effectuer des audits de sécurité et faciliter la surveillance opérationnelle.
Ce document explique comment créer une configuration d'ensemble de données et l'associer à BigQuery pour une analyse plus approfondie. Pour en savoir plus, consultez Ensembles de données Storage Insights.
Avant de commencer
Avant de configurer un ensemble de données, procédez comme suit.
Obtenir les rôles requis
Pour obtenir les autorisations nécessaires pour configurer des ensembles de données, demandez à votre administrateur de vous accorder les rôles IAM suivants sur vos projets sources :
-
Pour configurer un ensemble de données : Administrateur Storage Insights (
roles/storageinsights.admin) -
Pour associer un ensemble de données :
- Analyste Storage Insights (
roles/storageinsights.analyst) - Administrateur BigQuery (
roles/bigquery.admin)
- Analyste Storage Insights (
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour configurer des ensembles de données. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour configurer des ensembles de données :
-
Configurez un ensemble de données :
-
storageinsights.datasetConfigs.create -
storage.buckets.getObjectInsights
-
-
Associer à l'ensemble de données BigQuery :
storageinsights.datasetConfigs.linkDataset
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Activer l'API Storage Insights
Console
Ligne de commande
Pour activer l'API Storage Insights dans votre projet actuel, exécutez la commande gcloud services enable :
gcloud services enable storageinsights.googleapis.com
Pour en savoir plus sur l'activation des services pour un projet Google Cloud , consultez Activer et désactiver des services.
Configurer Storage Intelligence
Assurez-vous que Storage Intelligence est configuré pour le projet, le dossier ou l'organisation que vous souhaitez analyser avec des ensembles de données.
Créer une configuration d'ensemble de données
Pour créer une configuration d'ensemble de données, procédez comme suit. Pour en savoir plus sur les champs que vous pouvez spécifier pour la configuration de l'ensemble de données, consultez Propriétés de configuration des ensembles de données.
Console
- Dans la console Google Cloud , accédez à la page Storage Insights de Cloud Storage.
Cliquez sur Configurer l'ensemble de données.
Dans la section Nommer l'ensemble de données, saisissez le nom de votre ensemble de données. (Facultatif) Saisissez une description de l'ensemble de données. Les noms identifient les configurations d'ensembles de données et sont immuables. Le nom peut contenir jusqu'à 128 caractères, y compris des lettres, des chiffres et des traits de soulignement, et doit commencer par une lettre.
Dans la section Définir le champ d'application de l'ensemble de données, procédez comme suit :
Sélectionnez l'une des options suivantes :
Pour obtenir les métadonnées de stockage de tous les projets de l'organisation actuelle, sélectionnez Inclure l'organisation.
Pour obtenir les métadonnées de stockage de tous les projets des dossiers sélectionnés, sélectionnez Inclure les dossiers (sous-organisation/services). Pour en savoir plus sur l'obtention des ID de dossier, consultez Afficher ou lister des dossiers et des projets. Pour ajouter des dossiers :
- Dans le champ Dossier 1, saisissez l'ID du dossier.
- Pour ajouter plusieurs ID de dossier (facultatif), cliquez sur + Ajouter un autre dossier.
Pour obtenir les métadonnées de stockage des projets sélectionnés, sélectionnez Inclure des projets en indiquant des numéros de projets. Pour savoir comment trouver les numéros de projet, consultez Trouver le nom, le numéro et l'ID du projet. Pour ajouter des projets, procédez comme suit :
- Dans le champ Projet 1, saisissez le numéro du projet.
- Pour ajouter plusieurs numéros de projet (facultatif), cliquez sur + Ajouter un autre projet.
Pour ajouter des projets ou des dossiers de manière groupée, sélectionnez Importer une liste de projets/dossiers via un fichier CSV. Le fichier CSV doit contenir les numéros de projet ou les ID de dossier à inclure dans l'ensemble de données. Vous pouvez spécifier jusqu'à 10 000 projets ou dossiers dans une configuration d'ensemble de données.
Indiquez si vous souhaitez inclure automatiquement les futurs buckets dans la ressource sélectionnée.
Si vous le souhaitez, pour spécifier des filtres sur les buckets en fonction des régions et des préfixes de buckets, développez la section Filtres (facultatif). Les filtres sont appliqués de manière additive aux buckets.
Vous pouvez inclure ou exclure des buckets de régions spécifiques. Par exemple, vous pouvez exclure les buckets des régions
me-central1etme-central2. Vous pouvez également inclure ou exclure des buckets par préfixe. Par exemple, pour exclure les buckets commençant parmy-bucket, saisissez le préfixemy-bucket*.
Cliquez sur Continuer.
Dans la section Sélectionner une durée de conservation, sélectionnez une durée de conservation pour les données de l'ensemble de données.
Les données d'activité sont incluses par défaut dans l'ensemble de données et héritent de sa durée de conservation. Pour remplacer la durée de conservation de l'ensemble de données, sélectionnez Spécifier une durée de conservation pour vos données d'activité, puis sélectionnez le nombre de jours pendant lesquels conserver les données d'activité. Pour désactiver les données d'activité, définissez la durée de conservation sur
0jours.Dans la section Sélectionner l'emplacement où stocker l'ensemble de données configuré, sélectionnez un emplacement pour stocker l'ensemble de données associé. Exemple :
us-central1.L'ensemble de données associé doit se trouver dans un emplacement compatible avec BigQuery, bien que les buckets sources puissent se trouver dans n'importe quel emplacement Cloud Storage.
Dans la section Sélectionner le type de compte de service, sélectionnez un type d'agent de service pour votre ensemble de données. Choisissez un agent de service à l'échelle de la configuration ou du projet pour votre ensemble de données.
Cliquez sur Configurer.
Ligne de commande
Pour créer une configuration d'ensemble de données, exécutez la commande
gcloud storage insights dataset-configs createavec les options requises :gcloud storage insights dataset-configs create DATASET_CONFIG_ID \ --location=LOCATION \ --organization=SOURCE_ORG_NUMBER \ --retention-period-days=DATASET_RETENTION_PERIOD_DAYS \ (SCOPE_FLAG)
Remplacez :
DATASET_CONFIG_IDpar le nom de la configuration de votre ensemble de données. Les noms identifient les configurations d'ensembles de données et sont immuables. Le nom peut contenir jusqu'à 128 caractères, y compris des lettres, des chiffres et des traits de soulignement, et doit commencer par une lettre.LOCATIONpar l'emplacement où stocker l'ensemble de données associé. Par exemple,us-central1.
L'ensemble de données associé doit se trouver dans un emplacement compatible avec BigQuery, bien que les buckets sources puissent se trouver dans n'importe quel emplacement Cloud Storage.
SOURCE_ORG_NUMBERpar l'ID de l'organisation à laquelle appartiennent les projets sources. Pour trouver l'ID d'organisation, consultez Obtenir l'ID de ressource de votre organisation.DATASET_RETENTION_PERIOD_DAYSpar la durée de conservation des données de l'ensemble de données.SCOPE_FLAGavec l'un des indicateurs suivants qui définit le champ d'application des données à collecter :--enable-organization-scope: permet à l'ensemble de données de collecter des insights à partir de tous les buckets de l'organisation.--source-folders=[SOURCE_FOLDER_NUMBERS,...]: spécifie une liste de numéros de dossiers à inclure dans l'ensemble de données. Pour savoir comment trouver un numéro de dossier, consultez Répertorier tous les projets et dossiers de votre hiérarchie.--source-folders-file=FILE_PATH: spécifie plusieurs numéros de dossier en important un fichier CSV dans un bucket.--source-projects=[SOURCE_PROJECT_NUMBERS,...]: spécifie une liste de numéros de projet à inclure dans l'ensemble de données. Exemple :464036093014Pour trouver votre numéro de projet, consultez Trouver le nom, le numéro et l'ID du projet.--source-projects-file=FILE_PATH: spécifie plusieurs numéros de projet en important un fichier CSV dans un bucket.
Vous pouvez éventuellement utiliser les options supplémentaires suivantes pour configurer l'ensemble de données :
Utilisez
--include-buckets=BUCKET_NAMES_OR_REGEXpour inclure des buckets spécifiques par nom ou expression régulière. Vous ne pouvez pas utiliser cette option avec--exclude-buckets.Utilisez
--exclude-buckets=BUCKET_NAMES_OR_REGEXpour exclure des buckets spécifiques par nom ou expression régulière. Vous ne pouvez pas utiliser cette option avec--include-buckets.Utilisez
--project=DESTINATION_PROJECT_IDpour spécifier un projet dans lequel stocker la configuration de votre ensemble de données et l'ensemble de données généré. Si vous n'utilisez pas cette option, le projet de destination est votre projet actif. Pour en savoir plus sur les ID de projet, consultez Créer et gérer des projets.Utilisez
--auto-add-new-bucketspour inclure automatiquement tous les buckets ajoutés aux projets sources à l'avenir.Utilisez
--skip-verificationpour ignorer les vérifications et les échecs de la procédure de validation, qui inclut les vérifications des autorisations IAM requises. Si vous utilisez cette option, certains buckets ou tous les buckets peuvent être exclus de l'ensemble de données.Utilisez
--identity=IDENTITY_TYPEpour spécifier le champ d'application de l'agent de service créé avec la configuration de l'ensemble de données. Les valeurs sont :IDENTITY_TYPE_PER_CONFIGouIDENTITY_TYPE_PER_PROJECT. Si non spécifié, la valeur par défaut estIDENTITY_TYPE_PER_CONFIG. Pour en savoir plus, consultez Type d'agent de service.Utilisez
--description=DESCRIPTIONpour ajouter une description à la configuration de l'ensemble de données.Utilisez
--activity-data-retention-period-days=ACTIVITY_RETENTION_PERIOD_DAYSpour spécifier la durée de conservation des données d'activité dans l'ensemble de données. Par défaut, les données d'activité sont incluses dans l'ensemble de données et héritent de sa durée de conservation. Pour remplacer la durée de conservation de l'ensemble de données, spécifiez le nombre de jours pendant lesquels les données d'activité doivent être conservées. Pour exclure les données d'activité, définissez ACTIVITY_RETENTION_PERIOD_DAYS sur0.
L'exemple suivant crée une configuration d'ensemble de données nommée
my-datasetdans la régionus-central1, pour l'organisation dont l'ID est123456789, avec une durée de conservation de30jours et un champ d'application limité aux projets987654321et123123123:gcloud storage insights dataset-configs create my-dataset \ --location=us-central1 \ --organization=123456789 \ --retention-period-days=30 \ --source-projects=987654321,123123123
API JSON
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Créez un fichier JSON contenant les informations suivantes :
{ "sourceProjects": { "project_numbers": ["PROJECT_NUMBERS", ...] }, "retentionPeriodDays": "RETENTION_PERIOD_DAYS", "activityDataRetentionPeriodDays": "ACTIVITY_DATA_RETENTION_PERIOD_DAYS", "identity": { "type": "IDENTITY_TYPE" } }
Remplacez :
PROJECT_NUMBERSpar les numéros des projets que vous souhaitez inclure dans l'ensemble de données. Vous pouvez spécifier un ou plusieurs projets. Les projets doivent être spécifiés sous la forme d'une liste de chaînes.Vous pouvez également ajouter une organisation, ou un ou plusieurs dossiers contenant les buckets et les objets dont vous souhaitez modifier les métadonnées. Pour inclure des dossiers ou des organisations, utilisez les champs
sourceFoldersouorganizationScope. Pour en savoir plus, consultez la documentation de référence surDatasetConfig.RETENTION_PERIOD_DAYSpar le nombre de jours de données à capturer dans l'instantané de l'ensemble de données. Exemple :90.ACTIVITY_DATA_RETENTION_PERIOD_DAYSpar le nombre de jours de données d'activité à capturer dans l'instantané de l'ensemble de données. Par défaut, les données d'activité sont incluses dans l'ensemble de données et héritent de sa durée de conservation. Pour remplacer la durée de conservation de l'ensemble de données, spécifiez le nombre de jours pendant lesquels les données d'activité doivent être conservées. Pour exclure les données d'activité, définissez ACTIVITY_RETENTION_PERIOD_DAYS sur0.IDENTITY_TYPEpar le type de compte de service créé avec la configuration de l'ensemble de données. Les valeurs sont :IDENTITY_TYPE_PER_CONFIGouIDENTITY_TYPE_PER_PROJECT. Pour en savoir plus, consultez Type d'agent de service.
Pour créer la configuration de l'ensemble de données, utilisez
cURLpour appeler l'API JSON avec une requêteCreateDatasetConfig :curl -X POST --data-binary @JSON_FILE_NAME \ "https://storageinsights./v1/projects/PROJECT_ID/locations/LOCATION/datasetConfigs?datasetConfigId=DATASET_CONFIG_ID" \ --header "Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)" \ --header "Accept: application/json" \ --header "Content-Type: application/json"
Remplacez :
JSON_FILE_NAMEpar le chemin d'accès au fichier JSON que vous avez créé à l'étape précédente. Vous pouvez également transmettre une instance deDatasetConfigdans le corps de la requête.PROJECT_IDpar l'ID du projet auquel la configuration de l'ensemble de données et l'ensemble de données appartiendront.LOCATIONpar l'emplacement où résideront l'ensemble de données et sa configuration. Exemple :us-central1.DATASET_CONFIG_IDpar le nom de votre configuration d'ensemble de données. Les noms identifient les configurations d'ensembles de données et sont immuables. Le nom peut contenir jusqu'à 128 caractères, y compris des lettres, des chiffres et des traits de soulignement, et doit commencer par une lettre.SERVICE_ACCOUNTpar le compte de service. Exemple :test-service-account@test-project.
Pour résoudre les erreurs de traitement des instantanés enregistrées dans error_attributes_view, consultez Erreurs d'ensemble de données Storage Insights.
Accorder les autorisations requises à l'agent de service
Google Cloud crée un agent de service à l'échelle de la configuration ou du projet lorsque vous créez une configuration d'ensemble de données. L'agent de service respecte le format de nom service-PROJECT_NUMBER@gcp-sa-storageinsights. et apparaît sur la page IAM de la console Google Cloud lorsque vous sélectionnez la case Inclure les attributions de rôles fournies par Google.
Vous pouvez également trouver le nom de l'agent de service en affichant la ressource DatasetConfig à l'aide de l'API JSON.
Pour permettre à Storage Insights de générer et d'écrire des ensembles de données, demandez à votre administrateur d'accorder à l'agent de service le rôle de service de collecteur Storage Insights (roles/storage.insightsCollectorService) sur l'organisation qui contient les projets sources.
Vous devez attribuer ce rôle à chaque agent de service à l'échelle de la configuration créé pour chaque configuration d'ensemble de données dont vous souhaitez obtenir des données. Si vous utilisez un agent de service à l'échelle du projet, vous ne devez accorder ce rôle qu'une seule fois à l'agent de service pour lire et écrire des ensembles de données pour toutes les configurations d'ensembles de données du projet.
Pour savoir comment attribuer des rôles aux projets, consultez Gérer l'accès.
Associer un ensemble de données
Pour associer un ensemble de données à BigQuery, procédez comme suit :
Console
- Dans la console Google Cloud , accédez à la page Storage Insights de Cloud Storage.
Cliquez sur le nom de la configuration d'ensemble de données qui a généré l'ensemble de données que vous souhaitez associer.
Dans la section Ensemble de données associé à BigQuery, cliquez sur Associer l'ensemble de données pour associer votre ensemble de données.
Ligne de commande
Pour associer un ensemble de données à BigQuery, exécutez la commande
gcloud storage insights dataset-configs create-link:gcloud storage insights dataset-configs create-link DATASET_CONFIG_ID --location=LOCATION
Remplacez :
DATASET_CONFIG_IDpar le nom de la configuration d'ensemble de données qui a généré l'ensemble de données à associer.LOCATIONpar l'emplacement de l'ensemble de données. Par exemple,us-central1.
Vous pouvez également spécifier un chemin d'accès complet à la configuration de l'ensemble de données. Exemple :
gcloud storage insights dataset-configs create-link projects/DESTINATION_PROJECT_ID/locations/LOCATION/datasetConfigs/DATASET_CONFIG_ID
Remplacez :
DESTINATION_PROJECT_IDpar l'ID du projet contenant la configuration de l'ensemble de données. Pour en savoir plus sur les ID de projet, consultez Créer et gérer des projets.DATASET_CONFIG_IDpar le nom de la configuration d'ensemble de données qui a généré l'ensemble de données à associer.LOCATIONpar l'emplacement de votre ensemble de données et de sa configuration. Par exemple,us-central1.
API JSON
Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.Utilisez
cURLpour appeler l'API JSON avec une requêtelinkDatasetDatasetConfig :curl -X POST \ "https://storageinsights./v1/projects/PROJECT_ID/locations/LOCATION/datasetConfigsDATASET_CONFIG_ID:linkDataset?" \ --header "Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)" \ --header "Accept: application/json" \ --header "Content-Type: application/json"Remplacez :
JSON_FILE_NAMEpar le chemin d'accès au fichier JSON que vous avez créé.PROJECT_IDpar l'ID du projet auquel appartient la configuration de l'ensemble de données.LOCATIONpar l'emplacement où résident l'ensemble de données et sa configuration. Exemple :us-central1.DATASET_CONFIG_IDpar le nom de la configuration d'ensemble de données qui a généré l'ensemble de données à associer.SERVICE_ACCOUNTpar le compte de service. Exemple :test-service-account@test-project.
Analyser les données et les métadonnées d'objets à l'aide de BigQuery
Pour analyser le contenu d'un objet ou afficher ses métadonnées, utilisez la colonne ref, qui est renvoyée dans un ensemble de données Storage Insights, pour exécuter des fonctions BigQuery ObjectRef. Suivez la procédure décrite dans les sections ci-dessous.
Créer une connexion aux ressources Cloud dans BigQuery
Dans BigQuery, créez une connexion aux ressources Cloud qui accède à Cloud Storage. La connexion aux ressources Cloud permet à BigQuery d'accéder aux données et aux métadonnées des objets Cloud Storage à l'aide de son propre compte de service. Pour en savoir plus, consultez Créer une connexion aux ressources Cloud.
Utiliser la connexion aux ressources Cloud avec l'ensemble de données Storage Insights
Pour analyser les données référencées dans la colonne ref qui sont renvoyées dans un ensemble de données Storage Insights, utilisez la fonction OBJ.MAKE_REF pour combiner le URI de la colonne ref avec la connexion que vous avez créée :
SELECT OBJ.GET_ACCESS_URL(OBJ.MAKE_REF(ref.uri, "CONNECTION_ID"), "r") FROM `PROJECT_ID.INSIGHTS_DATASET.object_attributes_view` WHERE LOCATION = "US";
Remplacez :
CONNECTION_ID: ID de la connexion aux ressources Cloud que vous avez créée.PROJECT_ID: ID du projet contenant l'ensemble de données Storage Insights.INSIGHTS_DATASET: nom de l'ensemble de données Storage Insights. Exemple :storageinsights_dataset
Analyser un ensemble de données Storage Insights à l'aide d'un modèle personnalisé
BigQuery ne permet pas de créer des modèles directement dans un ensemble de données associé. Pour analyser vos données Storage Insights avec un modèle personnalisé, vous devez créer et stocker le modèle dans un ensemble de données BigQuery standard. Vous pouvez ensuite référencer ce modèle dans vos requêtes tout en ciblant l'ensemble de données associé pour l'analyse :
Créez un modèle dans un ensemble de données BigQuery (
MODEL_DATASET) du même projet que votre ensemble de données associé (INSIGHTS_DATASET) :CREATE OR REPLACE MODEL `MODEL_DATASET.gemini_model` REMOTE WITH CONNECTION `CONNECTION_ID` OPTIONS (ENDPOINT = 'gemini-2.0-flash');
Remplacez :
MODEL_DATASET: nom de l'ensemble de données dans lequel vous souhaitez créer le modèle.CONNECTION_ID: ID de la connexion aux ressources Cloud que vous avez créée.
Exécutez une requête qui référence le modèle pour analyser les données de votre ensemble de données Storage Insights. L'exemple suivant ajoute une description pour les images de l'ensemble de données :
SELECT name, result AS ai_description FROM AI.GENERATE_TEXT( MODEL `MODEL_DATASET.gemini_model`, ( SELECT name, ( 'Describe this image', OBJ.GET_ACCESS_URL( OBJ.FETCH_METADATA( OBJ.MAKE_REF( ref.uri, 'CONNECTION_ID' ) ), 'r' ) ) AS prompt FROM `INSIGHTS_DATASET.object_attributes_view` WHERE contentType LIKE 'image/%' AND NOT name LIKE '%/' LIMIT 3 ) );
Remplacez :
INSIGHTS_DATASET: nom de l'ensemble de données Storage Insights.MODEL_DATASET: nom de l'ensemble de données dans lequel vous avez créé le modèle.CONNECTION_ID: ID de la connexion aux ressources Cloud que vous avez créée.
Analyser un ensemble de données Storage Insights à l'aide d'un modèle par défaut
Vous pouvez utiliser un modèle par défaut pour générer des insights à partir de données non structurées et détecter les informations sensibles.
Générer des insights à partir de données non structurées
L'exemple de requête suivant génère des descriptions pour les images JPEG :
SELECT AI.GENERATE( ( 'Return a JSON object with fields: "description" (max 20 words)', OBJ.GET_ACCESS_URL( OBJ.MAKE_REF(ref.uri, `CONNECTION_ID`), 'r' ) ) ) FROM `PROJECT_ID.INSIGHTS_DATASET.object_attributes_view` WHERE name LIKE 'returns/electronics/%' AND contentType = 'image/jpeg';
Remplacez :
CONNECTION_ID: ID de la connexion aux ressources Cloud que vous avez créée.PROJECT_ID: ID du projet contenant l'ensemble de données Storage Insights.INSIGHTS_DATASET: nom de l'ensemble de données Storage Insights.
Détection automatisée des données sensibles
Vous pouvez utiliser des modèles multimodaux pour détecter les données sensibles, telles que les informations permettant d'identifier personnellement l'utilisateur, dans vos documents.
La requête suivante montre comment analyser des documents PDF pour rechercher des informations sensibles :
SELECT AI.GENERATE( ( 'Does this document contain any credit card numbers or home addresses? Answer "SAFE" or "SENSITIVE".', OBJ.GET_ACCESS_URL( OBJ.MAKE_REF(ref.uri, `CONNECTION_ID`), 'r' ) ) ) FROM `PROJECT_ID.INSIGHTS_DATASET.object_attributes_view` WHERE contentType = 'application/pdf';
Remplacez :
CONNECTION_ID: ID de la connexion aux ressources Cloud que vous avez créée.PROJECT_ID: ID du projet contenant l'ensemble de données Storage Insights.INSIGHTS_DATASET: nom de l'ensemble de données Storage Insights.
Analyser les contextes d'objet
Si votre ensemble de données inclut object_contexts_catalog_view, vous pouvez interroger les contextes d'objets et les données étendues (bêta) (telles que les étiquettes, les détections de visages et les cadres de délimitation) directement dans BigQuery.
Étiquetage d'images : rechercher des objets avec une étiquette spécifique
La requête suivante recherche les images annotées avec un libellé spécifique ayant un score de confiance supérieur à 0,75 :
SELECT t.project, t.bucket, t.name, t.generation, label FROM `PROJECT_ID.INSIGHTS_DATASET.object_contexts_catalog_view` AS t, UNNEST(t.contexts) AS context, UNNEST(JSON_QUERY_ARRAY(context.extendedData.labelAnnotationGroup.labelAnnotations)) AS label WHERE context.key = "google:annotation:label-detector-v1" AND LOWER(STRING(label.description)) = 'LABEL_DESCRIPTION' AND FLOAT64(label.score) > 0.75;
Remplacez :
PROJECT_ID: ID du projet contenant l'ensemble de données Storage Insights.INSIGHTS_DATASET: nom de l'ensemble de données Storage Insights.LABEL_DESCRIPTION: description de l'étiquette à rechercher (par exemple,carouclothing).
Détection de visages : trouver des photos de personnes souriantes
La requête suivante filtre les images contenant des visages dont la probabilité de joie est supérieure à 0,5 :
WITH face_stats AS ( SELECT t.project, t.bucket, t.name, t.generation, FLOAT64(face.joyProbability) AS joy_probability, FLOAT64(face.rollAngle) AS roll_angle, FLOAT64(face.panAngle) AS pan_angle, FLOAT64(face.tiltAngle) AS tilt_angle FROM `PROJECT_ID.INSIGHTS_DATASET.object_contexts_catalog_view` AS t, UNNEST(t.contexts) AS context, UNNEST(JSON_QUERY_ARRAY(context.extendedData.faceAnnotationGroup.faceAnnotations)) AS face WHERE context.key = 'google:annotation:face-detector-v1' ) SELECT * FROM face_stats WHERE joy_probability > 0.5 AND roll_angle BETWEEN -10 AND 10 AND pan_angle BETWEEN -10 AND 10 AND tilt_angle BETWEEN -10 AND 10 LIMIT 10;
Remplacez :
PROJECT_ID: ID du projet contenant l'ensemble de données Storage Insights.INSIGHTS_DATASET: nom de l'ensemble de données Storage Insights.
Détection d'objets : trouver les coordonnées du cadre de délimitation des objets détectés
La requête suivante extrait les coordonnées du cadre de délimitation pour les objets détectés avec un score de confiance supérieur à 0,50 :
SELECT t.project, t.bucket, t.name AS object_name, t.generation, STRING(object.name) AS detected_object_name, FLOAT64(object.score) AS confidence_score, ( SELECT AS STRUCT MIN(FLOAT64(v.x)) AS x_min, MIN(FLOAT64(v.y)) AS y_min, MAX(FLOAT64(v.x)) AS x_max, MAX(FLOAT64(v.y)) AS y_max FROM UNNEST(JSON_QUERY_ARRAY(object.boundingPoly.normalizedVertices)) AS v ).* FROM `PROJECT_ID.INSIGHTS_DATASET.object_contexts_catalog_view` AS t, UNNEST(t.contexts) AS context, UNNEST(JSON_QUERY_ARRAY(context.extendedData.objectAnnotationGroup.objectAnnotations)) AS object WHERE context.key = 'google:annotation:object-detector-v1' AND LOWER(STRING(object.name)) = 'DETECTED_OBJECT_NAME' AND FLOAT64(object.score) > 0.50 LIMIT 20;
Remplacez :
PROJECT_ID: ID du projet contenant l'ensemble de données Storage Insights.INSIGHTS_DATASET: nom de l'ensemble de données Storage Insights.DETECTED_OBJECT_NAME: nom de la classe d'objets détectés à rechercher (par exemple,drinkoucar).