Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Utilizzo dei trasferimenti

Dopo aver creato un trasferimento utilizzando BigQuery Data Transfer Service, puoi:

  • Ricevi informazioni su una configurazione di trasferimento
  • Elencare le configurazioni dei trasferimenti
  • Visualizzare la cronologia delle esecuzioni di un trasferimento
  • Visualizzare i dettagli dell'esecuzione del trasferimento, ad esempio i messaggi di log
  • Aggiornare un trasferimento
  • Configura un backfill
  • Aggiorna credenziali
  • Disattivare un trasferimento
  • Eliminare un trasferimento

Chiedi informazioni sui trasferimenti

Dopo aver creato un trasferimento, puoi avere informazioni sulla sua configurazione. La configurazione include i valori forniti al momento della creazione del trasferimento.

Autorizzazioni obbligatorie

Per ricevere informazioni su un trasferimento sono necessarie autorizzazioni bigquery.transfers.get. I seguenti ruoli IAM predefiniti includono le autorizzazioni bigquery.transfers.get:

  • bigquery.admin
  • bigquery.user

Un utente a cui sono state concesse le autorizzazioni bigquery.transfers.get può visualizzare le informazioni su tutti i trasferimenti di un progetto.

Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

Visualizzare le informazioni su un trasferimento

Per ricevere informazioni su una configurazione di trasferimento:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Fai clic su Trasferimenti.

  3. Nella pagina Trasferimenti, fai clic su un trasferimento appropriato nell'elenco.

  4. Fai clic su CONFIGURAZIONE per il trasferimento selezionato.

  5. Verranno visualizzati i dettagli della configurazione di trasferimento e dell'origine dati. L'esempio seguente mostra le proprietà di configurazione per una migrazione Teradata.

    Trasferisci la configurazione nella console

bq

Inserisci il comando bq show e fornisci il nome della risorsa di configurazione del trasferimento. Il flag --format può essere utilizzato per controllare il formato di output.

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

Dove:

Ad esempio, inserisci questo comando per visualizzare la configurazione di trasferimento per 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

Utilizza il metodo projects.locations.transferConfigs.get e fornisci la configurazione del trasferimento utilizzando il parametro name.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java BigQuery.

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

Elencare le configurazioni dei trasferimenti

Autorizzazioni obbligatorie

Per elencare tutti i trasferimenti, o le configurazioni di trasferimento, in un progetto è necessaria l'autorizzazione bigquery.transfers.get. I seguenti ruoli IAM predefiniti includono le autorizzazioni bigquery.transfers.get:

  • bigquery.admin
  • bigquery.user

Un utente a cui sono state concesse le autorizzazioni bigquery.transfers.get può elencare tutti i trasferimenti in un progetto.

Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

Elenca trasferimenti

Per elencare le configurazioni di trasferimento in un progetto:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Fai clic su Trasferimenti.

  3. Se nel progetto sono presenti configurazioni di trasferimento, un elenco delle configurazioni di trasferimento viene visualizzato nella pagina Trasferimenti.

bq

Per elencare tutte le configurazioni di trasferimento di un progetto in base alla località, inserisci il comando bq ls e fornisci i flag --transfer_location e --transfer_config. Puoi anche fornire il flag --project_id per specificare un determinato progetto. Se --project_id non è specificato, viene utilizzato il progetto predefinito. Il flag --format può essere utilizzato per controllare il formato di output.

Per elencare le configurazioni di trasferimento per origini dati specifiche, fornisci il flag --filter.

Per visualizzare un determinato numero di configurazioni di trasferimento in formato impaginato, fornisci il flag --max_results per specificare il numero di trasferimenti. Il comando restituisce un token di pagina da te fornito utilizzando il flag --page_token per visualizzare le configurazioni successive. Esiste un limite di 1000 configurazioni che verranno restituite se --max_results viene omesso e --max_results non accetterà valori superiori a 1000. Se il tuo progetto ha più di 1000 configurazioni, utilizza --max_results e --page_token per eseguirne l'iterazione.

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

Dove:

Esempi:

Inserisci il comando seguente per visualizzare tutte le configurazioni di trasferimento negli Stati Uniti per il tuo progetto predefinito. L'output viene controllato utilizzando il flag --format.

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

Inserisci il comando seguente per visualizzare tutte le configurazioni di trasferimento negli Stati Uniti per l'ID progetto myproject.

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

Inserisci il seguente comando per elencare le tre configurazioni di trasferimento più recenti.

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

Il comando restituisce un token della pagina successiva. Copia il token della pagina e forniscilo nel comando bq ls per visualizzare i tre risultati successivi.

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

Inserisci il comando seguente per elencare le configurazioni di trasferimento di Ads e Campaign Manager per l'ID progetto myproject.

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

API

Utilizza il metodo projects.locations.transferConfigs.list e fornisci l'ID progetto utilizzando il parametro parent.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java BigQuery.

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

Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Python BigQuery.

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

Visualizzare la cronologia esecuzioni

Man mano che i trasferimenti pianificati vengono eseguiti, viene conservata una cronologia delle esecuzioni per ogni configurazione di trasferimento che include le esecuzioni del trasferimento riuscite e quelle non riuscite. Le esecuzioni del trasferimento risalenti a più di 90 giorni fa vengono eliminate automaticamente dalla cronologia.

Autorizzazioni obbligatorie

Per visualizzare la cronologia delle esecuzioni per una configurazione di trasferimento sono necessarie autorizzazioni bigquery.transfers.get. Entrambi i ruoli IAM predefiniti bigquery.user e bigquery.admin includono le autorizzazioni bigquery.transfers.get.

Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

Visualizzare una cronologia esecuzioni

Per visualizzare la cronologia delle esecuzioni per una configurazione di trasferimento:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Fai clic su Trasferimenti.

  3. Nella pagina Trasferimenti, fai clic su un trasferimento appropriato nell'elenco.

  4. Verrà visualizzata la pagina ESEGUI CRONOLOGIA per il trasferimento selezionato.

bq

Per elencare le esecuzioni del trasferimento per una determinata configurazione di trasferimento, inserisci il comando bq ls e fornisci il flag --transfer_run. Puoi anche fornire il flag --project_id per specificare un particolare progetto. Se resource_name non contiene informazioni sul progetto, viene utilizzato il valore --project_id. Se --project_id non è specificato, viene utilizzato il progetto predefinito. Il flag --format può essere utilizzato per controllare il formato di output.

Per visualizzare un determinato numero di esecuzioni del trasferimento, fornisci il flag --max_results. Il comando restituisce un token di pagina da te fornito utilizzando il flag --page_token per visualizzare le configurazioni successive.

Per elencare le esecuzioni del trasferimento in base allo stato di esecuzione, fornisci il flag --filter.

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

Dove:

  • integer è il numero di risultati da restituire.
  • location è la posizione delle configurazioni del trasferimento. La località viene specificata quando crei un trasferimento.
  • project_id è l'ID progetto.
  • state, ... è uno dei seguenti o un elenco separato da virgole:
    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED
  • resource_name è il nome della risorsa di trasferimento (chiamato anche configurazione di trasferimento). Se non conosci il nome della risorsa del trasferimento, trovalo con: bq ls --transfer_config --transfer_location=location.

Esempi:

Inserisci il comando seguente per visualizzare le tre esecuzioni più recenti per la configurazione di trasferimento projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. L'output viene controllato utilizzando il flag --format.

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

Il comando restituisce un token della pagina successiva. Copia il token della pagina e forniscilo nel comando bq ls per visualizzare i tre risultati successivi.

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

Inserisci il comando seguente per visualizzare tutte le esecuzioni non riuscite per la configurazione di trasferimento 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

Utilizza il metodo projects.locations.transferConfigs.runs.list e specifica l'ID progetto utilizzando il parametro parent.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java BigQuery.

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

Visualizza i dettagli dell'esecuzione del trasferimento e i messaggi di log

Quando viene visualizzata un'esecuzione del trasferimento nella cronologia, puoi visualizzare i dettagli dell'esecuzione, inclusi messaggi di log, avvisi ed errori, il nome dell'esecuzione e l'ora di inizio e di fine.

Autorizzazioni obbligatorie

La visualizzazione dei dettagli dell'esecuzione del trasferimento richiede autorizzazioni bigquery.transfers.get. Entrambi i ruoli IAM predefiniti bigquery.user e bigquery.admin includono le autorizzazioni bigquery.transfers.get.

Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

Inoltre, per visualizzare i messaggi di log tramite la console Google Cloud sono necessarie le autorizzazioni per visualizzare i dati di Cloud Logging, il ruolo Visualizzatore log (roles/logging.viewer) consente l'accesso di sola lettura a tutte le funzionalità di Logging. Per saperne di più sulle autorizzazioni e sui ruoli IAM che si applicano ai dati dei log sul cloud, consulta la guida al controllo dell'accesso di Cloud Logging.

Visualizza i dettagli di un'esecuzione del trasferimento

Per visualizzare i dettagli dell'esecuzione del trasferimento:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Fai clic su Trasferimenti.

  3. Nella pagina Trasferimenti, fai clic su un trasferimento appropriato nell'elenco.

  4. Verrà visualizzata la pagina ESEGUI CRONOLOGIA per il trasferimento selezionato.

  5. Fai clic su una singola esecuzione del trasferimento; si aprirà il riquadro Dettagli esecuzione relativo all'esecuzione del trasferimento.

  6. In Esegui dettagli, annota eventuali messaggi di errore. Queste informazioni sono necessarie se contatti l'assistenza clienti Google Cloud. I dettagli dell'esecuzione includono anche messaggi di log e avvisi.

    Esegui i dettagli nella console

bq

Per visualizzare i dettagli dell'esecuzione del trasferimento, inserisci il comando bq show e fornisci il nome dell'esecuzione del trasferimento utilizzando il flag --transfer_run. Il flag --format può essere utilizzato per controllare il formato di output.

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

Dove:

  • run_name è il nome dell'esecuzione dell'esecuzione del trasferimento. Puoi recuperare il nome esecuzione utilizzando il comando bq ls.

Esempio:

Inserisci il comando seguente per visualizzare i dettagli dell'esecuzione del trasferimento 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

Per visualizzare i messaggi del log di trasferimento per un'esecuzione di trasferimento, inserisci il comando bq ls con il flag --transfer_log. Puoi filtrare i messaggi di log per tipo utilizzando il flag --message_type.

Per visualizzare un determinato numero di messaggi di log, fornisci il flag --max_results. Il comando restituisce un token di pagina da te fornito utilizzando il flag --page_token per visualizzare i messaggi successivi.

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

Dove:

  • integer è il numero di messaggi di log da restituire.
  • message_type è il tipo di messaggio di log da visualizzare (un singolo valore o un elenco separato da virgole):
    • INFO
    • WARNING
    • ERROR
  • run_name è il nome dell'esecuzione dell'esecuzione del trasferimento. Puoi recuperare il nome dell'esecuzione utilizzando il comando bq ls.

Esempi:

Inserisci il comando seguente per visualizzare i primi due messaggi di log per l'esecuzione del trasferimento 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

Il comando restituisce un token della pagina successiva. Copia il token della pagina e forniscilo nel comando bq ls per visualizzare i due risultati successivi.

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

Inserisci il comando seguente per visualizzare solo i messaggi di errore relativi all'esecuzione del trasferimento 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

Utilizza il metodo projects.transferConfigs.runs.transferLogs.list e fornisci il nome dell'esecuzione del trasferimento utilizzando il parametro parent.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java BigQuery.

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

Aggiornare un trasferimento

Una volta aggiunto il trasferimento, puoi modificarlo. Puoi modificare uno qualsiasi dei campi completati durante la creazione del trasferimento, ad eccezione dell'opzione Origine:

  • Set di dati di destinazione
  • Nome visualizzato
  • Tutti i parametri specificati per il tipo di trasferimento specifico
  • Esegui le impostazioni di notifica

Autorizzazioni obbligatorie

L'aggiornamento di un trasferimento richiede autorizzazioni bigquery.transfers.update. Il ruolo IAM predefinito bigquery.admin include le autorizzazioni bigquery.transfers.update.

Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

Aggiornare un trasferimento

Per aggiornare un trasferimento:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Fai clic su Trasferimenti.

  3. Nella pagina Trasferimenti, fai clic su un trasferimento appropriato nell'elenco.

  4. Fai clic su MODIFICA per aggiornare la configurazione di trasferimento.

bq

Inserisci il comando bq update, specifica il nome della risorsa della configurazione di trasferimento utilizzando il flag --transfer_config e fornisci i flag --display_name, --params, --refresh_window_days, --schedule o --target_dataset:

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

Sostituisci quanto segue:

  • NAME: il nome visualizzato per la configurazione del trasferimento.
  • PARAMETERS: i parametri per la configurazione di trasferimento in formato JSON. Ad esempio: --params='{"param1":"param_value1"}'. È possibile modificare i seguenti parametri:
    • Campaign Manager: bucket e network_id
    • Google Ad Manager: bucket e network_code
    • Google Ads: customer_id
    • Google Merchant Center: merchant_id
    • Google Play: bucket e table_suffix
    • Query programmata: destination_table_kms_key, destination_table_name_template, partitioning_field, partitioning_type, query e write_disposition
    • Search Ads 360: advertiser_id, agency_id, custom_floodlight_variables, include_removed_entities e table_filter
    • Canale YouTube: table_suffix
    • Proprietario dei contenuti di YouTube: content_owner_id e table_suffix
  • INTEGER: un valore compreso tra 0 e 30. Per informazioni sull'impostazione della finestra di aggiornamento, consulta la documentazione del tipo di trasferimento.
  • SCHEDULE: una pianificazione ricorrente, ad esempio --schedule="every 3 hours". Per una descrizione della sintassi schedule, consulta Formattare schedule.
  • DATASET_ID: il set di dati di destinazione per la configurazione di trasferimento.
  • RESOURCE_NAME: nome della risorsa di trasferimento (indicata anche come configurazione di trasferimento). Se non conosci il nome della risorsa del trasferimento, trovalo con: bq ls --transfer_config --transfer_location=location.

Esempi:

Il seguente comando aggiorna il nome visualizzato, il set di dati di destinazione, la finestra di aggiornamento e i parametri per il trasferimento in 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

Il seguente comando aggiorna i parametri e pianifica il trasferimento di query pianificate 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

Utilizza il metodo projects.transferConfigs.patch e fornisci il nome della risorsa del trasferimento utilizzando il parametro transferConfig.name. Se non conosci il nome della risorsa del trasferimento, trovalo con: bq ls --transfer_config --transfer_location=location. Puoi anche chiamare il metodo seguente e fornire l'ID progetto utilizzando il parametro parent per elencare tutti i trasferimenti: projects.locations.transferConfigs.list.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java BigQuery.

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

Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Python BigQuery.

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

Configura backfill e aggiorna esecuzioni

Aggiorna

Tieni presente che i backfill non sono disponibili per questi tipi di trasferimenti. Tuttavia, puoi configurare un'esecuzione di aggiornamento.

Backfill

Puoi avviare manualmente i backfill dei dati in qualsiasi momento. Oltre ai limiti dell'origine, BigQuery Data Transfer Service supporta un massimo di 180 giorni per richiesta di backfill. Le richieste di backfill simultanee non sono supportate.

Per informazioni sulla quantità di dati disponibili per il backfill, consulta la documentazione dell'origine dati:

  • Amazon S3
  • Campaign Manager
  • Cloud Storage
  • Testo del set di dati
  • Google Ad Manager
  • Google Ads (in precedenza AdWords)
    • Quando configuri un backfill per Google Ads, le istantanee delle tabelle delle corrispondenze vengono acquisite una volta al giorno e archiviate nella partizione per la data di esecuzione più recente. Quando pianifichi un backfill, gli snapshot delle tabelle delle corrispondenze per le seguenti tabelle NON vengono aggiornati:
      • Annuncio
      • gruppo di annunci
      • Fascia d'età
      • Pubblico
      • Obiettivo offerta
      • Budget
      • Campagna
      • Criteri
      • Cliente
      • Genere
      • Parola chiave
      • Criterio delle campagne in base alla località
      • Stato parentale
      • Posizionamento
      • Video
  • Google Ads (anteprima)
  • Google Merchant Center
  • Google Play
  • Query programmate
  • Search Ads 360
    • Quando configuri un backfill per Search Ads 360, gli snapshot delle tabelle delle corrispondenze vengono acquisiti una volta al giorno e memorizzati nella partizione per la data di esecuzione più recente. Quando pianifichi un backfill, gli snapshot delle tabelle delle corrispondenze per le seguenti tabelle NON vengono aggiornati:
      • Account
      • Annuncio
      • Inserzionista
      • gruppo di annunci
      • Targeting gruppo annunci
      • Strategia di offerta
      • Campagna
      • Target della campagna
      • Elemento del feed
      • Attività Floodlight
      • Parola chiave
      • Parola chiave esclusa del gruppo di annunci
      • Target gruppo di annunci escluso
      • Parola chiaveParola chiave esclusa
      • Target da escludere dalla campagna
      • Prodotto pubblicizzato
      • Gruppo di prodotti
      • ProductLeadAndCrossSellFloodlightStatistiche
      • Video
      • Posizionamento
      • Video
  • Canale YouTube
  • Proprietario dei contenuti YouTube
  • Teradata
  • Amazon Redshift

Tieni presente che i backfill non sono disponibili per i trasferimenti di Cloud Storage. Tuttavia, puoi configurare un'esecuzione di aggiornamento di un trasferimento Cloud Storage.

Autorizzazioni obbligatorie

La pianificazione di un backfill richiede autorizzazioni bigquery.transfers.update. Il ruolo IAM predefinito bigquery.admin include le autorizzazioni bigquery.transfers.update.

Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

Pianificare un backfill

Per pianificare un backfill:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Fai clic su Trasferimenti.

  3. Nella pagina Trasferimenti, fai clic su un trasferimento appropriato nell'elenco.

  4. Fai clic sul menu ALTRO, quindi seleziona Pianifica backfill.

  5. Nella finestra di dialogo Pianifica backfill, scegli Data di inizio e Data di fine.

    Imposta le date di aggiornamento

bq

Inserisci il comando bq mk, fornisci il flag --transfer_run e specifica --start_time e --end_time.

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

Dove:

  • start_time e end_time sono timestamp che terminano con Z o contengono un fuso orario valido. Ad esempio:

    • 2017-08-19T12:11:35.00Z
    • 2017-05-25T00:00:00+00:00
  • resource_name è il nome della risorsa di trasferimento (noto anche come configurazione di trasferimento). Se non conosci il nome della risorsa del trasferimento, trovalo con: bq ls --transfer_config --transfer_location=location.

Esempi:

Inserisci il comando seguente per pianificare un backfill per la configurazione del trasferimento 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

Utilizza il metodo projects.locations.transferConfigs.startManualRuns e fornisci la risorsa di configurazione di trasferimento utilizzando il parametro parent.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java BigQuery.

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

Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Python BigQuery.

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

Aggiorna credenziali

Un trasferimento utilizza le credenziali dell'utente che lo ha creato. Se devi modificare l'utente associato a una configurazione di trasferimento, puoi aggiornare le credenziali di trasferimento. Questa operazione è utile se l'utente che ha creato il trasferimento non fa più parte della tua organizzazione.

Autorizzazioni obbligatorie

Per aggiornare le credenziali sono necessarie bigquery.transfers.update autorizzazioni. Il ruolo IAM predefinito bigquery.admin include le autorizzazioni bigquery.transfers.update.

Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

Aggiornare le credenziali di un trasferimento

Per aggiornare le credenziali per un trasferimento:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Fai clic su Trasferimenti.

  3. Nella pagina Trasferimenti, fai clic su un trasferimento appropriato nell'elenco.

  4. Fai clic sul menu ALTRO e seleziona Aggiorna credenziali.

  5. Accedi al tuo Account Google e fai clic su Consenti per concedere a BigQuery Data Transfer Service l'autorizzazione a visualizzare i dati dei report e ad accedere e gestire i dati in BigQuery.

bq

Inserisci il comando bq update, specifica il nome della risorsa della configurazione di trasferimento utilizzando il flag --transfer_config e fornisci il flag --update_credentials.

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

Dove:

  • boolean è un valore booleano che indica se le credenziali devono essere aggiornate per la configurazione di trasferimento.
  • resource_name è il nome della risorsa di trasferimento (noto anche come configurazione di trasferimento). Se non conosci il nome della risorsa del trasferimento, trovalo con: bq ls --transfer_config --transfer_location=location.

Esempi:

Inserisci il seguente comando per aggiornare le credenziali per il trasferimento da 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

Utilizza il metodo projects.transferConfigs.patch e fornisci i parametri authorizationCode e updateMask.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java BigQuery.

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

Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Python BigQuery.

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

Disattivare un trasferimento

Quando disabiliti un trasferimento, disabled viene aggiunto al nome del trasferimento. Se il trasferimento è disattivato, non sono pianificate nuove esecuzioni del trasferimento e non sono consentiti nuovi backfill. Tutte le esecuzioni del trasferimento in corso sono completate.

La disattivazione di un trasferimento non comporta la rimozione dei dati già trasferiti in BigQuery. I dati precedentemente trasferiti comportano i costi di archiviazione standard di BigQuery fino a quando non elimini il set di dati o elimina le tabelle.

Autorizzazioni obbligatorie

La disattivazione di un trasferimento richiede autorizzazioni bigquery.transfers.update. Il ruolo IAM predefinito bigquery.admin include le autorizzazioni bigquery.transfers.update.

Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

Disattivare un trasferimento

Per disattivare un trasferimento:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Fai clic su Trasferimenti.

  3. Nella pagina Trasferimenti, fai clic sul trasferimento nell'elenco che vuoi disattivare.

  4. Fai clic su DISATTIVA. Per riattivare il trasferimento, fai clic su ABILITA.

bq

La disabilitazione di un trasferimento non è supportata dall'interfaccia a riga di comando.

API

Utilizza il metodo projects.locations.transferConfigs.patch e imposta disabled su true nella risorsa projects.locations.transferConfig.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery all'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java BigQuery.

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 {

  p