Copier des ensembles de données

Vous pouvez copier un ensemble de données dans la même région ou d'une région à une autre sans avoir à extraire, déplacer ou actualiser des données dans BigQuery. Vous pouvez copier l'ensemble de données ponctuellement ou à l'aide d'un calendrier récurrent personnalisé.

Avant de commencer

Avant de copier un ensemble de données, procédez comme suit :

  • La copie d'un ensemble de données utilise les fonctionnalités du service de transfert de données BigQuery. Vérifiez que vous avez effectué toutes les actions requises pour activer le service de transfert de données BigQuery.
  • Si vous créez le transfert à l'aide de l'interface utilisateur Web classique de BigQuery, autorisez les pop-ups de bigquery.cloud.google.com dans votre navigateur pour pouvoir afficher la fenêtre des autorisations. Vous devez autoriser le service de transfert de données BigQuery à gérer la copie de l'ensemble de données, qui est une sorte de transfert.
  • Créez un ensemble de données BigQuery en tant qu'ensemble de données de destination dans la même région ou dans une région différente de votre ensemble de données source. Lorsque vous créez un ensemble de données, vous spécifiez une zone pour stocker vos données BigQuery. Toutes les régions ne sont pas encore compatibles avec les copies d'ensembles de données (consultez la section Limites des zones). Les noms d'ensembles de données doivent être uniques par projet.
  • Trouvez l'ID de l'ensemble de données source que vous souhaitez copier et l'ID du projet source.
  • Si vous souhaitez configurer des notifications d'exécution de transfert pour Cloud Pub/Sub, vous devez disposer des autorisations pubsub.topics.setIamPolicy. Si vous ne configurez que des notifications par e-mail, les autorisations Cloud Pub/Sub ne sont pas requises. Pour plus d'informations, consultez la page Notifications d'exécution du service de transfert de données BigQuery.

Autorisations requises

Avant de copier un ensemble de données, assurez-vous que la personne qui crée cette copie dispose des autorisations requises suivantes dans BigQuery :

  1. L'autorisation bigquery.transfers.update pour créer le transfert de copie.

  2. L'autorisation bigquery.tables.list sur l'ensemble de données source.

    Les rôles IAM prédéfinis au niveau du projet suivants incluent l'autorisation bigquery.tables.list :

    • bigquery.dataViewer
    • bigquery.dataEditor
    • bigquery.dataOwner
    • bigquery.metadataViewer
    • bigquery.user
  3. Les autorisations bigquery.tables.list et bigquery.tables.create sur l'ensemble de données de destination.

    Les rôles IAM prédéfinis au niveau du projet suivants incluent les autorisations bigquery.tables.list et bigquery.tables.create :

    • bigquery.dataEditor
    • bigquery.dataOwner
  4. Le rôle IAM prédéfini bigquery.admin au niveau du projet comprend toutes les autorisations requises pour la copie d'un ensemble de données. Pour en savoir plus sur les rôles IAM dans BigQuery, consultez la page Contrôle des accès.

Configurer la copie d'un ensemble de données

Pour créer un ensemble de données, procédez comme suit :

Console

Option 1 : Utiliser l'icône Copy Dataset (Copier l'ensemble de données).

  1. Accédez à l'UI Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Sélectionnez le nom de l'ensemble de données source que vous souhaitez copier.

  3. Cliquez sur l'icône Copy Dataset (Copier l'ensemble de données).

    Icône Copier l'ensemble de données

  4. Dans la boîte de dialogue Copy Dataset (Copier l'ensemble de données), sélectionnez l'ID du projet et l'ID de l'ensemble de données de destination. Le projet et l'ensemble de données peuvent se trouver dans différentes régions, mais toutes les régions ne sont pas compatibles avec les copies interrégionales d'ensembles de données.

  5. Les noms des ensembles de données d'un projet doivent être uniques.

  6. Vous pouvez également cocher la case Overwrite destination table (Écraser la table de destination) pour actualiser (écraser) toutes les données de l'ensemble de données de destination. Les tables et les schémas seront écrasés.

    Boîte de dialogue Copier l'ensemble de données

  7. Envisagez de supprimer l'ancien ensemble de données pour ne pas avoir à payer des coûts de stockage supplémentaires.

Option 2 : Utiliser l'interface utilisateur des Transferts.

  1. Accédez à l'UI Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Cliquez sur Transferts.

  3. Cliquez sur + CREATE A TRANSFER (Créer un transfert).

  4. Sur la page Créer un transfert :

    • Dans le champ Source de la section Source type (Type de source), choisissez Dataset Copy (Copie d'ensemble de données).

      Source de transfert

    • Dans la section Transfer config name (Nom de la configuration de transfert), sous Display name (Nom à afficher), saisissez un nom pour le transfert, tel que My Transfer. Ce nom peut correspondre à n'importe quelle valeur permettant d'identifier facilement le transfert si vous devez le modifier ultérieurement.

      Nom du transfert

    • Dans la section Schedule options (Options de programmation), pour le champ Custom Schedule (Programmation personnalisée), laissez la valeur par défaut Start now (Commencer), ou cliquez sur Start at a set time (Démarrer à l'heure définie).

      • Pour le champ Repeats (Périodicité), choisissez une option pour la fréquence d'exécution du transfert. Les options proposées comprennent :

        • Daily (Tous les jours) (par défaut)
        • Toutes les semaines
        • Tous les mois
        • Personnalisé
        • À la demande

        Si vous choisissez une option autre que Daily (Tous les jours), des options supplémentaires sont disponibles. Par exemple, si vous choisissez Toutes les semaines, une option vous permet de sélectionner le jour de la semaine.

      • Pour Start date and run time (Date de début et heure d'exécution), saisissez la date et l'heure de début du transfert. Cette option est désactivée si vous choisissez Start now (Commencer).

        Planning de transfert

    • Pour le champ Ensemble de données de destination, choisissez l'ensemble de données que vous avez créé pour stocker vos données, dans une région différente.

    • Pour le champ Source dataset (Ensemble de données source), saisissez le nom de l'ensemble de données que vous souhaitez copier.

    • Pour le champ Source project (Projet source), entrez l'ID du projet dans lequel se trouve votre ensemble de données source.

    • (Facultatif) Cochez la case Overwrite destination table (Écraser la table de destination) pour actualiser (écraser) toutes les données de l'ensemble de données de destination. Les tables et les schémas seront écrasés.

      Nouvelle copie de l'ensemble de données

    • (Facultatif) Dans la section Notification options (Options de notification) :

      • Cliquez sur le bouton pour activer les notifications par e-mail. Lorsque vous activez cette option, l'administrateur de transfert reçoit une notification par e-mail en cas d'échec de l'exécution du transfert.
      • Pour Select a Cloud Pub/Sub topic (Sélectionnez un sujet Cloud Pub/Sub), choisissez le nom de votre sujet ou cliquez sur Create a topic (Créer un sujet) pour en créer un. Cette option configure les notifications d'exécution Cloud Pub/Sub pour votre transfert.

      Sujet Cloud Pub/Sub

  5. Cliquez sur Save (Enregistrer).

  6. Envisagez de supprimer l'ancien ensemble de données pour ne pas avoir à payer des coûts de stockage supplémentaires.

UI classique

  1. Accédez à l'interface utilisateur Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Cliquez sur Transferts.

  3. Cliquez sur Ajouter un transfert.

  4. Sur la page New Transfer (Nouveau transfert) :

    • Pour Source, choisissez Dataset Copy (Copie de l'ensemble de données).
    • Pour le champ Display name (Nom à afficher), saisissez le nom du transfert, par exemple My Dataset Copy. Le nom à afficher peut correspondre à n'importe quelle valeur permettant d'identifier facilement le transfert si vous devez le modifier par la suite.
    • (Facultatif) Pour Schedule (Programmation), vous pouvez conserver la valeur par défaut Daily (toutes les 24 heures, en fonction de l'heure de création) ou cliquer sur Edit (Modifier) pour modifier l'heure d'exécution. Vous pouvez également modifier l'intervalle d'exécution et le définir sur "Toutes les semaines", "Tous les mois" ou "Personnalisée". Lorsque vous sélectionnez "Custom" (Personnalisée), vous devez ajouter une spécification temporelle de type Cron, par exemple every 12 hours. La période la plus courte autorisée est de 12 heures.

    • Pour Destination dataset (Ensemble de données de destination), sélectionnez l'ensemble de données approprié.

    • Pour Source dataset (Ensemble de données source), saisissez le nom de l'ensemble de données source.

    • Pour Source project (Projet source), sélectionnez le projet dans lequel se trouve l'ensemble de données source.

      Nouvelle copie de l'ensemble de données

    • (Facultatif) Développez la section Advanced (Avancé), puis configurez les notifications d'exécution pour votre transfert.

    • Sous Cloud Pub/Sub topic (Sujet Cloud Pub/Sub), saisissez le nom de votre sujet Cloud Pub/Sub, par exemple projects/myproject/topics/mytopic.

    • Cochez la case Send email notifications (Envoyer des notifications par e-mail) pour autoriser les notifications par e-mail en cas d'échec de l'exécution des transferts.

      Sujet Cloud Pub/Sub

  5. Cliquez sur Add (Ajouter).

  6. Envisagez de supprimer l'ancien ensemble de données pour ne pas avoir à payer des coûts de stockage supplémentaires.

CLI

Saisissez la commande bq mk, puis spécifiez l'indicateur de création de transfert --transfer_config. Les paramètres suivants sont également requis :

  • --project_id
  • --data_source
  • --target_dataset
  • --display_name
  • --params

    bq mk --transfer_config --project_id=[PROJECT_ID] --data_source=[DATA_SOURCE] --target_dataset=[DATASET] --display_name=[NAME] --params='[PARAMETERS]'
    

Où :

  • --project_id est votre ID de projet Google Cloud Platform. Si --project_id n'est pas spécifié, le projet par défaut est utilisé.
  • --data_source est la source de données : cross_region_copy.
  • --target_dataset est l'ensemble de données cible BigQuery de la configuration de transfert.
  • --display_name est le nom à afficher pour la tâche de copie ou la configuration de transfert. Ce nom peut correspondre à n'importe quelle valeur permettant d'identifier facilement le transfert si vous devez le modifier ultérieurement.
  • --params contient les paramètres de la configuration de transfert créée au format JSON. Par exemple : --params='{"param":"param_value"}'. Pour copier un ensemble de données, vous devez fournir les paramètres source_dataset_id, source_project_id et, éventuellement, overwrite_destination_table.

Les paramètres pour la configuration d'une copie d'un ensemble de données sont les suivants :

  • source_dataset_id : ID de l'ensemble de données source que vous souhaitez copier.
  • source_project_id : ID du projet dans lequel se trouve l'ensemble de données source.
  • (Facultatif) overwrite_destination_table : indiquez ce paramètre pour tronquer les tables issues d'une copie précédente et actualiser toutes les données.

Par exemple, la commande suivante crée une configuration de copie d'un ensemble de données nommée My Transfer avec un ensemble de données cible nommé mydataset et un projet dont l'ID est myproject.

bq mk --transfer_config --project_id=myproject --data_source=cross_region_copy --target_dataset=123_demo_tokyo --display_name='My Dataset Copy' --params='{"source_dataset_id":"123_demo_eu","source_project_id":"mysourceproject","overwrite_destination_table":"true"}'

API

Exécutez la méthode projects.locations.transferConfigs.create et indiquez une instance de la ressource TransferConfig.

Afficher et actualiser des tâches de copie d'ensembles de données

Vous pouvez suivre la progression de la copie d'un ensemble de données et en afficher les détails sous Transfers (Transferts).

Console

Bouton Transferts de la console

Afficher les détails du transfert dans la console

Les opérations d'actualisation sur une copie d'un ensemble de données sont planifiées en suivant un calendrier personnalisable, que vous spécifiez. Par défaut, elles sont planifiées toutes les 24 heures. Cliquez sur le menu More (Plus), puis sur Refresh Now (Actualiser maintenant) pour demander une nouvelle exécution immédiate.

Bouton Actualiser la copie de l'ensemble de données

UI classique

Bouton Transferts classique

Les opérations d'actualisation sur une copie d'un ensemble de données sont planifiées en suivant un calendrier personnalisable, que vous spécifiez. Par défaut, elles sont planifiées toutes les 24 heures. Cliquez sur Refresh Now (Actualiser maintenant) pour demander une nouvelle exécution immédiate.

Bouton Actualiser la copie de l'ensemble de données

Prix

La copie des ensembles de données est gratuite pendant la phase bêta.

En disponibilité générale, les données copiées entre régions seront soumises à la même tarification que les coûts de sortie réseau Compute Engine entre régions.

BigQuery envoie des données compressées pour la copie interrégionale. Par conséquent, le nombre de Go facturés peut être inférieur à la taille de votre ensemble de données.

Quotas et limites

Les limites suivantes s'appliquent à la copie d'ensembles de données dans BigQuery. Les limites s'appliquent aux tâches de copie créées à l'aide de l'outil de ligne de commande (CLI), de la console ou de l'UI Web classique de BigQuery. Ces limites s'appliquent également aux tâches de copie exécutées par programmation à l'aide de la méthode d'API jobs.insert de type copie.

Tous les frais d'utilisation standard de BigQuery pour le stockage et l'interrogation des données s'appliquent aux données copiées. Pour plus d'informations, consultez la page Tarifs de BigQuery.

Les copies d'ensembles de données BigQuery sont soumises aux limites suivantes :

Quota

Copie régionale

La copie régionale des ensembles de données est soumise au même quota pour toutes les tâches de copie BigQuery.

Les limites suivantes s'appliquent à la copie de tables dans BigQuery. Elles s'appliquent aux tâches créées automatiquement en copiant des données à l'aide de l'outil de ligne de commande, de la console ou de l'UI Web classique de BigQuery, ainsi qu'aux tâches de copie exécutées par programmation à l'aide de la méthode d'API jobs.insert de type copie.

  • Tâches de copie par table de destination et par jour : 1 000 (échecs compris)
  • Tâches de copie par projet et par jour : 100 000 (échecs compris)

Copie interrégionale

  • Tâches de copie par table de destination et par jour : 100 (échecs compris)
  • Tâches de copie par projet et par jour : 2 000 (échecs compris)

Limites générales

  • Vous devez créer l'ensemble de données de destination avant de pouvoir créer une configuration de transfert pour la copie de l'ensemble de données.

  • Pour chaque configuration de copie d'un ensemble de données, vous disposez d'une copie active à la fois. Les exécutions de transfert supplémentaires seront mises en file d'attente.

Limites des types de données

  • La copie de vues n'est pas compatible.
  • La copie de vues matérialisées n'est pas compatible.
  • La copie de tables externes n'est pas compatible.
  • La copie d'emplacements de stockage dans un tampon de diffusion en continu n'est pas compatible.
  • La compatibilité avec les copies de tables chiffrées avec des clés gérées par le client varie selon si vous effectuez une copie régionale ou interrégionale.

Copie régionale

La copie de tables chiffrées, y compris de celles chiffrées avec des clés gérées par le client, est compatible avec la copie d'ensembles de données situés dans la même région.

Copie interrégionale

Il est possible d'effectuer des copies interrégionales de tables protégées par le chiffrement par défaut. La copie interrégionale de tables chiffrées avec des clés gérées par le client n'est actuellement pas compatible. Les tables chiffrées avec des clés gérées par le client seront ignorées lors de la copie des tables dans l'ensemble de données de destination.

Limites des ensembles de données sources

L'ensemble de données source peut comporter un maximum de 20 000 tables. Le nombre de tables pouvant être copiées par exécution varie selon si vous effectuez une copie régionale ou interrégionale.

Copie régionale

  • L'ensemble de données source peut comporter un maximum de 20 000 tables.

  • Un maximum de 20 000 tables peuvent être copiées par exécution dans l'ensemble de données de destination.

Copie interrégionale

  • L'ensemble de données source peut comporter un maximum de 20 000 tables.

  • Un maximum de 1 000 tables peuvent être copiées par exécution dans l'ensemble de données de destination.

Exemple

Si vous configurez une copie interrégionale d'un ensemble de données comprenant 8 000 tables, le service de transfert de données BigQuery créera automatiquement huit exécutions de manière séquentielle. La première exécution va copier 1 000 tables, puis 24 heures plus tard, une deuxième exécution va en copier 1 000 et ainsi de suite, jusqu'à ce que toutes les tables de l'ensemble de données soient copiées, dans la limite de 20 000 tables par ensemble de données.

Limites des tables

  • Actuellement, la copie de tables partitionnées est compatible. Toutefois, l'ajout de données à une table partitionnée n'est pas possible.

  • Si une table existe dans l'ensemble de données source et dans l'ensemble de données de destination, et qu'elle n'a pas été modifiée depuis la dernière copie réussie, elle sera ignorée. Cela s'applique même si la case Écraser la table de destination est cochée.

  • Lorsque vous tronquez des tables, la copie de l'ensemble de données ne détecte aucune modification apportée à l'ensemble de données de destination avant de commencer l'opération. Toutes les données de l'ensemble de données de destination seront actualisées (écrasées). Les tables et les schémas seront écrasés.

Limites des zones

Les ensembles de données peuvent être copiés d'une zone à une autre, d'une zone régionale à une zone multirégionale, d'une zone multirégionale à une zone régionale ou d'une zone multirégionale à une zone multirégionale.

Actuellement, toutes les régions ne sont pas compatibles avec les copies d'ensembles de données. Vous pouvez créer des copies d'ensembles de données dans les régions où le service de transfert de données BigQuery est actuellement accepté, comme indiqué ci-dessous.

Zones régionales

Nom de la région Description de la région
Europe
europe-west2 Londres
Asie-Pacifique
asia-northeast1 Tokyo
australia-southeast1 Sydney

Zones multirégionales

Nom de la zone multirégionale Description de la zone multirégionale
EU Union européenne1
US États-Unis

1 Les données qui résident dans la zone multirégionale EU ne sont pas stockées dans le centre de données europe-west2 (Londres).

Étape suivante

  • Pour plus d'informations sur l'utilisation des transferts, y compris l'obtention d'informations sur une configuration de transfert, la liste des configurations de transfert et l'affichage de l'historique d'exécution d'un transfert, consultez la page Utiliser les transferts.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

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