Utiliser les transferts

Une fois que vous avez créé un transfert à l'aide du service de transfert de données BigQuery, vous pouvez :

  • obtenir des informations sur une configuration de transfert ;
  • répertorier les configurations de transfert ;
  • afficher l'historique d'exécution d'un transfert ;
  • afficher les détails d'une exécution de transfert, tels que les messages de journal ;
  • mettre à jour un transfert ;
  • configurer un remplissage ;
  • mettre à jour des identifiants ;
  • désactiver un transfert ;
  • supprimer un transfert.

Obtenir des informations sur les transferts

Une fois que vous avez créé un transfert, vous pouvez obtenir des informations sur sa configuration. Celle-ci inclut les valeurs que vous avez fournies lors de la création du transfert.

Autorisations requises

Pour obtenir des informations sur un transfert, vous devez disposer des autorisations bigquery.transfers.get. Les rôles Cloud IAM prédéfinis suivants incluent des autorisations bigquery.transfers.get :

  • bigquery.admin
  • bigquery.user

Un utilisateur doté des autorisations bigquery.transfers.get peut afficher des informations sur tous les transferts d'un projet.

Pour en savoir plus sur les rôles IAM dans le service de transfert de données BigQuery, consultez la section Contrôle des accès.

Obtenir des informations sur un transfert

Pour obtenir des informations sur une configuration de transfert :

Console

  1. Accédez à la page Transferts de données.

    Accéder à la page "Transfert de données"

  2. Sélectionnez le transfert pour lequel vous souhaitez obtenir des informations.

  3. Pour afficher la configuration du transfert et les détails de la source de données, cliquez sur Configuration sur la page Détails du transfert. L'exemple suivant montre les propriétés de configuration d'un transfert Google Ads :

    Configuration de transfert dans la console

bq

Saisissez la commande bq show, puis indiquez le nom de ressource de la configuration de transfert. L'option --format peut être utilisée pour contrôler le format de sortie.

bq show \
--format=prettyjson \
--transfer_config resource_name

Où :

Par exemple, saisissez la commande suivante pour afficher la configuration du transfert projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq show \
--format=prettyjson \
--transfer_config projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Utilisez la méthode projects.locations.transferConfigs.get et spécifiez la configuration du transfert à l'aide du paramètre name.

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import java.io.IOException;

// Sample to get config info.
public class GetTransferConfigInfo {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    getTransferConfigInfo(configId);
  }

  public static void getTransferConfigInfo(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferConfigRequest request =
          GetTransferConfigRequest.newBuilder().setName(configId).build();
      TransferConfig info = dataTransferServiceClient.getTransferConfig(request);
      System.out.print("Config info retrieved successfully." + info.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("config not found." + ex.toString());
    }
  }
}

Lister les configurations de transfert

Autorisations requises

Pour répertorier tous les transferts ou configurations de transfert d'un projet, vous devez disposer de l'autorisation bigquery.transfers.get. Les rôles Cloud IAM prédéfinis suivants incluent les autorisations bigquery.transfers.get :

  • bigquery.admin
  • bigquery.user

Un utilisateur doté des autorisations bigquery.transfers.get peut répertorier tous les transferts d'un projet.

Pour en savoir plus sur les rôles IAM dans le service de transfert de données BigQuery, consultez la section Contrôle des accès.

Lister les transferts

Pour répertorier les configurations de transfert d'un projet :

Console

  1. Dans Google Cloud Console, accédez à la page "BigQuery".

    Accéder à la page "BigQuery"

  2. Cliquez sur Transferts.

  3. Si le projet contient des configurations de transfert, la liste s'affiche sur la page Transferts.

bq

Pour répertorier toutes les configurations de transfert pour un projet par emplacement, saisissez la commande bq ls et spécifiez les options --transfer_location et --transfer_config. Vous pouvez également indiquer l'option --project_id pour spécifier un projet particulier. Si --project_id n'est pas spécifié, le projet par défaut est utilisé. L'option --format peut être utilisée pour contrôler le format de sortie.

Pour répertorier les configurations de transfert pour des sources de données particulières, indiquez l'option --filter.

Pour afficher un nombre particulier de configurations de transfert au format paginé, indiquez l'option --max_results pour spécifier le nombre de transferts. La commande renvoie un jeton de page que vous fournissez à l'aide de l'option --page_token pour afficher les n configurations suivantes. Le nombre de configurations renvoyées est limité à 1 000 si --max_results est omis, et --max_results n'acceptera pas les valeurs supérieures à 1 000. Si votre projet comporte plus de 1 000 configurations, utilisez --max_results et --page_token pour effectuer des itérations partout.

bq ls \
--transfer_config \
--transfer_location=location \
--project_id=project_id \
--max_results=integer \
--filter=dataSourceIds:data_sources

Où :

Exemples :

Pour afficher toutes les configurations de transfert aux États-Unis pour votre projet par défaut, saisissez la commande suivante. L'option --format permet de contrôler la sortie.

bq ls \
--format=prettyjson \
--transfer_config \
--transfer_location=us

Saisissez la commande suivante pour afficher toutes les configurations de transfert aux États-Unis pour l'ID de projet myproject.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject

Pour répertorier les trois configurations de transfert les plus récentes, saisissez la commande suivante.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3

La commande renvoie un jeton de page suivante. Copiez le jeton de page et fournissez-le dans la commande bq ls pour afficher les trois résultats suivants.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL

Saisissez la commande suivante pour répertorier les configurations de transfert Google Ads et Campaign Manager pour l'ID de projet myproject.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--filter=dataSourceIds:dcm_dt,adwords

API

Utilisez la méthode projects.locations.transferConfigs.list et fournissez l'ID du projet à l'aide du paramètre parent.

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferConfigsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import java.io.IOException;

// Sample to get list of transfer config
public class ListTransferConfigs {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    listTransferConfigs(projectId);
  }

  public static void listTransferConfigs(String projectId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      ListTransferConfigsRequest request =
          ListTransferConfigsRequest.newBuilder().setParent(parent.toString()).build();
      dataTransferServiceClient
          .listTransferConfigs(request)
          .iterateAll()
          .forEach(config -> System.out.print("Success! Config ID :" + config.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Config list not found due to error." + ex.toString());
    }
  }
}

Python

Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.

from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

project_id = "my-project"
parent = transfer_client.common_project_path(project_id)

configs = transfer_client.list_transfer_configs(parent=parent)
print("Got the following configs:")
for config in configs:
    print(f"\tID: {config.name}, Schedule: {config.schedule}")

Afficher l'historique d'exécution

Au fur et à mesure que les transferts programmés sont exécutés, un historique d'exécution est conservé pour chaque configuration de transfert. Il inclut les exécutions de transfert qui aboutissent et celles qui échouent. Les exécutions de transfert datant de plus de 90 jours sont automatiquement supprimées de l'historique.

Autorisations requises

Vous devez disposer des autorisations bigquery.transfers.get pour afficher l'historique d'exécution d'une configuration de transfert. Les rôles IAM prédéfinis bigquery.user et bigquery.admin incluent des autorisations bigquery.transfers.get.

Pour en savoir plus sur les rôles IAM dans le service de transfert de données BigQuery, consultez la section Contrôle des accès.

Afficher un historique d'exécution

Pour afficher l'historique d'exécution d'une configuration de transfert :

Console

  1. Dans Google Cloud Console, accédez à la page "BigQuery".

    Accéder à la page "BigQuery"

  2. Cliquez sur Transferts.

  3. Sur la page Transferts, cliquez sur le transfert approprié dans la liste.

  4. Vous serez sur la page HISTORIQUE D'EXÉCUTION du transfert sélectionné.

bq

Pour répertorier les exécutions de transfert d'une configuration de transfert particulière, saisissez la commande bq ls et indiquez l'option --transfer_run. Vous pouvez également indiquer l'option --project_id pour spécifier un projet particulier. Si resource_name ne contient pas d'informations sur le projet, la valeur --project_id est utilisée. Si --project_id n'est pas spécifié, le projet par défaut est utilisé. L'option --format peut être utilisée pour contrôler le format de sortie.

Pour afficher un nombre particulier d'exécutions de transfert, indiquez l'option --max_results. La commande renvoie un jeton de page que vous fournissez à l'aide de l'option --page_token pour afficher les n configurations suivantes.

Pour répertorier les exécutions de transfert en fonction de l'état d'exécution, indiquez l'option --filter.

bq ls \
--transfer_run \
--max_results=integer \
--transfer_location=location \
--project_id=project_id \
--filter=states:state, ... \
resource_name

Où :

  • integer est le nombre de résultats à renvoyer.
  • location est la zone des configurations de transfert. L'emplacement est spécifié lorsque vous créez un transfert.
  • project_id est l'ID de votre projet.
  • state, ... est l'un des éléments suivants, ou une liste d'éléments séparés par une virgule :
    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED
  • resource_name est le nom de ressource du transfert (également appelé "configuration de transfert"). Si vous ne connaissez pas le nom de ressource du transfert, recherchez-le avec : bq ls --transfer_config --transfer_location=location.

Exemples :

Saisissez la commande suivante pour afficher les trois dernières exécutions pour la configuration de transfert projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. L'option --format permet de contrôler la sortie.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

La commande renvoie un jeton de page suivante. Copiez le jeton de page et fournissez-le dans la commande bq ls pour afficher les trois résultats suivants.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

Saisissez la commande suivante pour afficher toutes les exécutions ayant échoué pour la configuration de transfert projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq ls \
--format=prettyjson \
--transfer_run \
--filter=states:FAILED \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Utilisez la méthode projects.locations.transferConfigs.runs.list et spécifiez l'ID du projet à l'aide du paramètre parent.

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferRunsRequest;
import java.io.IOException;

// Sample to get run history from transfer config.
public class RunHistory {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    runHistory(configId);
  }

  public static void runHistory(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ListTransferRunsRequest request =
          ListTransferRunsRequest.newBuilder().setParent(configId).build();
      dataTransferServiceClient
          .listTransferRuns(request)
          .iterateAll()
          .forEach(run -> System.out.print("Success! Run ID :" + run.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Run history not found due to error." + ex.toString());
    }
  }
}

Afficher les détails d'une exécution de transfert et les messages de journal

Lorsqu'une exécution de transfert apparaît dans l'historique d'exécution, vous pouvez afficher des détails sur cette dernière, comme les messages de journal, les avertissements et les erreurs, le nom de l'exécution, et l'heure de début et de fin.

Autorisations requises

Vous devez disposer des autorisations bigquery.transfers.get pour afficher les détails de l'exécution du transfert. Les rôles IAM prédéfinis bigquery.user et bigquery.admin incluent des autorisations bigquery.transfers.get.

Pour en savoir plus sur les rôles IAM dans le service de transfert de données BigQuery, consultez la section Contrôle des accès.

En outre, pour consulter des messages de journal via la console Google Cloud, il est nécessaire de disposer d'autorisations permettant d'afficher les données Cloud Logging. Le rôle "Lecteur de journaux" (roles/logging.viewer) vous donne un accès en lecture seule à toutes les fonctionnalités de Logging. Pour plus d'informations sur les autorisations et les rôles IAM qui s'appliquent aux données des journaux cloud, consultez le guide du contrôle des accès de Cloud Logging.

Afficher les détails d'une exécution de transfert

Pour afficher les détails d'une exécution de transfert :

Console

  1. Dans Google Cloud Console, accédez à la page "BigQuery".

    Accéder à la page "BigQuery"

  2. Cliquez sur Transferts.

  3. Sur la page Transferts, cliquez sur le transfert approprié dans la liste.

  4. Vous serez sur la page HISTORIQUE D'EXÉCUTION du transfert sélectionné.

  5. Cliquez sur une exécution spécifique du transfert pour ouvrir le panneau Détails de l'exécution.

  6. Dans la section Détails d'exécution, notez les éventuels messages d'erreur. Si vous contactez Cloud Customer Care, ces informations sont nécessaires. Les détails de l'exécution incluent également des messages de journal et des avertissements.

    Détails d'exécution dans la console

bq

Pour afficher les détails de l'exécution du transfert, saisissez la commande bq show, puis indiquez le nom de l'exécution du transfert à l'aide de l'option --transfer_run. L'option --format peut être utilisée pour contrôler la sortie.

bq show \
--format=prettyjson \
--transfer_run run_name

Où :

  • run_name est le nom de l'exécution de transfert. Vous pouvez récupérer ce nom à l'aide de la commande bq ls.

Exemple :

Saisissez la commande suivante pour afficher les détails de l'exécution du transfert projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq show \
--format=prettyjson \
--transfer_run \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Pour afficher les messages du journal de transfert pour une exécution de transfert, saisissez la commande bq ls et indiquez l'option --transfer_log. Vous pouvez filtrer les messages de journal par type à l'aide de l'option --message_type.

Pour afficher un certain nombre de messages de journal, indiquez l'option --max_results. La commande renvoie un jeton de page que vous fournissez à l'aide de l'option --page_token pour afficher les n messages suivants.

bq ls \
--transfer_log \
--max_results=integer \
--message_type=messageTypes:message_type \
run_name

Où :

  • integer est le nombre de messages de journal à renvoyer.
  • message_type est le type de message de journal à afficher (une seule valeur ou une liste d'éléments séparés par une virgule) :
    • INFO
    • WARNING
    • ERROR
  • run_name est le nom de l'exécution de transfert. Vous pouvez récupérer ce nom à l'aide de la commande bq ls.

Exemples :

Saisissez la commande suivante pour afficher les deux premiers messages de journal pour l'exécution du transfert projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq ls \
--transfer_log \
--max_results=2 \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

La commande renvoie un jeton de page suivante. Copiez le jeton de page et indiquez-le dans la commande bq ls pour afficher les deux résultats suivants.

bq ls \
--transfer_log \
--max_results=2 \
--page_token=AB1CdEfg_hIJKL \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Saisissez la commande suivante pour n'afficher que les messages d'erreur pour l'exécution du transfert projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq ls \
--transfer_log \
--message_type=messageTypes:ERROR \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

API

Utilisez la méthode projects.transferConfigs.runs.transferLogs.list et indiquez le nom de l'exécution du transfert à l'aide du paramètre parent.

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferRunRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferRun;
import java.io.IOException;

// Sample to get run details from transfer config.
public class RunDetails {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // runId examples:
    // `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`
    String runId = "MY_RUN_ID";
    runDetails(runId);
  }

  public static void runDetails(String runId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferRunRequest request = GetTransferRunRequest.newBuilder().setName(runId).build();
      TransferRun run = dataTransferServiceClient.getTransferRun(request);
      System.out.print("Run details retrieved successfully :" + run.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("Run details not found." + ex.toString());
    }
  }
}

Mettre à jour un transfert

Une fois le transfert ajouté, vous pouvez le modifier. Vous pouvez modifier tous les champs que vous avez renseignés au moment de la création du transfert, à l'exception de la source :

  • Ensemble de données de destination
  • Nom à afficher
  • Tout paramètre indiqué pour le type de transfert spécifique
  • Paramètres de notification d'exécution

Autorisations requises

Vous devez disposer des autorisations bigquery.transfers.update pour mettre à jour un transfert. Le rôle Cloud IAM prédéfini bigquery.admin inclut des autorisations bigquery.transfers.update.

Pour en savoir plus sur les rôles IAM dans le service de transfert de données BigQuery, consultez la section Contrôle des accès.

Mettre à jour un transfert

Pour mettre à jour un transfert :

Console

  1. Dans Google Cloud Console, accédez à la page "BigQuery".

    Accéder à la page "BigQuery"

  2. Cliquez sur Transferts.

  3. Sur la page Transferts, cliquez sur le transfert approprié dans la liste.

  4. Cliquez sur MODIFIER pour mettre à jour la configuration de transfert.

bq

Saisissez la commande bq update, indiquez le nom de ressource de la configuration de transfert à l'aide de l'option --transfer_config, puis spécifiez les options --display_name, --params, --refresh_window_days, --schedule ou --target_dataset.

bq update \
--display_name='NAME' \
--params='PARAMETERS' \
--refresh_window_days=INTEGER \
--schedule='SCHEDULE'
--target_dataset=DATASET_ID \
--transfer_config \
RESOURCE_NAME

Remplacez les éléments suivants :

  • NAME : nom à afficher de la configuration de transfert.
  • PARAMETERS : paramètres de la configuration de transfert au format JSON. Exemple : --params='{"param1":"param_value1"}'. Les paramètres suivants sont modifiables :
    • Campaign Manager : bucket et network_id
    • Google Ad Manager : bucket et network_code
    • Google Ads : customer_id
    • Google Merchant Center : merchant_id
    • Google Play : bucket et table_suffix
    • Requête programmée : destination_table_kms_key, destination_table_name_template, partitioning_field, partitioning_type, query et write_disposition
    • Search Ads 360 : advertiser_id, agency_id, custom_floodlight_variables, include_removed_entities et table_filter
    • Chaîne YouTube :table_suffix
    • Propriétaire de contenu YouTube : content_owner_id et table_suffix
  • INTEGER : valeur comprise entre 0 et 30. Pour en savoir plus sur la définition de la fenêtre d'actualisation, consultez la documentation concernant votre type de transfert.
  • SCHEDULE : planification récurrente, telle que --schedule="every 3 hours". Pour obtenir une description de la syntaxe de schedule, consultez la page Formatage de schedule.
  • DATASET_ID : ensemble de données cible de la configuration de transfert.
  • RESOURCE_NAME : nom de ressource du transfert (également appelé "configuration de transfert"). Si vous ne connaissez pas le nom de ressource du transfert, recherchez-le avec : bq ls --transfer_config --transfer_location=location.

Exemples :

La commande suivante met à jour le nom à afficher, l'ensemble de données cible, la fenêtre d'actualisation et les paramètres du transfert Google Ads projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7 :

bq update \
--display_name='My changed transfer' \
--params='{"customer_id":"123-123-5678"}' \
--refresh_window_days=3 \
--target_dataset=mydataset2 \
--transfer_config \
 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

La commande suivante met à jour les paramètres et la programmation du transfert de requête programmée projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9 :

bq update \
--params='{"destination_table_name_template":"test", "write_disposition":"APPEND"}' \
--schedule="every 24 hours" \
--transfer_config \
projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9

API

Utilisez la méthode projects.transferConfigs.patch et indiquez le nom de ressource du transfert à l'aide du paramètre transferConfig.name. Si vous ne connaissez pas le nom de ressource du transfert, recherchez-le avec : bq ls --transfer_config --transfer_location=location. Vous pouvez également appeler la méthode suivante et fournir l'ID de projet à l'aide du paramètre parent pour lister tous les transferts : projects.locations.transferConfigs.list.

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update transfer config.
public class UpdateTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setName(configId)
            .setDisplayName("UPDATED_DISPLAY_NAME")
            .build();
    FieldMask updateMask = FieldMaskUtil.fromString("display_name");
    updateTransferConfig(transferConfig, updateMask);
  }

  public static void updateTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config updated successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not updated." + ex.toString());
    }
  }
}

Python

Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.

from google.cloud import bigquery_datatransfer
from google.protobuf import field_mask_pb2

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
new_display_name = "My Transfer Config"

transfer_config = bigquery_datatransfer.TransferConfig(name=transfer_config_name)
transfer_config.display_name = new_display_name

transfer_config = transfer_client.update_transfer_config(
    {
        "transfer_config": transfer_config,
        "update_mask": field_mask_pb2.FieldMask(paths=["display_name"]),
    }
)

print(f"Updated config: '{transfer_config.name}'")
print(f"New display name: '{transfer_config.display_name}'")

Configurer des remplissages et des opérations d'actualisation

Actualiser

Notez que les remplissages ne sont pas disponibles pour ces types de transferts. Cependant, vous pouvez configurer une opération d'actualisation.

Remplissage

Vous pouvez lancer manuellement des remplissages de données à tout moment. En plus des limites imposées par la source, le service de transfert de données BigQuery accepte une durée maximale de 180 jours par demande de remplissage. Les demandes de remplissage simultanées ne sont pas acceptées.

Pour en savoir plus sur le volume de données disponible pour le remplissage, consultez la documentation concernant votre source de données :

  • Amazon S3
  • Campaign Manager
  • Cloud Storage
  • Copie de l'ensemble de données
  • Google Ad Manager
  • Google Ads (anciennement AdWords)
    • Lorsque vous configurez un remplissage pour Google Ads, des instantanés des tables de correspondance sont réalisés une fois par jour, puis ils sont stockés dans la partition pour la dernière date d'exécution. Lorsque vous programmez un remplissage, les instantanés des tables de correspondance des tables suivantes ne sont PAS mis à jour :
      • Annonce
      • Groupe d'annonces
      • Âge
      • Public
      • Objectif d'enchères
      • Budget
      • Campagne
      • Critères
      • Client
      • Genre
      • Mot clé
      • Critère de la campagne basée sur la zone
      • État du parent
      • Emplacement
      • Vidéo
  • Google Ads (preview)
  • Google Merchant Center
  • Google Play
  • Requêtes programmées
  • Search Ads 360
    • Lorsque vous configurez un remplissage pour Search Ads 360, les instantanés des tables de correspondance sont pris une fois par jour et stockés dans la partition à la date de dernière exécution. Lorsque vous programmez un remplissage, les instantanés des tables de correspondance des tables suivantes ne sont PAS mis à jour :
      • Compte
      • Ad
      • Advertiser
      • AdGroup
      • AdGroupTarget
      • BidStrategy
      • Campaign
      • CampaignTarget
      • FeedItem
      • FloodlightActivity
      • Keyword
      • NegativeAdGroupKeyword
      • NegativeAdGroupTarget
      • NegativeCampaignKeyword
      • NegativeCampaignTarget
      • ProductAdvertised
      • ProductGroup
      • ProductLeadAndCrossSellFloodlightStats
      • Video
      • Placement
      • Vidéo
  • Chaîne YouTube
  • Propriétaire de contenu YouTube
  • Teradata
  • Amazon Redshift

Notez que les remplissages ne sont pas disponibles pour les transferts Cloud Storage. Vous pouvez toutefois configurer une opération d'actualisation d'un transfert Cloud Storage.

Autorisations requises

Vous devez disposer des autorisations bigquery.transfers.update pour programmer un remplissage. Le rôle Cloud IAM prédéfini bigquery.admin inclut des autorisations bigquery.transfers.update.

Pour en savoir plus sur les rôles IAM dans le service de transfert de données BigQuery, consultez la section Contrôle des accès.

Programmer un remplissage

Pour programmer un remplissage :

Console

  1. Dans Google Cloud Console, accédez à la page "BigQuery".

    Accéder à la page "BigQuery"

  2. Cliquez sur Transferts.

  3. Sur la page Transferts, cliquez sur le transfert approprié dans la liste.

  4. Cliquez sur le menu PLUS, puis sélectionnez Programmer le remplissage.

  5. Dans la boîte de dialogue Programmer le remplissage, sélectionnez la date de début et la date de fin.

    Définir les dates d'actualisation

bq

Saisissez la commande bq mk, indiquez l'option --transfer_run, puis spécifiez les paramètres --start_time et --end_time.

bq mk \
--transfer_run \
--start_time='start_time' \
--end_time='end_time' \
resource_name

Où :

  • start_time et end_time sont des horodatages qui finissent par Z, ou ils contiennent un décalage de fuseau horaire valide. Exemple :

    • 2017-08-19T12:11:35.00Z
    • 2017-05-25T00:00:00+00:00
  • resource_name est le nom de ressource du transfert (également appelé "configuration de transfert"). Si vous ne connaissez pas le nom de ressource du transfert, recherchez-le avec : bq ls --transfer_config --transfer_location=location.

Exemples :

Saisissez la commande suivante pour programmer un remplissage pour la configuration de transfert projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq mk \
--transfer_run \
--start_time 2017-05-25T00:00:00Z \
--end_time 2017-05-25T00:00:00Z \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Utilisez la méthode projects.locations.transferConfigs.startManualRuns et indiquez la ressource de configuration de transfert à l'aide du paramètre parent.

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsResponse;
import com.google.protobuf.Timestamp;
import java.io.IOException;
import org.threeten.bp.Clock;
import org.threeten.bp.Instant;
import org.threeten.bp.temporal.ChronoUnit;

// Sample to run schedule back fill for transfer config
public class ScheduleBackFill {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    Clock clock = Clock.systemDefaultZone();
    Instant instant = clock.instant();
    Timestamp startTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(5, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(5, ChronoUnit.DAYS).getNano())
            .build();
    Timestamp endTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(2, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(2, ChronoUnit.DAYS).getNano())
            .build();
    scheduleBackFill(configId, startTime, endTime);
  }

  public static void scheduleBackFill(String configId, Timestamp startTime, Timestamp endTime)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ScheduleTransferRunsRequest request =
          ScheduleTransferRunsRequest.newBuilder()
              .setParent(configId)
              .setStartTime(startTime)
              .setEndTime(endTime)
              .build();
      ScheduleTransferRunsResponse response = client.scheduleTransferRuns(request);
      System.out.println("Schedule backfill run successfully :" + response.getRunsCount());
    } catch (ApiException ex) {
      System.out.print("Schedule backfill was not run." + ex.toString());
    }
  }
}

Python

Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.

import datetime

from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
now = datetime.datetime.now(datetime.timezone.utc)
start_time = now - datetime.timedelta(days=5)
end_time = now - datetime.timedelta(days=2)

# Some data sources, such as scheduled_query only support daily run.
# Truncate start_time and end_time to midnight time (00:00AM UTC).
start_time = datetime.datetime(
    start_time.year, start_time.month, start_time.day, tzinfo=datetime.timezone.utc
)
end_time = datetime.datetime(
    end_time.year, end_time.month, end_time.day, tzinfo=datetime.timezone.utc
)

response = transfer_client.schedule_transfer_runs(
    parent=transfer_config_name,
    start_time=start_time,
    end_time=end_time,
)

print("Started transfer runs:")
for run in response.runs:
    print(f"backfill: {run.run_time} run: {run.name}")

Mettre à jour des identifiants

Un transfert emploie les identifiants de l'utilisateur qui l'a créé. Si vous devez modifier l'utilisateur associé à une configuration de transfert, vous pouvez mettre à jour les identifiants du transfert. Ceci est utile si l'utilisateur qui a créé le transfert ne fait plus partie de votre organisation.

Autorisations requises

Vous devez disposer des autorisations bigquery.transfers.update pour mettre à jour les identifiants. Le rôle Cloud IAM prédéfini bigquery.admin inclut des autorisations bigquery.transfers.update.

Pour en savoir plus sur les rôles IAM dans le service de transfert de données BigQuery, consultez la section Contrôle des accès.

Mettre à jour les identifiants d'un transfert

Pour mettre à jour les identifiants d'un transfert :

Console

  1. Dans Google Cloud Console, accédez à la page "BigQuery".

    Accéder à la page "BigQuery"

  2. Cliquez sur Transferts.

  3. Sur la page Transferts, cliquez sur le transfert approprié dans la liste.

  4. Cliquez sur le menu Plus, puis sélectionnez Actualiser les identifiants.

  5. Connectez-vous à votre compte Google et cliquez sur Autoriser pour autoriser le service de transfert de données BigQuery à consulter vos données de rapport et à accéder aux données de BigQuery.

bq

Saisissez la commande bq update, indiquez le nom de ressource de la configuration de transfert à l'aide de l'option --transfer_config, puis indiquez l'option --update_credentials.

bq update \
--update_credentials=boolean \
--transfer_config \
resource_name

Où :

  • boolean est une valeur booléenne indiquant si les identifiants doivent être mis à jour pour la configuration de transfert.
  • resource_name est le nom de ressource du transfert (également appelé "configuration de transfert"). Si vous ne connaissez pas le nom de ressource du transfert, recherchez-le avec : bq ls --transfer_config --transfer_location=location.

Exemples :

Saisissez la commande suivante pour mettre à jour les identifiants pour le transfert Google Ads projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq update \
--update_credentials=true \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Utilisez la méthode projects.transferConfigs.patch et spécifiez les paramètres authorizationCode et updateMask.

Java

Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour un environnement de développement local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update credentials in transfer config.
public class UpdateCredentials {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    String serviceAccount = "MY_SERVICE_ACCOUNT";
    TransferConfig transferConfig = TransferConfig.newBuilder().setName(configId).build();
    FieldMask updateMask = FieldMaskUtil.fromString("service_account_name");
    updateCredentials(transferConfig, serviceAccount, updateMask);
  }

  public static void updateCredentials(
      TransferConfig transferConfig, String serviceAccount, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .setServiceAccountName(serviceAccount)
              .build();
      dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Credentials updated successfully");
    } catch (ApiException ex) {
      System.out.print("Credentials was not updated." + ex.toString());
    }
  }
}

Python

Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Python.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page