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 des retours à la ligne)
  • Avro
  • Parquet
  • ORC
  • Exportations Cloud Datastore
  • Exportations Cloud Firestore

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 vos données, tenez compte des éléments suivants :
  • Cohébergez l'ensemble de données BigQuery et la source de données externe.
    • Lorsque vous interrogez des données hébergées dans une source de données externe telle que Cloud Storage, ces données doivent se trouver dans la même zone que votre ensemble de données BigQuery. Par exemple, si l'ensemble de données BigQuery se trouve dans la zone multirégionale EU, le bucket Cloud Storage contenant les données à interroger doit se trouver dans un bucket multirégional situé dans l'Union européenne. Si l'ensemble de données est situé dans la zone multirégionale US, votre bucket Cloud Storage doit se trouver dans un bucket multirégional localisé aux États-Unis.
    • Si votre ensemble de données se trouve dans une zone régionale, le bucket Cloud Storage contenant les données à interroger doit se trouver dans un bucket régional situé dans la même zone. Par exemple, si cet ensemble de données se trouve dans la région de Tokyo, votre bucket Cloud Storage doit être un bucket régional localisé à Tokyo.
    • Si votre ensemble de données externe se trouve dans Cloud Bigtable, l'ensemble de données doit se trouver dans la zone multirégionale US ou EU. Vos données Cloud Bigtable doivent se trouver dans l'une des zones Cloud Bigtable prises en charge.
    • Les considérations relatives aux zones ne s'appliquent pas aux sources de données externes de Google Drive.
  • Cohébergez les 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 situé dans la même zone. Par exemple, si votre ensemble de données BigQuery se trouve dans l'Union européenne, le bucket Cloud Storage doit se trouver dans un bucket régional ou multirégional situé dans l'Union européenne.
    • Si l'ensemble de données se trouve dans une zone régionale, le bucket Cloud Storage doit être un bucket régional situé dans la même zone. Par exemple, si l'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 l'ensemble de données est situé dans la zone multirégionale US, vous pouvez charger des données à partir d'un bucket Cloud Storage situé dans n'importe quelle zone régionale ou multirégionale.
  • Cohébergez les buckets Cloud Storage pour exporter des données.
    • Lorsque vous exportez des données, le bucket Cloud Storage régional ou multirégional doit se trouver dans la même zone que l'ensemble de données BigQuery. Par exemple, si cet ensemble de données BigQuery se trouve dans la zone multirégionale EU, le bucket Cloud Storage contenant les données que vous exportez doit se trouver dans une zone régionale ou multirégionale située dans l'Union européenne.
    • Si l'ensemble de données se trouve dans une zone régionale, le bucket Cloud Storage doit être un bucket régional situé dans la même zone. Par exemple, si l'ensemble de données se trouve dans la région Tokyo, le bucket Cloud Storage doit être dans un bucket régional à Tokyo.
    • Exception : Si l'ensemble de données se trouve dans la zone multirégionale US, vous pouvez exporter des données dans un bucket Cloud Storage situé dans n'importe quelle zone régionale ou multirégionale.
  • Élaborez un plan de gestion des données.
    • Si vous optez pour une ressource de stockage régionale, telle qu'un ensemble de données BigQuery ou un bucket Cloud Storage, veillez à élaborer un plan de gestion géographique de vos données.
Pour en savoir plus sur les zones Cloud Storage, consultez la page Zones des buckets de la documentation Cloud Storage.

Déplacer des données BigQuery entre des zones

Vous ne pouvez pas modifier la zone d'un ensemble de données après sa création. En outre, vous ne pouvez pas déplacer un ensemble de données d'une zone à une autre. Si vous avez néanmoins besoin de déplacer un ensemble de données d'une zone à une 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 la même zone que votre ensemble de données. Par exemple, si cet ensemble de données se trouve dans la zone multirégionale EU, exportez vos données dans un bucket régional ou multirégional situé dans l'Union européenne.

    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 imposées 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 situé dans la nouvelle zone. Par exemple, si vous déplacez vos données de la zone multirégionale US vers la zone régionale Tokyo, vous devez les transférer vers un bucket régional situé à Tokyo. Pour en savoir plus sur le transfert d'objets Cloud Storage, consultez la page Renommer, copier et déplacer des objets de la documentation Cloud Storage.

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

  3. Après avoir transféré les données dans un bucket Cloud Storage situé dans la nouvelle zone, créez un ensemble de données BigQuery (dans cette zone). 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 l'utilisation de Cloud Storage pour stocker et déplacer des ensembles de données volumineux, consultez la page Utiliser Google Cloud Storage pour le 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, reportez-vous aux sections 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 de l'objet (nom de fichier). Par exemple, si le bucket Cloud Storage se nomme mybucket et que le nom du fichier de données est myfile.csv, l'URI du bucket sera 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 relative aux URI de demande Cloud Storage.

BigQuery ne prend pas en charge les URI sources comportant plusieurs barres obliques consécutives après la double barre oblique initiale. Les noms d'objet Cloud Storage peuvent contenir plusieurs caractères barre oblique ("/") consécutifs. Cependant, BigQuery convertit toute série de barres obliques en une seule barre oblique. Par exemple, l'URI source suivant, bien que valide dans Cloud Storage, ne fonctionne pas dans BigQuery : gs://[BUCKET]/my//object//name.

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

  1. Ouvrez l'interface utilisateur Web de Cloud Storage.

    Interface utilisateur Web de Cloud Storage

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

  3. En haut de l'interface utilisateur Web de Cloud Storage, notez le chemin d'accès de cet objet. Pour composer l'URI, remplacez gs://[BUCKET]/[FILE] par le chemin approprié, par exemple, gs://mybucket/myfile.json. [BUCKET] est le nom du bucket Cloud Storage et [FILE] est le nom de l'objet (fichier) contenant les données.

Autorisations requises

Pour charger des données dans BigQuery, vous devez disposer, au niveau du projet ou de l'ensemble de données, des autorisations requises pour charger des données dans des tables et des 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

Pour charger des données dans BigQuery à partir de Cloud Storage, vous devez disposer du rôle bigquery.dataOwner ou bigquery.dataEditor au niveau du projet ou de l'ensemble de données. Ces deux rôles autorisent l'utilisateur ou le groupe d'utilisateurs à charger des données dans une nouvelle table, ainsi qu'à ajouter des données à une table existante ou à écraser celle-ci.

Lorsque ces rôles sont attribués au niveau du projet, l'utilisateur ou le groupe peut charger des données dans les tables de tous les ensembles de données du projet. S'ils sont attribués au niveau de l'ensemble de données, l'utilisateur ou le groupe ne peut charger des données que 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 Attribuer des contrôles d'accès aux ensembles de données. Pour en savoir plus sur les rôles 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 de l'autorisation storage.objects.get au niveau du projet ou de ce bucket. Si vous utilisez un caractère générique dans l'URI, vous devez également disposer de l'autorisation storage.objects.list.

Le rôle IAM storage.objectViewer prédéfini peut être accordé pour attribuer 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 se présentera comme suit : gs://mybucket/fed-sample*. Cet URI générique peut ensuite être utilisé dans l'interface utilisateur Web, dans l'interface de ligne de commande ou dans l'API.

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

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

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

  • Vous créez des tables externes lié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 :

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

Envoyer des commentaires concernant…