Gestisci trasferimenti

BigQuery Data Transfer Service ti consente di ispezionare i log di esecuzione, aggiornare le impostazioni di configurazione e le credenziali o disattivare ed eliminare i trasferimenti per mantenere aggiornate le pipeline di dati. Per caricare file passati al di fuori della pianificazione regolare, puoi anche attivare manualmente un trasferimento esistente, noto anche come avvio di un'esecuzione di backfill.

Visualizza i trasferimenti

Visualizza le configurazioni dei trasferimenti esistenti visualizzando le informazioni su ogni trasferimento, elencando tutti i trasferimenti esistenti e visualizzando la cronologia delle esecuzioni dei trasferimenti o i messaggi di log.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per visualizzare i dettagli del trasferimento, chiedi all'amministratore di concederti il ruolo IAM Utente BigQuery (roles/bigquery.user) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Inoltre, per visualizzare i messaggi di log tramite la console Google Cloud , devi disporre delle autorizzazioni per visualizzare i dati di Cloud Logging. Il ruolo Visualizzatore log (roles/logging.viewer) ti concede l'accesso di sola lettura a tutte le funzionalità di Logging. Per saperne di più sulle autorizzazioni e sui ruoli di Identity and Access Management (IAM) che si applicano ai dati dei log di Cloud, consulta la guida al controllo degli accessi di Cloud Logging.

Per saperne di più sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

Visualizza i dettagli del trasferimento

Dopo aver creato un trasferimento, puoi ottenere informazioni sulla sua configurazione. La configurazione include i valori forniti durante la creazione del trasferimento, nonché altre informazioni importanti, come i nomi delle risorse.

Per ottenere informazioni su una configurazione di trasferimento:

Console

  1. Vai alla pagina Trasferimenti di dati.

    Vai a Trasferimenti di dati

  2. Seleziona il trasferimento di cui vuoi visualizzare i dettagli.

  3. Per visualizzare la configurazione del trasferimento e i dettagli dell'origine dati, fai clic su Configurazione nella pagina Dettagli trasferimento. L'esempio seguente mostra le proprietà di configurazione per un trasferimento Google Ads:

    Configurazione del trasferimento nella console

bq

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

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

Sostituisci resource_name con il nome della risorsa del trasferimento (noto anche come configurazione del trasferimento). Se non conosci il nome della risorsa del trasferimento, trovalo con: bq ls --transfer_config --transfer_location=location.

Ad esempio, inserisci il seguente comando per visualizzare la configurazione del 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 di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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

Elenca le configurazioni di trasferimento

Per elencare tutte le configurazioni di trasferimento esistenti in un progetto:

Console

  1. Nella console Google Cloud , vai alla pagina Trasferimenti di dati.

    Vai a Trasferimenti di dati

  2. Se nel progetto sono presenti configurazioni di trasferimento, viene visualizzato un elenco delle configurazioni di trasferimento nell'elenco dei trasferimenti di dati.

bq

Per elencare tutte le configurazioni di trasferimento per un progetto in base alla località, inserisci il comando bq ls e fornisci i flag --transfer_location e --transfer_config. Puoi anche aggiungere il flag --project_id per specificare un progetto specifico. 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 numero specifico di configurazioni di trasferimento in formato impaginato, utilizza il flag --max_results per specificare il numero di trasferimenti. Il comando restituisce un token di pagina che fornisci utilizzando il flag --page_token per visualizzare le n configurazioni successive. Se --max_results viene omesso, verranno restituite al massimo 1000 configurazioni 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

Sostituisci quanto segue:

Esempi:

Inserisci il seguente comando per visualizzare tutte le configurazioni di trasferimento negli Stati Uniti per il tuo progetto predefinito. L'output è 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 di pagina successiva. Copia il token di pagina e inseriscilo nel comando bq ls per visualizzare i 3 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 Google Ads e Campaign Manager per l'ID progetto myproject.

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

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 di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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 di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

import google.api_core.exceptions
from google.cloud import bigquery_datatransfer_v1

client = bigquery_datatransfer_v1.DataTransferServiceClient()


def list_transfer_configs(project_id: str, location: str) -> None:
    """Lists transfer configurations in a given project.

    This sample demonstrates how to list all transfer configurations in a project.

    Args:
        project_id: The Google Cloud project ID.
        location: The geographic location of the transfer config, for example "us-central1"
    """

    parent = client.common_location_path(project_id, location)

    try:
        for config in client.list_transfer_configs(parent=parent):
            print(f"Name: {config.name}")
            print(f"Display Name: {config.display_name}")
            print(f"Data source: {config.data_source_id}")
            print(f"Destination dataset: {config.destination_dataset_id}")
            if "time_based_schedule" in config.schedule_options_v2:
                print(
                    f"Schedule: {config.schedule_options_v2.time_based_schedule.schedule}"
                )
            else:
                print("Schedule: None")
            print("---")
    except google.api_core.exceptions.NotFound:
        print(
            f"Error: Project '{project_id}' not found or contains no transfer configs."
        )
    except google.api_core.exceptions.PermissionDenied:
        print(
            f"Error: Permission denied for project '{project_id}'. Please ensure you have the correct permissions."
        )

Visualizza la cronologia delle esecuzioni del trasferimento

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

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

Console

  1. Nella console Google Cloud , vai alla pagina Trasferimenti di dati.

    Vai a Trasferimenti di dati

  2. Fai clic sul trasferimento nell'elenco dei trasferimenti di dati.

  3. Verrà visualizzata la pagina CRONOLOGIA ESECUZIONI per il trasferimento selezionato.

bq

Per elencare le esecuzioni dei trasferimenti per una determinata configurazione di trasferimento, inserisci il comando bq ls e fornisci il flag --transfer_run. Puoi anche aggiungere il flag --project_id per specificare un progetto specifico. 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 numero specifico di esecuzioni di trasferimento, specifica il flag --max_results. Il comando restituisce un token di pagina che fornisci utilizzando il flag --page_token per visualizzare le n configurazioni successive.

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

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

Sostituisci quanto segue:

  • integer è il numero di risultati da restituire.
  • location è la località delle configurazioni di trasferimento. La località viene specificata quando crei un trasferimento.
  • project_id è l'ID progetto.
  • state, ... è uno dei seguenti valori o un elenco separato da virgole:
    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED
  • resource_name è il nome della risorsa del trasferimento (indicato anche come configurazione del 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 visualizzare le ultime tre esecuzioni della configurazione del trasferimento projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. L'output è 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 di pagina successiva. Copia il token di pagina e inseriscilo nel comando bq ls per visualizzare i 3 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 seguente comando per visualizzare tutte le esecuzioni non riuscite per la configurazione del 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 di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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 un'esecuzione del trasferimento viene visualizzata nella cronologia delle esecuzioni, puoi visualizzarne i dettagli, inclusi i messaggi di log, gli avvisi e gli errori, il nome dell'esecuzione e l'ora di inizio e di fine.

Per visualizzare i dettagli dell'esecuzione del trasferimento:

Console

  1. Nella console Google Cloud , vai alla pagina Trasferimenti di dati.

    Vai a Trasferimenti di dati

  2. Fai clic sul trasferimento nell'elenco dei trasferimenti di dati.

  3. Verrà visualizzata la pagina CRONOLOGIA ESECUZIONI per il trasferimento selezionato.

  4. Fai clic su una singola esecuzione del trasferimento per aprire il riquadro Dettagli esecuzione per l'esecuzione del trasferimento.

  5. In Dettagli esecuzione, prendi nota di 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.

    Dettagli esecuzione 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

Sostituisci run_name con il nome dell'esecuzione del trasferimento. Puoi recuperare il nome dell'esecuzione utilizzando il comando bq ls.

Esempio:

Inserisci il seguente comando 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 di log di trasferimento per un'esecuzione del 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 numero specifico di messaggi di log, fornisci il flag --max_results. Il comando restituisce un token di pagina che fornisci utilizzando il flag --page_token per visualizzare i successivi n messaggi.

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

Sostituisci quanto segue:

  • 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 del trasferimento. Puoi recuperare il nome dell'esecuzione utilizzando il comando bq ls.

Esempi:

Inserisci il seguente comando 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 di pagina successiva. Copia il token di pagina e inseriscilo nel comando bq ls per visualizzare i 2 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 seguente comando per visualizzare solo i messaggi di errore 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 \
--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 di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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

Modifica i trasferimenti

Puoi modificare i trasferimenti esistenti modificando le informazioni nella configurazione del trasferimento, aggiornando le credenziali di un utente associate a una configurazione del trasferimento e disattivando o eliminando un trasferimento.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per modificare i trasferimenti, chiedi all'amministratore di concederti il ruolo IAM BigQuery Admin (roles/bigquery.admin) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Aggiorna un trasferimento

Dopo aver creato una configurazione di trasferimento, puoi modificare i seguenti campi:

  • Set di dati di destinazione
  • Nome visualizzato
  • Uno qualsiasi dei parametri specificati per il tipo di trasferimento specifico
  • Impostazioni di notifica per la corsa
  • Service account

Non puoi modificare l'origine di un trasferimento dopo averlo creato.

Per aggiornare un trasferimento:

Console

  1. Nella console Google Cloud , vai alla pagina Trasferimenti di dati.

    Vai a Trasferimenti di dati

  2. Fai clic sul trasferimento nell'elenco dei trasferimenti di dati.

  3. Fai clic su MODIFICA per aggiornare la configurazione del trasferimento.

bq

Inserisci il comando bq update, fornisci 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. Facoltativamente, puoi fornire un flag --destination_kms_key per le query pianificate o i trasferimenti di 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

Sostituisci quanto segue:

  • NAME: il nome visualizzato della configurazione del trasferimento.
  • PARAMETERS: i parametri per la configurazione del trasferimento in formato JSON. Ad esempio: --params='{"param1":"param_value1"}'. Per informazioni sui parametri supportati, consulta la guida ai trasferimenti per la tua origine dati.
  • INTEGER: un valore compreso tra 0 e 30. Per informazioni sull'impostazione della finestra di aggiornamento, consulta la documentazione relativa al tipo di trasferimento.
  • SCHEDULE: una pianificazione ricorrente, ad esempio --schedule="every 3 hours". Per una descrizione della sintassi di schedule, consulta Formattazione di schedule.
  • DATASET_ID: il set di dati di destinazione per la configurazione del trasferimento.
  • DESTINATION_KEY: l'ID risorsa della chiave Cloud KMS, ad esempio projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name. La chiave CMEK è disponibile solo per le query pianificate o i trasferimenti di Cloud Storage.
  • SERVICE_ACCOUNT: specifica un account di servizio da utilizzare con questo trasferimento.
  • RESOURCE_NAME: il nome della risorsa del trasferimento (noto anche come configurazione del 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 di 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 la pianificazione per il trasferimento delle 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 seguente metodo 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 di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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 di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

import google.api_core.exceptions
from google.cloud import bigquery_datatransfer_v1
from google.protobuf import field_mask_pb2


client = bigquery_datatransfer_v1.DataTransferServiceClient()


def update_transfer_config(
    project_id: str,
    location: str,
    transfer_config_id: str,
) -> None:
    """Updates a data transfer configuration.

    This sample shows how to update the display name for a transfer
    configuration.

    Args:
        project_id: The Google Cloud project ID.
        location: The geographic location of the transfer config, for example "us-central1"
        transfer_config_id: The transfer configuration ID
    """
    transfer_config_name = client.transfer_config_path(
        project=f"{project_id}/locations/{location}",
        transfer_config=transfer_config_id,
    )

    transfer_config = bigquery_datatransfer_v1.types.TransferConfig(
        name=transfer_config_name,
        display_name="My New Transfer Config display name",
    )
    update_mask = field_mask_pb2.FieldMask(paths=["display_name"])

    try:
        response = client.update_transfer_config(
            transfer_config=transfer_config,
            update_mask=update_mask,
        )

        print(f"Updated transfer config: {response.name}")
        print(f"New display name: {response.display_name}")
    except google.api_core.exceptions.NotFound:
        print(f"Error: Transfer config '{transfer_config_name}' not found.")

Aggiorna credenziali

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

Per aggiornare le credenziali di un trasferimento:

Console

  1. Nella console Google Cloud , accedi come utente a cui vuoi trasferire la proprietà.

  2. Vai alla pagina Trasferimenti di dati.

    Vai a Trasferimenti di dati

  3. Fai clic sul trasferimento in ingresso nell'elenco dei trasferimenti di dati.

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

  5. Fai clic su Consenti per concedere a BigQuery Data Transfer Service l'autorizzazione a visualizzare i dati dei report e ad accedere ai dati in BigQuery e gestirli.

bq

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

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

Sostituisci quanto segue:

  • boolean è un valore booleano che indica se le credenziali devono essere aggiornate per la configurazione del trasferimento.
  • resource_name è il nome della risorsa del trasferimento (noto anche come configurazione del 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 di 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 di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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 di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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

Disattiva un trasferimento

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

La disattivazione di un trasferimento non rimuove i dati già trasferiti in BigQuery. I dati trasferiti in precedenza comportano i costi di archiviazione standard di BigQuery finché non elimini il set di dati o le tabelle.

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 in ingresso nell'elenco che vuoi disattivare.

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

bq

La disattivazione 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 di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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

Per riattivare il trasferimento:

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

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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

Elimina un trasferimento

Quando un trasferimento viene eliminato, non vengono pianificate nuove esecuzioni. Tutte le esecuzioni di trasferimento in corso vengono interrotte.

L'eliminazione di un trasferimento non comporta la rimozione dei dati già trasferiti a BigQuery. I dati trasferiti in precedenza comportano i costi di archiviazione standard di BigQuery finché non elimini il set di dati o le tabelle.

Per eliminare 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 eliminare.

  4. Fai clic su ELIMINA. Come misura di sicurezza, dovrai digitare la parola "elimina" in una casella per confermare la tua intenzione.

bq

Inserisci il comando bq rm e fornisci il nome della risorsa della configurazione di trasferimento. Puoi utilizzare il flag -f per eliminare una configurazione di trasferimento senza conferma.

bq rm \
-f \
--transfer_config \
resource_name

Dove:

  • resource_name è il nome della risorsa del trasferimento, noto anche come configurazione del trasferimento. Se non conosci il nome della risorsa del trasferimento, esegui il comando bq ls --transfer_config --transfer_location=location per elencare tutti i trasferimenti.

Ad esempio, inserisci il seguente comando per eliminare la configurazione del trasferimento 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

Utilizza il metodo projects.locations.transferConfigs.delete e fornisci la risorsa che stai eliminando utilizzando il parametro name.

Java

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

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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

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

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

import google.api_core.exceptions
from google.cloud import bigquery_datatransfer_v1

client = bigquery_datatransfer_v1.DataTransferServiceClient()


def delete_transfer_config(
    project_id: str, location: str, transfer_config_id: str
) -> None:
    """Deletes a data transfer configuration, including any associated transfer runs and logs.

    Args:
        project_id: The Google Cloud project ID.
        location: The geographic location of the transfer configuration, for example, "us-central1".
        transfer_config_id: The transfer configuration ID, for example, "1234a-5678-90b1-2c3d-4e5f67890g12".
    """

    name = client.transfer_config_path(
        project=f"{project_id}/locations/{location}",
        transfer_config=transfer_config_id,
    )
    request = bigquery_datatransfer_v1.DeleteTransferConfigRequest(name=name)

    try:
        client.delete_transfer_config(request=request)
        print(f"Deleted transfer config {name}")
    except google.api_core.exceptions.NotFound:
        print(f"Error: Transfer config '{name}' not found.")

Quando elimini un trasferimento di dati con collegamenti di rete, potrebbero essere necessari alcuni giorni prima di poter eliminare i collegamenti di rete associati al trasferimento di dati. Per saperne di più, consulta la sezione Problemi generali.

Attiva manualmente un trasferimento

Puoi attivare manualmente un trasferimento, chiamato anche esecuzione di backfill, per caricare file di dati aggiuntivi al di fuori dei trasferimenti pianificati automaticamente. Con le origini dati che supportano i parametri di runtime, puoi anche attivare manualmente un trasferimento specificando una data o un intervallo di tempo da cui caricare i dati passati.

Puoi avviare manualmente i backfill dati in qualsiasi momento. Oltre ai limiti delle origini, 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 guida al trasferimento per l'origine dati.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per modificare i trasferimenti, chiedi all'amministratore di concederti il ruolo IAM BigQuery Admin (roles/bigquery.admin) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Attiva manualmente un trasferimento o un backfill

Puoi attivare manualmente un'esecuzione di trasferimento o backfill con i seguenti metodi:

  • Seleziona l'esecuzione del trasferimento utilizzando la console Google Cloud , quindi fai clic su Esegui trasferimento ora o Pianifica backfill.
  • Utilizza il comando bq mk --transfer run con lo strumento a riga di comando bq
  • Chiama il metodo API projects.locations.transferConfigs.startManualRuns method

Per istruzioni dettagliate su ciascun metodo, seleziona la scheda corrispondente:

Console

  1. Nella console Google Cloud , vai alla pagina Trasferimenti di dati.

    Vai a Trasferimenti di dati

  2. Seleziona il trasferimento dall'elenco.

  3. Fai clic su Esegui trasferimento ora o Pianifica backfill. È disponibile una sola opzione, a seconda del tipo di configurazione del trasferimento.

    • Se hai fatto clic su Esegui trasferimento ora, seleziona Esegui trasferimento una tantum o Esegui per una data specifica, a seconda dei casi. Se hai selezionato Esegui per una data specifica, seleziona una data e un'ora specifiche:

      Esegui ora il trasferimento

    • Se hai fatto clic su Pianifica backfill, seleziona Esegui trasferimento una tantum o Esegui per un intervallo di date, a seconda dei casi. Se hai selezionato Esegui per un intervallo di date, seleziona una data e un'ora di inizio e di fine:

      Programma backfill

  4. Fai clic su OK.

bq

Per avviare manualmente un'esecuzione del trasferimento, inserisci il comando bq mk con il flag --transfer_run:

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

Sostituisci quanto segue:

  • RUN_TIME è un timestamp che specifica la data di un trasferimento passato. Utilizza timestamp che terminano con Z o contengono un offset del fuso orario valido, ad esempio 2022-08-19T12:11:35.00Z o 2022-05-25T00:00:00+00:00.
    • Se il trasferimento non ha un parametro di runtime o se vuoi semplicemente attivare un trasferimento ora senza specificare un trasferimento precedente, inserisci l'ora corrente in questo campo.
  • RESOURCE_NAME è il nome della risorsa elencato nella configurazione del trasferimento, ad esempio projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

Per avviare manualmente un'esecuzione del trasferimento per un intervallo di date, inserisci il comando bq mk con il flag --transfer_run insieme a un intervallo di date:

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

Sostituisci quanto segue:

  • START_TIME e END_TIME sono timestamp che terminano con Z o contengono un offset di fuso orario valido. Questi valori specificano l'intervallo di tempo contenente le esecuzioni di trasferimento precedenti da cui vuoi eseguire il backfill, ad esempio 2022-08-19T12:11:35.00Z o 2022-05-25T00:00:00+00:00
  • RESOURCE_NAME è il nome della risorsa elencato nella configurazione del trasferimento, ad esempio projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Per avviare manualmente un'esecuzione del trasferimento, utilizza il metodo projects.locations.transferConfigs.startManualRuns e fornisci il nome della risorsa di configurazione del trasferimento utilizzando il parametro parent. Per trovare il nome della risorsa di una configurazione di trasferimento, consulta Recupera i dettagli del trasferimento

  "requestedRunTime": "RUN_TIME"

Sostituisci quanto segue:

  • RUN_TIME è un timestamp che specifica la data di un trasferimento passato. Utilizza timestamp che terminano con Z o contengono un offset del fuso orario valido, ad esempio 2022-08-19T12:11:35.00Z o 2022-05-25T00:00:00+00:00.
    • Se il trasferimento non ha un parametro di runtime o se vuoi semplicemente attivare un trasferimento ora senza specificare un trasferimento precedente, inserisci l'ora corrente in questo campo.

Per avviare manualmente un'esecuzione del trasferimento per un intervallo di date, fornisci un intervallo di date:

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

Sostituisci quanto segue:

  • START_TIME e END_TIME sono timestamp che terminano con Z o contengono un offset del fuso orario valido. Questi valori specificano l'intervallo di tempo contenente le esecuzioni di trasferimento precedenti da cui vuoi eseguire il backfill, ad esempio 2022-08-19T12:11:35.00Z o 2022-05-25T00:00:00+00:00

Java

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

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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 di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

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

Logging e monitoraggio

BigQuery Data Transfer Service esporta log e metriche in Cloud Monitoring e Cloud Logging, che forniscono osservabilità dei trasferimenti. Puoi utilizzare Monitoring per configurare dashboard per monitorare i trasferimenti, valutare le prestazioni delle esecuzioni dei trasferimenti e visualizzare i messaggi di errore per risolvere i problemi relativi ai trasferimenti non riusciti. Puoi utilizzare Logging per visualizzare i log relativi a un'esecuzione o a una configurazione del trasferimento.

Puoi anche visualizzare gli audit log disponibili per BigQuery Data Transfer Service per l'attività di trasferimento e i log di accesso ai dati.

Risolvi i problemi relativi alle configurazioni di trasferimento

Per informazioni sulla risoluzione dei problemi relativi a BigQuery Data Transfer Service, consulta Risolvi i problemi relativi alle configurazioni di trasferimento.