Présentation du chargement de données depuis Cloud Storage

Cette page explique comment charger des données dans BigQuery à partir de Cloud Storage.

Aperçu

Lorsque vous chargez des données dans BigQuery à partir de Cloud Storage, celles-ci peuvent être dans l'un des formats suivants :

  • Valeurs séparées par des virgules (CSV)
  • JSON (délimité par un retour à la ligne)
  • Avro
  • Parquet
  • ORC
  • Exportations Cloud Datastore
  • Exportations Cloud Firestore

Le service de transfert de données BigQuery accepte les tâches de chargement récurrentes depuis Cloud Storage dans BigQuery.

BigQuery permet de charger des données à partir de l'une des classes de stockage Cloud Storage suivantes :

  • Multirégional
  • Régional
  • Nearline
  • Coldline

Considérations relatives aux zones

Lorsque vous choisissez une zone pour les données, envisagez d'entreprendre les actions suivantes :

  • Cohéberger vos buckets Cloud Storage pour charger des données.
    • Si votre ensemble de données BigQuery se trouve dans une zone multirégionale, le bucket Cloud Storage contenant les données que vous chargez doit se trouver dans un bucket régional ou multirégional de la même zone. Par exemple, si votre ensemble de données BigQuery se trouve dans l'UE, le bucket Cloud Storage doit être situé dans un bucket régional ou multirégional de l'UE.
    • Si votre ensemble de données se trouve dans une zone régionale, le bucket Cloud Storage doit être un bucket régional de la même zone. Par exemple, si votre ensemble de données se trouve dans la région Tokyo, le bucket Cloud Storage doit être un bucket régional situé à Tokyo.
    • Exception : Si votre ensemble de données se trouve dans la zone multirégionale États-Unis, vous pouvez charger des données à partir d'un bucket Cloud Storage situé dans n'importe quelle zone régionale ou multirégionale.
  • Élaborer un plan de gestion des données.
    • Si vous choisissez une ressource de stockage régionale, telle qu'un ensemble de données BigQuery ou un bucket Cloud Storage, élaborez un plan de gestion géographique des données.

Pour en savoir plus sur les zones Cloud Storage, consultez la section Zones des buckets dans la documentation de Cloud Storage.

Déplacer des données BigQuery entre des zones

Il n'est pas possible de modifier la zone d'un ensemble de données après sa création, ni de déplacer un ensemble de données d'une zone vers une autre. Si vous devez tout de même le faire, procédez comme suit :

  1. Exportez les données de vos tables BigQuery vers un bucket Cloud Storage régional ou multirégional situé dans la même zone que l'ensemble de données. Par exemple, si votre ensemble de données se trouve dans la zone multirégionale UE, exportez les données dans un bucket régional ou multirégional de l'UE.

    L'exportation de données depuis BigQuery est gratuite, mais vous payez des frais pour le stockage des données exportées dans Cloud Storage. Les exportations BigQuery sont soumises aux limites applicables aux tâches d'exportation.

  2. Copiez ou déplacez les données de votre bucket Cloud Storage vers un bucket régional ou multirégional dans la nouvelle zone. Par exemple, si vous déplacez vos données de la zone multirégionale États-Unis vers la zone régionale Tokyo, vous les transférez vers un bucket régional situé à Tokyo. Pour en savoir plus sur le transfert d'objets Cloud Storage, consultez la section Renommer, copier et déplacer des objets de la documentation de Cloud Storage.

    Notez que le transfert de données entre régions entraîne des frais de sortie de réseau dans Cloud Storage.

  3. Après avoir transféré les données vers un bucket Cloud Storage dans la nouvelle zone, créez-y un nouvel ensemble de données BigQuery. Ensuite, chargez les données du bucket Cloud Storage dans BigQuery.

    Le chargement des données dans BigQuery est gratuit, mais vous devrez payer des frais pour le stockage des données dans Cloud Storage jusqu'à ce que vous supprimiez les données ou le bucket. Le stockage des données dans BigQuery après leur chargement vous est également facturé. Le chargement de données dans BigQuery est soumis aux limites applicables aux tâches de chargement.

Pour en savoir plus sur le stockage et le transfert de grands ensembles de données à l'aide de Cloud Storage, consultez la section Utiliser Cloud Storage avec Big Data.

Limites

Vous êtes soumis aux limitations suivantes lorsque vous chargez des données dans BigQuery à partir d'un bucket Cloud Storage :

  • Si la zone de votre ensemble de données est définie sur une valeur autre que US, le bucket Cloud Storage régional ou multirégional doit se trouver dans la même région que cet ensemble de données.

Selon le format de vos données sources Cloud Storage, des limitations supplémentaires peuvent s'appliquer. Pour en savoir plus, consultez les pages suivantes :

Récupérer l'URI Cloud Storage

Pour charger des données à partir d'une source de données Cloud Storage, vous devez fournir l'URI Cloud Storage.

L'URI Cloud Storage comprend le nom du bucket et l'objet (nom de fichier). Par exemple, pour un bucket Cloud Storage mybucket et un fichier de données myfile.csv, l'URI du bucket serait gs://mybucket/myfile.csv. Si vos données sont réparties dans plusieurs fichiers, vous pouvez utiliser un caractère générique dans l'URI. Pour plus d'informations, consultez la page Demander les URI dans la documentation Cloud Storage.

BigQuery ne prend pas en charge les URI sources qui comprennent plusieurs barres obliques consécutives après la double barre oblique initiale. Le nom des objets Cloud Storage peut contenir plusieurs barres obliques ("/") consécutives. Toutefois, BigQuery convertit les barres obliques consécutives en une seule. Par exemple, bien que l'URI source suivant soit valide dans Cloud Storage, il ne fonctionne pas dans BigQuery : gs://[BUCKET]/my//object//name.

Pour récupérer l'URI Cloud Storage :

  1. Ouvrez la console Cloud Storage.

    Console Cloud Storage

  2. Accédez à l'emplacement de l'objet (fichier) contenant les données source.

  3. En haut de la console Cloud Storage, notez le chemin d'accès à l'objet. Pour composer l'URI, remplacez gs://[BUCKET]/[FILE] par le chemin correspondant, par exemple, gs://mybucket/myfile.json. [BUCKET] correspond au nom du bucket Cloud Storage et [FILE] au nom de l'objet (fichier) contenant les données.

Autorisations requises

Lorsque vous chargez des données dans BigQuery, vous avez besoin d'autorisations au niveau du projet ou de l'ensemble de données qui vous permettent de procéder au chargement dans des tables et partitions BigQuery nouvelles ou existantes. Si vous chargez des données depuis Cloud Storage, vous devez également avoir accès au bucket contenant vos données.

Autorisations BigQuery

Lorsque vous chargez des données dans BigQuery depuis Cloud Storage, vous devez disposer du rôle bigquery.dataOwner ou bigquery.dataEditor au niveau du projet ou de l'ensemble de données. Les deux rôles permettent aux utilisateurs et aux groupes de charger les données dans une nouvelle table, de les ajouter à une table existante ou de les utiliser pour écraser une table.

L'attribution des rôles au niveau du projet donne à l'utilisateur ou au groupe la possibilité de charger les données dans les tables de chaque ensemble de données du projet. L'attribution des rôles au niveau de l'ensemble de données permet à l'utilisateur ou au groupe de charger les données uniquement dans les tables de cet ensemble de données.

Pour plus d'informations sur la configuration de l'accès aux ensembles de données, consultez la page Contrôler l'accès aux ensembles de données. Pour plus d'informations sur les rôles IAM dans BigQuery, consultez la page Contrôle des accès.

Autorisations Cloud Storage

Pour charger les données d'un bucket Cloud Storage, vous devez disposer des autorisations storage.objects.get au niveau du projet ou du bucket concerné. Si vous utilisez un caractère générique dans l'URI, vous devez également disposer des autorisations storage.objects.list.

Le rôle IAM storage.objectViewer prédéfini peut être attribué pour accorder les autorisations storage.objects.get et storage.objects.list.

Journaux d'accès et de stockage Cloud Storage

Cloud Storage fournit des fichiers journaux d'accès et de stockage au format CSV, qui peuvent être directement importés dans BigQuery pour analyse. Pour plus d'informations sur le chargement et l'analyse des journaux Cloud Storage, voir Journaux d'accès et journaux de stockage dans la documentation Cloud Storage.

Prise en charge des caractères génériques dans les URI Cloud Storage

Si vos données Cloud Storage sont réparties dans plusieurs fichiers partageant un même nom de base, vous pouvez utiliser un caractère générique dans l'URI lors du chargement des données.

Pour insérer un caractère générique dans l'URI Cloud Storage, il vous suffit d'ajouter un astérisque (*) au nom de base. Par exemple, si vous disposez de deux fichiers nommés fed-sample000001.csv et fed-sample000002.csv, l'URI du bucket aura la forme suivante : gs://mybucket/fed-sample*. Cet URI générique peut ensuite être utilisé dans la console, l'UI classique, la CLI ou l'API.

Vous ne pouvez utiliser qu'un seul caractère générique pour les objets (noms de fichiers) contenus dans votre bucket. Le caractère générique peut apparaître à l'intérieur ou à la fin du nom de l'objet. Il n'est pas possible d'ajouter un caractère générique au nom d'un bucket.

Pour les exportations de Google Cloud Datastore, un seul URI peut être spécifié et il doit se terminer par .backup_info ou par .export_metadata.

Le caractère générique * n'est pas autorisé dans les cas suivants :

  • Création de tables externes associées à des exportations Cloud Datastore ou Cloud Firestore.
  • Vous chargez des données d'exportation Cloud Datastore ou Cloud Firestore depuis Cloud Storage.

Étapes suivantes

Pour apprendre à charger des données de Cloud Storage dans BigQuery, consultez la documentation relative à votre format de données :

Pour en savoir plus sur les tâches de chargement récurrentes depuis Cloud Storage dans BigQuery, consultez la page Transferts Cloud Storage.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.