Gérer les transferts

Ce document explique comment gérer les configurations de transfert de données existantes.

Vous pouvez également déclencher manuellement un transfert existant, également appelé exécution de remplissage.

Afficher vos transferts

Affichez vos configurations de transfert existantes en affichant les informations relatives à chaque transfert, en répertoriant tous les transferts existants et en affichant l'historique des exécutions de transfert ou les messages de journal.

Rôles requis

Pour obtenir les autorisations nécessaires pour afficher les détails d'un transfert, demandez à votre administrateur de vous accorder le rôle IAM Utilisateur BigQuery (roles/bigquery.user). Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

En outre, pour afficher les messages de journal via la console Google Cloud, vous devez être autorisé à 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 (Identity and Access Management) qui s'appliquent aux données des journaux cloud, consultez le guide du contrôle des accès de Cloud Logging.

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 les détails du transfert

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, ainsi que d'autres informations importantes telles que les noms des ressources.

Pour obtenir des informations sur une configuration de transfert :

Console

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

    Accéder à la page Transferts 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

Remplacez resource_name par 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.

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 les bibliothèques clientes.

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

Pour répertorier toutes les configurations de transfert existantes dans un projet :

Console

  1. Dans la console Google Cloud, accédez à la page Transferts de données.

    Accéder à la page Transferts de données

  2. Si le projet contient des configurations de transfert, la liste s'affiche sur la liste des transferts de données.

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

Remplacez les éléments suivants :

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 lister 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,google_ads

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 les bibliothèques clientes.

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 les bibliothèques clientes.

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 des transferts

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.

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

Console

  1. Dans la console Google Cloud, accédez à la page Transferts de données.

    Accéder à la page Transferts de données

  2. Cliquez sur le transfert dans la liste des transferts de données.

  3. 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

Remplacez les éléments suivants :

  • integer est le nombre de résultats à renvoyer.
  • location est l'emplacement 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 les bibliothèques clientes.

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.

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

Console

  1. Dans la console Google Cloud, accédez à la page Transferts de données.

    Accéder à la page Transferts de données

  2. Cliquez sur le transfert dans la liste des transferts de données.

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

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

  5. 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

Remplacez run_name par le nom de l'exécution du transfert. Vous pouvez récupérer ce nom d'exécution à 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

Remplacez les éléments suivants :

  • 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 d'exécution à 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 les bibliothèques clientes.

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());
    }
  }
}

Modifier vos transferts

Vous pouvez modifier des transferts existants en modifiant les informations de configuration de transfert, en mettant à jour les identifiants d'un utilisateur associés à une configuration de transfert, et en désactivant ou supprimant un transfert.

Rôles requis

Pour obtenir les autorisations nécessaires pour modifier des transferts, demandez à votre administrateur de vous accorder le rôle IAM Administrateur BigQuery (roles/bigquery.admin) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Mettre à jour un transfert

Une fois que vous avez créé une configuration de transfert, vous pouvez modifier les champs suivants :

  • 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
  • Compte de service

Vous ne pouvez pas modifier la source d'un transfert une fois qu'il a été créé.

Pour mettre à jour un transfert :

Console

  1. Dans la console Google Cloud, accédez à la page Transferts de données.

    Accéder à la page Transferts de données

  2. Cliquez sur le transfert dans la liste des transferts de données.

  3. 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. Vous pouvez éventuellement fournir une option --destination_kms_key pour les requêtes programmées ou les transferts Cloud Storage.

bq update \
--display_name='NAME' \
--params='PARAMETERS' \
--refresh_window_days=INTEGER \
--schedule='SCHEDULE'
--target_dataset=DATASET_ID \
--destination_kms_key="DESTINATION_KEY" \
--transfer_config \
--service_account_name=SERVICE_ACCOUNT \
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 relative à 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.
  • DESTINATION_KEY : ID de ressource de la clé Cloud KMS (par exemple, projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name). CMEK n'est disponible que pour les requêtes programmées ou les transferts Cloud Storage.
  • SERVICE_ACCOUNT : spécifiez un compte de service à utiliser avec ce 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 à l'aide de la commande suivante : 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 les bibliothèques clientes.

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 les bibliothèques clientes.

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}'")

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.

Pour mettre à jour les identifiants d'un transfert :

Console

  1. Dans la console Google Cloud, connectez-vous en tant qu'utilisateur auquel vous souhaitez transférer la propriété.

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

    Accéder à la page Transferts de données

  3. Cliquez sur le transfert dans la liste des transferts de données.

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

  5. Cliquez sur Autoriser pour autoriser le service de transfert de données BigQuery à afficher vos données de rapport et pour accéder aux données dans BigQuery et les gérer.

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

Remplacez les éléments suivants :

  • 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 les bibliothèques clientes.

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 Configurer l'authentification pour les bibliothèques clientes.

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

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

service_account_name = "abcdef-test-sa@abcdef-test.iam.gserviceaccount.com"
transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"

transfer_config = bigquery_datatransfer.TransferConfig(name=transfer_config_name)

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

print("Updated config: '{}'".format(transfer_config.name))

Désactiver un transfert

Lorsque vous désactivez un transfert, disabled est ajouté au nom de ce dernier. Dans ce cas de figure, aucune nouvelle exécution de transfert n'est programmée, et aucun nouveau remplissage n'est autorisé. Toute exécution de transfert en cours prend fin.

Si vous désactivez un transfert, cela n'entraîne pas la suppression des données déjà transférées vers BigQuery. Les coûts de stockage BigQuery standards vous sont facturés pour les données précédemment transférées, jusqu'à ce que vous supprimiez l'ensemble de données ou supprimiez les tables.

Pour désactiver un transfert :

Console

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

    Accéder à BigQuery

  2. Cliquez sur Transferts.

  3. Sur la page Transferts, cliquez sur le transfert de la liste que vous souhaitez désactiver.

  4. Cliquez sur DÉSACTIVER. Pour réactiver le transfert, cliquez sur ACTIVER.

bq

La désactivation d'un transfert n'est pas compatible avec la CLI.

API

Utilisez la méthode projects.locations.transferConfigs.patch, puis définissez disabled sur true dans la ressource projects.locations.transferConfig.

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 les bibliothèques clientes.

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 disable transfer config.
public class DisableTransferConfig {

  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).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(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 disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

Pour réactiver le transfert, procédez comme suit :

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 les bibliothèques clientes.

/*
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.example.bigquerydatatransfer;

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 disable transfer config.
public class DisableTransferConfig {

  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).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(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 disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

Supprimer un transfert

Lorsqu'un transfert est supprimé, aucune nouvelle exécution n'est programmée. Toute exécution de transfert en cours est arrêtée.

Si vous supprimez un transfert, cela n'entraîne pas la suppression des données déjà transférées vers BigQuery. Les coûts de stockage BigQuery standards vous sont facturés pour les données précédemment transférées, jusqu'à ce que vous supprimiez l'ensemble de données ou supprimiez les tables.

Pour supprimer un transfert :

Console

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

    Accéder à BigQuery

  2. Cliquez sur Transferts.

  3. Sur la page Transferts, cliquez sur le transfert que vous souhaitez supprimer dans la liste.

  4. Cliquez sur Supprimer. Par mesure de sécurité, vous devez saisir le mot "delete" (supprimer) dans un champ pour confirmer votre intention.

bq

Saisissez la commande bq rm, puis indiquez le nom de ressource de la configuration de transfert. Vous pouvez utiliser l'option -f pour supprimer une configuration de transfert sans passer l'étape de confirmation.

bq rm \
-f \
--transfer_config \
resource_name

Où :

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

bq rm \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Utilisez la méthode projects.locations.transferConfigs.delete et indiquez la ressource que vous souhaitez supprimer à 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 les bibliothèques clientes.

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

// Sample to delete a transfer config
public class DeleteTransferConfig {

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

  public static void deleteTransferConfig(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      DeleteTransferConfigRequest request =
          DeleteTransferConfigRequest.newBuilder().setName(configId).build();
      dataTransferServiceClient.deleteTransferConfig(request);
      System.out.println("Transfer config deleted successfully");
    } catch (ApiException ex) {
      System.out.println("Transfer config was not deleted." + 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 les bibliothèques clientes.

import google.api_core.exceptions
from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
try:
    transfer_client.delete_transfer_config(name=transfer_config_name)
except google.api_core.exceptions.NotFound:
    print("Transfer config not found.")
else:
    print(f"Deleted transfer config: {transfer_config_name}")

Déclencher un transfert manuellement

Vous pouvez déclencher manuellement un transfert, également appelé exécution de remplissage, pour charger des fichiers de données supplémentaires en dehors de vos transferts programmés automatiquement. Avec les sources de données compatibles avec les paramètres d'exécution, vous pouvez également déclencher manuellement un transfert en spécifiant une date ou une période à partir de laquelle charger les données antérieures.

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 relative à votre source de données.

Rôles requis

Pour obtenir les autorisations nécessaires pour modifier des transferts, demandez à votre administrateur de vous accorder le rôle IAM Administrateur BigQuery (roles/bigquery.admin) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Déclencher manuellement un transfert ou un remplissage

Vous pouvez déclencher manuellement une exécution de transfert ou de remplissage avec les méthodes suivantes :

  • Sélectionnez votre exécution de transfert à l'aide de la console Google Cloud, puis cliquez sur Exécuter le transfert maintenant ou sur Programmer le remplissage.
  • Utiliser la commande bq mk –transfer run à l'aide de l'outil de ligne de commande bq
  • Appelez la méthode API projects.locations.transferConfigs.startManualRuns method.

Pour obtenir des instructions détaillées sur chaque méthode, sélectionnez l'onglet correspondant :

Console

  1. Dans la console Google Cloud, accédez à la page Transferts de données.

    Accéder à la page Transferts de données

  2. Sélectionnez votre transfert dans la liste.

  3. Cliquez sur Exécuter le transfert maintenant ou Programmer le remplissage. Une seule option est disponible en fonction du type de configuration de transfert.

    • Si vous avez cliqué sur Exécuter le transfert maintenant, sélectionnez Exécuter un transfert ponctuel ou Exécuter pour une date spécifique, selon le cas. Si vous avez choisi Exécuter pour une date spécifique, sélectionnez une date et une heure spécifiques :

      Exécuter le transfert maintenant

    • Si vous avez cliqué sur Programmer le remplissage, sélectionnez Exécuter un transfert ponctuel ou Exécuter pour une plage de dates, selon le cas. Si vous avez choisi Exécuter pour une plage de dates, sélectionnez une date de début et une date de fin :

      Programmer le remplissage

  4. Cliquez sur OK.

bq

Pour démarrer une exécution de transfert manuellement, saisissez la commande bq mk avec l'option --transfer_run :

bq mk \
--transfer_run \
--run_time='RUN_TIME' \
RESOURCE_NAME

Remplacez les éléments suivants :

  • RUN_TIME est un horodatage qui spécifie la date d'un transfert antérieur. Utilisez des horodatages se terminant par Z ou contenant un décalage de fuseau horaire valide, par exemple 2022-08-19T12:11:35.00Z ou 2022-05-25T00:00:00+00:00.
    • Si votre transfert ne possède pas de paramètre d'exécution ou si vous souhaitez simplement déclencher un transfert sans spécifier de transfert précédent, saisissez l'heure actuelle dans ce champ.
  • RESOURCE_NAME est le nom de la ressource répertoriée sur votre configuration de transfert, par exemple projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

Pour démarrer manuellement une exécution de transfert pour une plage de dates, saisissez la commande bq mk avec l'option --transfer_run ainsi qu'une plage de dates :

bq mk \
--transfer_run \
--start_time='START_TIME' \
--end_time='END_TIME' \
RESOURCE_NAME

Remplacez les éléments suivants :

  • START_TIME et END_TIME sont des horodatages qui finissent par Z ou qui contiennent un décalage de fuseau horaire valide. Ces valeurs spécifient la période contenant les exécutions de transfert précédentes à partir desquelles vous souhaitez effectuer un remplissage, par exemple 2022-08-19T12:11:35.00Z ou 2022-05-25T00:00:00+00:00.
  • RESOURCE_NAME est le nom de ressource répertorié sur votre configuration de transfert, par exemple projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Pour démarrer manuellement une exécution de transfert, utilisez la méthode projects.locations.transferConfigs.startManualRuns et indiquez le nom de ressource de la configuration de transfert à l'aide du paramètre parent. Pour trouver le nom de ressource d'une configuration de transfert, consultez la page Obtenir les détails du transfert.

  "requestedRunTime": "RUN_TIME"

Remplacez les éléments suivants :

  • RUN_TIME est un horodatage qui spécifie la date d'un transfert antérieur. Utilisez des horodatages se terminant par Z ou contenant un décalage de fuseau horaire valide, par exemple 2022-08-19T12:11:35.00Z ou 2022-05-25T00:00:00+00:00.
    • Si votre transfert ne possède pas de paramètre d'exécution ou si vous souhaitez simplement déclencher un transfert sans spécifier de transfert précédent, saisissez l'heure actuelle dans ce champ.

Pour démarrer manuellement un cycle de transfert pour une plage de dates, indiquez une plage de dates :

"requestedTimeRange": {
  "startTime": "START_TIME",
  "endTime": "END_TIME"
}

Remplacez les éléments suivants :

  • START_TIME et END_TIME sont des horodatages qui finissent par Z, ou ils contiennent un décalage de fuseau horaire valide. Ces valeurs spécifient la période contenant les exécutions de transfert précédentes à partir desquelles vous souhaitez effectuer un remplissage, par exemple 2022-08-19T12:11:35.00Z ou 2022-05-25T00:00:00+00:00.

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 les bibliothèques clientes.

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 les bibliothèques clientes.

import datetime

from google.cloud.bigquery_datatransfer_v1 import (
    DataTransferServiceClient,
    StartManualTransferRunsRequest,
)

# Create a client object
client = DataTransferServiceClient()

# Replace with your transfer configuration name
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
)

requested_time_range = StartManualTransferRunsRequest.TimeRange(
    start_time=start_time,
    end_time=end_time,
)

# Initialize request argument(s)
request = StartManualTransferRunsRequest(
    parent=transfer_config_name,
    requested_time_range=requested_time_range,
)

# Make the request
response = client.start_manual_transfer_runs(request=request)

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

Journalisation et surveillance

Le service de transfert de données BigQuery exporte les journaux et les métriques vers Cloud Monitoring et Cloud Logging afin d'offrir plus de visibilité sur vos transferts. Vous pouvez utiliser Monitoring pour configurer des tableaux de bord afin de surveiller les transferts, d'évaluer les performances d'exécution des transferts et d'afficher les messages d'erreur pour résoudre les échecs de transfert. Vous pouvez utiliser Logging pour afficher les journaux liés à une exécution de transfert ou à une configuration de transfert.

Vous pouvez également afficher les journaux d'audit disponibles pour le service de transfert de données BigQuery pour les journaux d'activité de transfert et d'accès aux données.