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

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

Présentation

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 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 :

  • Standard
  • Nearline
  • Coldline
  • Archiver

Considérations relatives aux zones

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

  • Cohébergez 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 du même emplacement. 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 du même emplacement. 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 emplacements Cloud Storage, consultez la page Emplacements des buckets dans la documentation de Cloud Storage.

Déplacer des données BigQuery entre des emplacements

Il n'est pas possible de modifier l'emplacement d'un ensemble de données après sa création. Toutefois, vous pouvez effectuer une copie de l'ensemble de données. Vous ne pouvez pas déplacer un ensemble de données d'un emplacement à un autre, mais vous pouvez déplacer (recréer) un ensemble de données manuellement.

Copier des ensembles de données

Pour connaître la procédure à suivre pour copier un ensemble de données, y compris entre plusieurs régions, consultez la page Copier des ensembles de données.

Déplacer un ensemble de données

Pour déplacer manuellement un ensemble de données d'un emplacement à un autre, 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 le même emplacement que l'ensemble de données. Par exemple, si votre ensemble de données se trouve dans l'emplacement multirégional 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 engagez 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 le nouvel emplacement. Par exemple, si vous déplacez vos données de l'emplacement multirégional US vers l'emplacement régional 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 page Copier, renommer et déplacer des objets de la documentation Cloud Storage.

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

  3. Après avoir transféré les données vers un bucket Cloud Storage dans le nouvel emplacement, créez-y un 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.

Vous pouvez également utiliser Cloud Composer pour déplacer et copier automatiquement des ensembles de données volumineux.

Pour en savoir plus sur le stockage 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 l'emplacement de votre ensemble de données est défini 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.
  • BigQuery ne garantit pas la cohérence des données pour les sources de données externes. Les modifications apportées aux données sous-jacentes lors de l'exécution d'une requête peuvent entraîner un comportement inattendu.

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, si le bucket Cloud Storage est nommé mybucket et que le fichier de données s'appelle myfile.csv, l'URI du bucket sera gs://mybucket/myfile.csv. Si vos données sont séparées en plusieurs fichiers, vous pouvez utiliser un caractère générique dans l'URI. Pour en savoir plus, consultez les URI de requête 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, l'URI source suivant, bien qu'il soit valide dans Cloud Storage, 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 d'accès approprié, 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 pour exécuter une tâche de chargement et charger des données dans des tables et partitions BigQuery nouvelles ou existantes. Si vous chargez des données à partir de Cloud Storage, vous devez également disposer d'autorisations pour accéder au bucket contenant vos données.

Autorisations BigQuery

Vous devez au moins disposer des autorisations suivantes pour charger des données dans BigQuery. Elles sont requises si vous chargez des données dans une nouvelle table ou partition, mais également si vous ajoutez ou écrasez une table ou une partition.

  • bigquery.tables.create
  • bigquery.tables.updateData
  • bigquery.jobs.create

Les rôles IAM prédéfinis suivants incluent les autorisations bigquery.tables.create et bigquery.tables.updateData :

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

Les rôles IAM prédéfinis suivants incluent les autorisations bigquery.jobs.create :

  • bigquery.user
  • bigquery.jobUser
  • bigquery.admin

En outre, si un utilisateur possède les autorisations bigquery.datasets.create, il obtient également un accès bigquery.dataOwner à l'ensemble de données qu'il crée. L'accès correspondant au rôle bigquery.dataOwner permet à l'utilisateur de créer et de mettre à jour des tables dans l'ensemble de données à l'aide d'une tâche de chargement.

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Contrôle des accès.

Autorisations Cloud Storage

Pour charger des données à partir d'un bucket Cloud Storage, vous devez disposer des autorisations storage.objects.get. 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 prédéfini storage.objectViewer peut être attribué afin d'octroyer 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 en savoir plus sur le chargement et l'analyse des journaux Cloud Storage, consultez la section Journaux d'accès et journaux de stockage de la documentation Cloud Storage.

Gestion 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 est gs://mybucket/fed-sample*. Vous pouvez ensuite utiliser cet URI générique dans Cloud Console, l'outil de ligne de commande bq, l'API ou les bibliothèques clientes.

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. Vous ne pouvez pas ajouter un caractère générique au nom du bucket.

Pour les exportations Google Datastore, vous ne pouvez spécifier qu'un seul URI, qui doit se terminer par .backup_info ou .export_metadata.

Le caractère générique astérisque n'est pas autorisé lors des opérations suivantes :

  • Créer des tables externes associées à des exportations Datastore ou Firestore
  • Charger des données d'exportation Datastore ou Firestore à partir de Cloud Storage

Étapes suivantes

Pour apprendre à charger des données de Cloud Storage dans BigQuery, consultez la documentation concernant 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.