La fonctionnalité d'ensembles de données Storage Insights vous aide à comprendre, organiser et gérer vos données à grande échelle. Vous pouvez choisir une organisation, ou un ou plusieurs projets ou dossiers contenant les buckets et les objets dont vous souhaitez modifier les métadonnées. Un index de métadonnées interrogeable pour les buckets et les objets inclus dans ces projets est mis à disposition sous forme d'ensemble de données associé à BigQuery.
Si vous souhaitez obtenir des insights sur vos ressources Cloud Storage exportées vers BigQuery, utilisez les ensembles de données Storage Insights. Ces insights peuvent vous aider à explorer les données, à optimiser les coûts, à renforcer la sécurité et à mettre en œuvre la gouvernance. Les ensembles de données Storage Insights sont une fonctionnalité exclusive disponible uniquement avec l'abonnement Storage Intelligence.
Présentation
Un ensemble de données Storage Insights est un instantané continu des métadonnées de tous les buckets et objets d'un ou de plusieurs projets sources spécifiés au sein d'une organisation. Les informations fournies par les ensembles de données vous permettent de mieux comprendre vos données Cloud Storage et de les auditer régulièrement.
Pour créer un ensemble de données, vous devez d'abord créer une configuration d'ensemble de données dans un projet. Vous pouvez choisir une organisation, ou un ou plusieurs projets ou dossiers contenant les buckets et les objets dont vous souhaitez afficher les métadonnées. La configuration d'ensemble de données génère des ensembles de données quotidiennement. Les configurations d'ensemble de données et les ensembles de données sont des ressources stockées dans Cloud Storage.
Pour afficher un ensemble de données, vous devez d'abord associer l'ensemble de données à BigQuery.
Propriétés de configuration des ensembles de données
Lorsque vous créez une configuration d'ensemble de données, vous définissez les propriétés de l'ensemble de données ci-dessous. Une fois l'ensemble de données configuré, il peut s'écouler jusqu'à 48 heures avant que les premières données ne s'affichent en tant qu'ensemble de données associé dans BigQuery. Tous les objets ou buckets nouvellement ajoutés sont inclus dans l'instantané quotidien suivant.
Nom : nom utilisé pour référencer l'ensemble de données. Les noms servent d'identifiants pour les configurations d'ensembles de données et ne peuvent pas être modifiés une fois la configuration créée. Le nom peut contenir jusqu'à 128 caractères (lettres, chiffres et traits de soulignement). Le nom doit commencer par une lettre.
Description (facultatif) : description de l'ensemble de données. Vous pouvez modifier la description à tout moment.
Champ d'application de l'ensemble de données : champ obligatoire qui spécifie une organisation, des projets ou des dossiers contenant les buckets et les objets pour lesquels vous souhaitez obtenir des métadonnées. Vous pouvez spécifier des projets ou des dossiers individuellement ou sous forme de fichier CSV, avec chaque numéro de projet ou de dossier sur une ligne distincte. Vous pouvez spécifier jusqu'à 10 000 projets ou dossiers dans une configuration d'ensemble de données. Les ensembles de données sont configurés pour le champ d'application spécifié. Vous ne pouvez spécifier qu'un seul champ d'application de l'ensemble de données pour chaque configuration d'ensemble de données. Vous pouvez modifier le champ d'application de l'ensemble de données lorsque vous modifiez sa configuration.
Filtres de buckets (facultatif) : filtres utilisés pour inclure et exclure des buckets spécifiques de l'ensemble de données par nom de bucket ou par région.
Période de conservation : nombre de jours pendant lesquels l'ensemble de données capture et conserve les données, y compris la date de création de l'ensemble de données. Les ensembles de données sont mis à jour avec des métadonnées toutes les 24 heures et peuvent conserver les données pendant 90 jours maximum. Les données collectées en dehors de la période de conservation sont automatiquement supprimées. Par exemple, supposons que vous ayez créé un ensemble de données le 1er octobre 2023 avec une période de conservation de 30 jours. Le 30 octobre, l'ensemble de données reflétera les données des 30 derniers jours, du 1er au 30 octobre. Le 31 octobre, l'ensemble de données reflétera les données du 2 au 31 octobre. Vous pouvez modifier la période de conservation à tout moment.
Emplacement : emplacement où stocker l'ensemble de données et ses données. Exemple :
us-central1. L'emplacement doit être compatible avec BigQuery. Nous vous recommandons de sélectionner l'emplacement de vos tables BigQuery, le cas échéant.Type d'agent de service : agent de service à l'échelle de la configuration ou agent de service à l'échelle du projet.
La création d'une configuration d'ensemble de données provisionne un agent de service pour vous. Pour lire et écrire des ensembles de données, l'agent de service doit disposer des autorisations requises.
Un agent de service à l'échelle du projet dispose d'un accès en lecture et en écriture aux ensembles de données générés à partir de toutes les configurations d'ensemble de données du projet. Par exemple, si vous avez plusieurs configurations d'ensembles de données dans un projet, il vous suffit d'accorder une seule fois les autorisations requises à l'agent de service à l'échelle du projet pour qu'il puisse lire et écrire des ensembles de données pour toutes les configurations d'ensembles de données du projet. Lorsqu'une configuration d'ensemble de données est supprimée, l'agent de service à l'échelle du projet n'est pas supprimé.
Un agent de service à l'échelle de la configuration ne dispose d'un accès en lecture et en écriture qu'à l'ensemble de données généré par la configuration d'ensemble de données spécifique. Cela signifie que si vous avez plusieurs configurations d'ensembles de données, vous devrez accorder les autorisations requises à chaque agent de service à l'échelle de la configuration. Lorsqu'une configuration d'ensemble de données est supprimée, l'agent de service à l'échelle de la configuration est supprimé.
Associez l'ensemble de données à BigQuery après avoir créé une configuration d'ensemble de données. Associer un ensemble de données à BigQuery crée un ensemble de données associé dans BigQuery pour le requêtage. Vous pouvez associer ou dissocier l'ensemble de données à tout moment.
Pour en savoir plus sur les propriétés que vous définissez lorsque vous créez ou mettez à jour une configuration d'ensemble de données, consultez la ressource DatasetConfigs dans la documentation de l'API JSON.
Emplacements compatibles
Les emplacements BigQuery suivants sont pris en charge pour la création d'ensembles de données associés :
EUUSasia-southeast1europe-west1us-central1us-east1us-east4
Schéma de métadonnées des ensembles de données
Les sections suivantes décrivent les champs de métadonnées inclus dans les ensembles de données. Pour en savoir plus sur les modes de colonne BigQuery, consultez Modes. Les modes de colonne déterminent comment BigQuery stocke et interroge les données.
Métadonnées des buckets
Le tableau suivant décrit les champs de métadonnées des buckets :
| Champ de métadonnées | Mode | Type | Description |
|---|---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
Le champ snapshotTime stocke la date et l'heure d'actualisation de l'instantané des métadonnées du bucket au format RFC 3339. |
name |
NULLABLE |
STRING |
Nom du bucket. |
location |
NULLABLE |
STRING |
Emplacement du bucket. Les données d'objets des objets du bucket résident dans un espace de stockage physique à cet emplacement. |
project |
NULLABLE |
INTEGER |
Numéro du projet auquel appartient le bucket. |
storageClass |
NULLABLE |
STRING |
Classe de stockage par défaut du bucket. |
public |
NULLABLE |
RECORD |
Obsolète. Ce champ indique si un bucket était accessible publiquement. Utilisez plutôt iamConfiguration. |
public.bucketPolicyOnly |
NULLABLE |
BOOLEAN |
Obsolète. Ce champ, qui fait partie de l'enregistrement public, indique si l'accès uniforme au niveau du bucket a été activé, ce qui empêche l'attribution d'accès via les LCA au niveau des objets. |
public.publicAccessPrevention |
NULLABLE |
STRING |
Obsolète. Ce champ, qui fait partie de l'enregistrement public, indique si l'accès public au bucket a été empêché. |
autoclass |
NULLABLE |
RECORD |
Configuration Autoclass du bucket, qui, lorsqu'elle est activée, contrôle la classe de stockage des objets en fonction de la manière et du moment où l'on y accède. |
autoclass.enabled |
NULLABLE |
BOOLEAN |
Indique si la classe automatique est activée ou non. |
autoclass.toggleTime |
NULLABLE |
TIMESTAMP |
Date et heure auxquelles la classe automatique a été activée ou désactivée pour la dernière fois pour ce bucket, au format RFC 3339. |
versioning |
NULLABLE |
BOOLEAN |
Indique si la gestion des versions est activée dans le bucket. Pour en savoir plus, consultez Gestion des versions d'objets. |
lifecycle |
NULLABLE |
BOOLEAN |
Indique si le bucket dispose d'une configuration de cycle de vie. Pour en savoir plus, consultez Gestion du cycle de vie. |
metageneration |
NULLABLE |
INTEGER |
Génération des métadonnées de ce bucket. |
timeCreated |
NULLABLE |
TIMESTAMP |
Date et heure de création du bucket au format RFC 3339. |
tags |
NULLABLE |
RECORD |
Obsolète. Ce champ contient des paires clé-valeur définies par l'utilisateur associées au bucket. Utilisez plutôt des tags de ressources. |
tags.lastUpdatedTime |
NULLABLE |
TIMESTAMP |
Obsolète. Ce champ, qui fait partie de l'enregistrement tags, indique la date et l'heure de dernière mise à jour des tags. |
tags.tagMap |
REPEATED |
RECORD |
Obsolète. Ce champ, qui fait partie de l'enregistrement tags, contient le mappage des clés et des valeurs de tag. |
tags.tagMap.key |
NULLABLE |
STRING |
Obsolète. Ce champ, qui fait partie de l'enregistrement tags.tagMap, représente la clé d'un tag. |
tags.tagMap.value |
NULLABLE |
STRING |
Obsolète. Ce champ, qui fait partie de l'enregistrement tags.tagMap, représente la valeur d'un tag. |
labels |
REPEATED |
RECORD |
Étiquettes de bucket fournies par l'utilisateur, sous forme de paires clé/valeur. |
labels.key |
NULLABLE |
STRING |
Entrée d'étiquette individuelle. |
labels.value |
NULLABLE |
STRING |
Valeur de l'étiquette. |
softDeletePolicy |
NULLABLE |
OBJECT |
Règle de suppression réversible du bucket, qui définit la période pendant laquelle les objets du bucket sont conservés dans un état de suppression réversible après leur suppression. Les objets dans un état de suppression réversible ne peuvent pas être supprimés définitivement et peuvent être restaurés jusqu'à la date et heure définie par hardDeleteTime. |
softDeletePolicy.effectiveTime |
NULLABLE |
DATETIME |
Date et heure auxquelles la règle de suppression réversible prend effet, au format RFC 3339.
|
softDeletePolicy.retentionDurationSeconds |
NULLABLE |
LONG |
Période pendant laquelle un objet supprimé de façon réversible est conservé et ne peut pas être supprimé définitivement, en secondes. La valeur doit être supérieure ou égale à 604800 (7 jours) et inférieure à 7776000 (90 jours). La valeur peut également être définie sur 0, ce qui désactive la règle de suppression réversible. |
iamConfiguration |
NULLABLE |
RECORD |
Configuration IAM pour un bucket. |
iamConfiguration.uniformBucketLevelAccess |
NULLABLE |
RECORD |
Configuration de l'accès uniforme au niveau du bucket du bucket. |
iamConfiguration.uniformBucketLevelAccess.enabled |
NULLABLE |
BOOLEAN |
Indique si le bucket utilise l'accès uniforme au niveau du bucket. |
iamConfiguration.publicAccessPrevention |
NULLABLE |
STRING |
État de la protection contre l'accès public du bucket, à savoir "inherited" ou "enforced". |
resourceTags |
REPEATED |
RECORD |
Tags du bucket. Pour en savoir plus, consultez API Cloud Resource Manager. |
resourceTags.key |
NULLABLE |
STRING |
Clé du tag de ressource. |
resourceTags.value |
NULLABLE |
STRING |
Valeur du tag de ressource. |
totalSize |
NULLABLE |
INTEGER |
Taille du bucket en octets. |
objectCount |
NULLABLE |
INTEGER |
Nombre total d'objets dans le bucket. |
Métadonnées des objets
Le tableau suivant décrit les champs de métadonnées des objets :
| Champ de métadonnées | Mode | Type | Description |
|---|---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
Le champ snapshotTime stocke la date et l'heure d'actualisation de l'instantané des métadonnées de l'objet au format RFC 3339. |
bucket |
NULLABLE |
STRING |
Nom du bucket contenant cet objet. |
location |
NULLABLE |
STRING |
Emplacement du bucket. Les données d'objets des objets du bucket résident dans un espace de stockage physique à cet emplacement. |
componentCount |
NULLABLE |
INTEGER |
Renvoyé uniquement pour les objets composites. Nombre d'objets non composites dans l'objet composite. componentCount inclut les objets non composites qui faisaient partie des objets composites utilisés pour composer l'objet actuel. |
contentDisposition |
NULLABLE |
STRING |
Content-Disposition des données d'objet. |
contentEncoding |
NULLABLE |
STRING |
Content-Encoding des données d'objet. |
contentLanguage |
NULLABLE |
STRING |
Content-Language des données d'objet. |
contentType |
NULLABLE |
STRING |
Content-Type des données d'objet. |
crc32c |
NULLABLE |
INTEGER |
Somme de contrôle CRC32C, comme décrit dans la RFC 4960 Annexe B, encodée en base64 et classée par ordre d'octets en mode big-endian. |
customTime |
NULLABLE |
TIMESTAMP |
Code temporel spécifié par l'utilisateur pour l'objet au format RFC 3339. |
etag |
NULLABLE |
STRING |
Tag d'entité HTTP 1.1 pour l'objet. |
eventBasedHold |
NULLABLE |
BOOLEAN |
Indique si l'objet est soumis à une obligation de conservation basée sur des événements. |
generation |
NULLABLE |
INTEGER |
Génération du contenu de cet objet. |
md5Hash |
NULLABLE |
STRING |
Hachage MD5 des données, encodé en base64. Ce champ n'est pas présent pour les objets composites. |
mediaLink |
NULLABLE |
STRING |
URL permettant de télécharger les données de l'objet. |
metadata |
REPEATED |
RECORD |
Métadonnées fournies par l'utilisateur, sous forme de paires clé/valeur. |
metadata.key |
NULLABLE |
STRING |
Entrée de métadonnées individuelle. |
metadata.value |
NULLABLE |
STRING |
Valeur de métadonnées. |
metageneration |
NULLABLE |
INTEGER |
Version des métadonnées de cet objet à cette génération. |
name |
NULLABLE |
STRING |
Nom de l'objet. |
selfLink |
NULLABLE |
STRING |
URL pour cet objet. |
size |
NULLABLE |
INTEGER |
Content-Length des données en octets. |
storageClass |
NULLABLE |
STRING |
Classe de stockage de l'objet. |
temporaryHold |
NULLABLE |
BOOLEAN |
Indique si l'objet est soumis à une préservation temporaire. |
timeCreated |
NULLABLE |
TIMESTAMP |
Date et heure de création de l'objet au format RFC 3339. |
timeDeleted |
NULLABLE |
TIMESTAMP |
Date et heure de suppression de l'objet au format RFC 3339. |
updated |
NULLABLE |
TIMESTAMP |
Date et heure de modification des métadonnées de l'objet au format RFC 3339. |
timeStorageClassUpdated |
NULLABLE |
TIMESTAMP |
Date et heure de dernière modification de la classe de stockage de l'objet. |
retentionExpirationTime |
NULLABLE |
TIMESTAMP |
Date et heure à partir desquelles l'objet peut être supprimé, en fonction de la configuration de la conservation définie pour l'objet et de toute règle de conservation définie pour le bucket contenant l'objet. La valeur de retentionExpirationTime est indiquée au format RFC 3339. |
softDeleteTime |
NULLABLE |
DATETIME |
Date et heure auxquelles l'objet a été supprimé de façon réversible. Cette option n'est disponible que pour les objets se trouvant dans des buckets dotés d'une règle de suppression réversible. |
hardDeleteTime |
NULLABLE |
DATETIME |
Date et heure auxquelles un objet supprimé de façon réversible est définitivement supprimé et ne peut plus être restauré. Cette valeur correspond à la somme des valeurs softDeleteTime et softDeletePolicy.retentionDurationSeconds du bucket. Cette option n'est disponible que pour les objets se trouvant dans des buckets dotés d'une règle de suppression réversible. |
project |
NULLABLE |
INTEGER |
Numéro du projet auquel appartient le bucket. |
Dernier instantané des métadonnées de buckets et d'objets
L'ensemble de données associé expose le dernier instantané des métadonnées de buckets et d'objets via les vues dédiées suivantes :
bucket_attributes_latest_snapshot_viewfournit les dernières métadonnées pour vos buckets Cloud Storage. Sa structure correspond au schéma de métadonnées du bucket.object_attributes_latest_snapshot_viewfournit les dernières métadonnées pour vos objets Cloud Storage. Sa structure correspond au schéma de métadonnées d'objet.
Métadonnées de projet
Les métadonnées du projet sont exposées sous la forme d'une vue nommée project_attributes_view dans l'ensemble de données associé :
| Champ de métadonnées | Mode | Type | Description |
|---|---|---|---|
snapshotTime |
NULLABLE |
TIMESTAMP |
Le champ snapshotTime stocke la date et l'heure d'actualisation de l'instantané des métadonnées de projet au format RFC 3339. |
name |
NULLABLE |
STRING |
Nom du projet. |
id |
NULLABLE |
STRING |
Identifiant unique pour le projet. |
number |
NULLABLE |
NUMBER |
Valeur numérique associée au projet. |
Schéma de l'ensemble de données pour les événements et les erreurs
Dans l'ensemble de données associé, vous pouvez également afficher les événements et les erreurs de traitement des instantanés dans les vues events_view et error_attributes_view. Pour savoir comment résoudre les erreurs de traitement des instantanés, consultez Résoudre les erreurs liées aux ensembles de données.
Journal des événements
Vous pouvez afficher les journaux d'événements dans la vue events_view de l'ensemble de données associé :
| Nom de la colonne | Mode | Type | Description |
|---|---|---|---|
manifest.snapshotTime |
NULLABLE |
TIMESTAMP |
Date et heure d'actualisation de l'instantané des événements, au format RFC 3339. |
manifest.viewName |
NULLABLE |
STRING |
Nom de la vue actualisée. |
manifest.location |
NULLABLE |
STRING |
Emplacement source des données actualisées. |
globalManifest.snapshotTime |
NULLABLE |
TIMESTAMP |
Date et heure d'actualisation de l'instantané des événements, au format RFC 3339. |
eventTime |
NULLABLE |
STRING |
Date et heure auxquelles l'événement s'est produit. |
eventCode |
NULLABLE |
STRING |
Code d'événement associé à l'entrée correspondante. Le code d'événement 1 fait référence à l'actualisation de la vue manifest.viewName avec toutes les entrées pour l'emplacement source manifest.location dans l'instantané manifest.snapshotTime. Le code d'événement 2 indique que l'ensemble de données est actualisé avec les entrées de bucket et d'objet pour tous les emplacements sources. Cette actualisation a lieu dans l'instantané globalManifest.snapshotTime. |
Codes d'erreur
Vous pouvez afficher les codes d'erreur dans la vue error_attributes_view de l'ensemble de données associé :
| Nom de la colonne | Mode | Type | Description |
|---|---|---|---|
errorCode |
NULLABLE |
INTEGER |
Code d'erreur associé à cette entrée. Pour obtenir la liste des valeurs valides et savoir comment les résoudre, consultez Résoudre les erreurs liées aux ensembles de données. |
errorSource |
NULLABLE |
STRING |
Source de l'erreur. Valeur valide : CONFIGURATION_PREPROCESSING. |
errorTime |
NULLABLE |
TIMESTAMP |
Date et heure auxquelles l'erreur s'est produite. |
sourceGcsLocation |
NULLABLE |
STRING |
Emplacement Cloud Storage source de l'erreur. Pour les projets, ce champ est nul, car ils n'ont pas d'emplacement. |
bucketErrorRecord.bucketName |
NULLABLE |
STRING |
Nom du bucket concerné par l'erreur. Vous pouvez utiliser ces informations pour déboguer une erreur de bucket. |
bucketErrorRecord.serviceAccount |
NULLABLE |
STRING |
Compte de service qui a besoin d'une autorisation pour ingérer des objets à partir du bucket. Vous pouvez utiliser ces informations pour déboguer une erreur de bucket. |
projectErrorRecord.projectNumber |
NULLABLE |
INTEGER |
Numéro du projet concerné par l'erreur. Vous pouvez utiliser ces informations pour déboguer une erreur de projet. |
projectErrorRecord.organizationName |
NULLABLE |
STRING |
Numéro de l'organisation à laquelle le projet doit appartenir pour être traité. La valeur 0 indique que l'ensemble de données ne se trouve pas dans l'organisation. Vous pouvez utiliser ces informations pour déboguer une erreur de projet. |
Résoudre les erreurs liées aux ensembles de données
Pour savoir comment résoudre les problèmes de traitement des instantanés enregistrés dans la vue error_attributes_view de l'ensemble de données associé, consultez le tableau suivant :
| Code d'erreur | Cas d'erreur | Message d'erreur | Dépannage |
|---|---|---|---|
| 1 | Le projet source n'appartient pas à l'organisation | Le projet source projectErrorRecord.projectNumber n'appartient pas à l'organisation projectErrorRecord.organizationName. |
Ajoutez le projet source projectErrorRecord.projectNumber à l'organisation projectErrorRecord.organizationName. Pour savoir comment migrer un projet entre des organisations, consultez Migrer des projets entre des organisations. |
| 2 | Erreur d'autorisation du bucket | Autorisation refusée pour ingérer des objets pour le bucket bucketErrorRecord.bucketName. |
Accordez au compte de service les autorisations IAM (Identity and Access Management) bucketErrorRecord.serviceAccount pour permettre l'ingestion d'objets pour le bucket bucketErrorRecord.bucketName. Pour en savoir plus, consultez Accorder les autorisations requises à l'agent de service. |
| 3 | Le projet de destination n'appartient pas à l'organisation | Le projet de destination projectErrorRecord.projectNumber ne fait pas partie de l'organisation projectErrorRecord.organizationName. |
Ajoutez le projet de destination projectErrorRecord.projectNumber à l'organisation projectErrorRecord.organizationName. Pour savoir comment migrer un projet entre des organisations, consultez Migrer des projets entre des organisations. |
| 4 | Storage Intelligence n'est pas configuré pour le projet source. | Storage Intelligence n'est pas configuré pour le projet source projectErrorRecord.projectNumber. |
Configurez Storage Intelligence pour le projet source projectErrorRecord.projectNumber. Pour en savoir plus, consultez Configurer et gérer Storage Intelligence. |
| 5 | Storage Intelligence n'est pas configuré pour le bucket. | Storage Intelligence n'est pas configuré pour le bucket bucketErrorRecord.bucketName. |
Configurez Storage Intelligence pour le bucket bucketErrorRecord.bucketName. Pour en savoir plus, consultez Configurer et gérer Storage Intelligence. |
Remarques
Tenez compte des points suivants pour les configurations d'ensembles de données :
Lorsque vous renommez un dossier dans un bucket avec l'espace de noms hiérarchique activé, les noms d'objet de ce bucket sont mis à jour. Lorsqu'ils sont ingérés par l'ensemble de données associé, ces instantanés d'objets sont considérés comme de nouvelles entrées dans les ensembles de données associés.
Les ensembles de données ne sont compatibles qu'avec ces emplacements BigQuery.
Étapes suivantes
- Utilisez des ensembles de données Storage Insights.
- Apprenez-en plus sur Storage Intelligence.
- Exécutez des requêtes SQL sur les ensembles de données dans BigQuery.
- Apprenez-en plus sur les analyses BigQuery.