Trasferimenti dei rapporti Cloud Storage

Il connettore BigQuery Data Transfer Service per Cloud Storage ti consente di pianificare i caricamenti di dati ricorrenti da Cloud Storage in BigQuery.

Prima di iniziare

Prima di creare un trasferimento di dati Cloud Storage, svolgi i seguenti passaggi:

Limitazioni

I trasferimenti di dati ricorrenti da Cloud Storage a BigQuery sono soggetti alle seguenti limitazioni:

  • Tutti i file corrispondenti ai pattern definiti da un carattere jolly o dai parametri di runtime per il trasferimento dei dati devono condividere lo stesso schema definito per la tabella di destinazione, altrimenti il trasferimento non andrà a buon fine. Anche le modifiche allo schema della tabella tra le esecuzioni causano il fallimento del trasferimento.
  • Poiché gli oggetti Cloud Storage possono essere versionati, è importante notare che gli oggetti Cloud Storage archiviati non sono supportati per i trasferimenti di dati di BigQuery. Gli oggetti devono essere pubblicati per essere trasferiti.
  • A differenza dei caricamenti singoli di dati da Cloud Storage a BigQuery, per i trasferimenti di dati continui devi creare la tabella di destinazione prima di configurare il trasferimento. Per i file CSV e JSON, devi anche definire in anticipo lo schema della tabella. BigQuery non può creare la tabella nell'ambito del processo di trasferimento dati ricorrente.
  • I trasferimenti di dati da Cloud Storage impostano il parametro Preferenza di scrittura su APPEND per impostazione predefinita. In questa modalità, un file non modificato può essere caricato in BigQuery solo una volta. Se la proprietà last modification time del file viene aggiornata, il file verrà ricaricato.
  • BigQuery Data Transfer Service non garantisce che tutti i file verranno trasferiti o trasferiti una sola volta se i file di Cloud Storage vengono modificati durante un trasferimento di dati. Quando carichi i dati in BigQuery da un bucket Cloud Storage, devi rispettare le seguenti limitazioni:

  • Se la posizione del set di dati è impostata su un valore diverso dall'area geografica multipla US, il bucket Cloud Storage deve trovarsi nella stessa regione o essere contenuto nella stessa area geografica multipla del set di dati.

  • BigQuery non garantisce la coerenza dei dati per le origini dati esterne. Le modifiche ai dati sottostanti durante l'esecuzione di una query possono comportare un comportamento imprevisto.

  • BigQuery non supporta il controllo delle versioni degli oggetti Cloud Storage. Se includi un numero di generazione nell'URI Cloud Storage, il job di caricamento non va a buon fine.

  • A seconda del formato dei dati dell'origine Cloud Storage, potrebbero esserci limitazioni aggiuntive. Per ulteriori informazioni, vedi:

  • Il bucket Cloud Storage deve trovarsi in una posizione compatibile con la regione o la regione multipla del set di dati di destinazione in BigQuery. Questo processo è noto come colocation. Per maggiori dettagli, consulta Località dei dati per il trasferimento di Cloud Storage.

Intervalli minimi

  • I file di origine vengono rilevati immediatamente per il trasferimento dei dati, senza limiti di tempo minimi.
  • L'intervallo di tempo minimo tra i trasferimenti di dati ricorrenti è di 15 minuti. L'intervallo predefinito per un trasferimento dati ricorrente è ogni 24 ore.

Autorizzazioni obbligatorie

Quando carichi i dati in BigQuery, hai bisogno di autorizzazioni che ti consentano di caricare i dati in tabelle e partizioni BigQuery nuove o esistenti. Se carichi i dati da Cloud Storage, devi anche avere accesso al bucket che li contiene. Assicurati di disporre delle seguenti autorizzazioni obbligatorie:

  • BigQuery: assicurati che la persona o l'account di servizio che crea il trasferimento di dati disponga delle seguenti autorizzazioni in BigQuery:

    • Autorizzazioni bigquery.transfers.update per creare il trasferimento di dati
    • Entrambe le autorizzazioni bigquery.datasets.get e bigquery.datasets.update sul set di dati di destinazione

    Il ruolo IAM predefinito bigquery.admin include le autorizzazioni bigquery.transfers.update, bigquery.datasets.update e bigquery.datasets.get. Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

  • Cloud Storage: sono richieste autorizzazioni storage.objects.get sul singolo bucket o versioni successive. Se utilizzi un URI jolly, devi disporre anche delle autorizzazioni storage.objects.list. Se vuoi eliminare i file di origine dopo ogni trasferimento riuscito, devi disporre anche delle autorizzazioni storage.objects.delete. Il ruolo IAM predefinito storage.objectAdmin include tutte queste autorizzazioni.

Configurare un trasferimento di Cloud Storage

Per creare un trasferimento di dati di Cloud Storage in BigQuery Data Transfer Service:

Console

  1. Vai alla pagina Trasferimenti dati nella console Google Cloud.

    Vai a Trasferimenti dati

  2. Fai clic su Crea trasferimento.

  3. Nella sezione Tipo di origine, per Origine, scegli Google Cloud Storage.

    Origine trasferimento

  4. Nella sezione Nome configurazione di trasferimento, in Nome visualizzato, inserisci un nome per il trasferimento dei dati, ad esempio My Transfer. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificare il trasferimento se devi modificarlo in un secondo momento.

    Nome trasferimento

  5. Nella sezione Opzioni di programmazione:

    • Seleziona una Frequenza di ripetizione. Se selezioni Ore, Giorni, Settimane o Mesi, devi anche specificare una frequenza. Puoi anche selezionare Personalizzata per specificare una frequenza di ripetizione personalizzata. Se selezioni On demand, questo trasferimento di dati viene eseguito quando attivi manualmente il trasferimento.

    • Se applicabile, seleziona Inizia ora o Inizia all'ora impostata e fornisci una data di inizio e un'ora di esecuzione.

  6. Nella sezione Impostazioni di destinazione, per Set di dati di destinazione, scegli il set di dati che hai creato per archiviare i dati.

    Trasferisci set di dati

  7. Nella sezione Dettagli dell'origine dati:

    1. In Tabella di destinazione, inserisci il nome della tabella di destinazione. La tabella di destinazione deve rispettare le regole di denominazione delle tabelle. I nomi delle tabelle di destinazione supportano anche i parametri.
    2. In URI Cloud Storage, inserisci URI Cloud Storage. I caratteri jolly e i parametri sono supportati.
    3. Per Preferenza di scrittura, scegli:
      • APPEND per accodare in modo incrementale i nuovi dati alla tabella di destinazione esistente. APPEND è il valore predefinito per Preferenza scrittura.
      • MIRROR per sovrascrivere i dati nella tabella di destinazione durante ogni esecuzione del trasferimento dati.

    Per saperne di più su come BigQuery Data Transfer Service importa i dati utilizzando APPEND o MIRROR, consulta Importazione dei dati per i trasferimenti di Cloud Storage. Per ulteriori informazioni sul campo writeDisposition, consulta JobConfigurationLoad.

    1. Per Elimina file di origine dopo il trasferimento, seleziona la casella se vuoi eliminare i file di origine dopo ogni trasferimento di dati riuscito. L'eliminazione dei job avviene secondo il criterio del "best effort". I job di eliminazione non riprovano se il primo tentativo di eliminazione dei file di origine non va a buon fine.
    2. Nella sezione Opzioni di trasferimento:

      1. In Tutti i formati:
        1. In Numero di errori consentiti, inserisci il numero massimo di record non validi che BigQuery può ignorare durante l'esecuzione del job. Se il numero di record non validi supera questo valore, nel risultato del job viene restituito un errore "non valido" e il job non va a buon fine. Il valore predefinito è 0.
        2. (Facoltativo) Per Tipi di destinazione decimali, inserisci un elenco separato da virgole di possibili tipi di dati SQL in cui i valori decimali di origine potrebbero essere convertiti. Il tipo di dato SQL selezionato per la conversione dipende dalle seguenti condizioni:
          • Il tipo di dati selezionato per la conversione sarà il primo tipo di dati nel seguente elenco che supporta la precisione e la scala dei dati di origine, in questo ordine: NUMERIC, BIGNUMERIC e STRING.
          • Se nessuno dei tipi di dati elencati supporta la precisione e la scala, viene selezionato il tipo di dati che supporta l'intervallo più ampio nell'elenco specificato. Se un valore supera l'intervallo supportato durante la lettura dei dati di origine, verrà generato un errore.
          • Il tipo di dati STRING supporta tutti i valori di precisione e scala.
          • Se questo campo viene lasciato vuoto, il tipo di dati sarà "NUMERIC,STRING" per ORC e "NUMERIC" per gli altri formati file.
          • Questo campo non può contenere tipi di dati duplicati.
          • L'ordine dei tipi di dati elencati in questo campo viene ignorato.
      2. In JSON, CSV:
        • Per Ignora valori sconosciuti, seleziona la casella se vuoi che il trasferimento dei dati elimini i dati che non corrispondono allo schema della tabella di destinazione.
      3. In AVRO:
        • Per Utilizza tipi logici Avro, seleziona la casella se vuoi che il trasferimento dei dati converta i tipi logici Avro nei tipi di dati BigQuery corrispondenti. Il comportamento predefinito è ignorare l'attributo logicalType per la maggior parte dei tipi e utilizzare invece il tipo Avro sottostante.
      4. In CSV:

        1. In Delimitatore di campo, inserisci il carattere che separa i campi. Il valore predefinito è una virgola.
        2. In Carattere virgolette, inserisci il carattere utilizzato per citare le sezioni di dati in un file CSV. Il valore predefinito è una quota doppia (").
        3. In Righe di intestazione da saltare, inserisci il numero di righe di intestazione nei file di origine se non vuoi importarle. Il valore predefinito è 0.
        4. Per Consenti caratteri di fine riga con virgolette, seleziona la casella se vuoi consentire i caratteri di fine riga all'interno dei campi tra virgolette.
        5. Per Consenti righe frastagliate, seleziona la casella se vuoi consentire il trasferimento dei dati delle righe con colonne NULLABLE mancanti.
  8. Nel menu Account di servizio, seleziona un account di servizio tra quelli associati al tuo progetto Google Cloud. Puoi associare un account di servizio al trasferimento dei dati anziché utilizzare le credenziali utente. Per ulteriori informazioni sull'utilizzo degli account di servizio con i trasferimenti di dati, consulta Utilizzare gli account di servizio.

    • Se hai eseguito l'accesso con un'identità federata, è necessario un account di servizio per creare un trasferimento di dati. Se hai eseguito l'accesso con un Account Google, un account di servizio per il trasferimento dei dati è facoltativo.
    • L'account di servizio deve disporre delle autorizzazioni richieste sia per BigQuery sia per Cloud Storage.
  9. (Facoltativo) Nella sezione Opzioni di notifica:

    1. Fai clic sul pulsante di attivazione/disattivazione per attivare le notifiche via email. Quando attivi questa opzione, il proprietario della configurazione del trasferimento dati riceve una notifica via email quando un'esecuzione del trasferimento non va a buon fine.
    2. In Seleziona un argomento Pub/Sub, scegli il nome dell'argomento o fai clic su Crea un argomento. Questa opzione configura le notifiche di esecuzione di Pub/Sub per il trasferimento.
  10. (Facoltativo) Nella sezione Opzioni avanzate:

    • Se utilizzi le chiavi CMEK, seleziona Chiave gestita dal cliente. Viene visualizzato un elenco di CMEK disponibili tra cui scegliere.

    Per informazioni sul funzionamento delle CMEK con BigQuery Data Transfer Service, consulta Specificare la chiave di crittografia con i trasferimenti.

  11. Fai clic su Salva.

bq

Inserisci il comando bq mk e fornisci il flag di creazione del trasferimento: --transfer_config. Sono obbligatori anche i seguenti flag:

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

Flag facoltativi:

  • --destination_kms_key: specifica l'ID risorsa chiave per la chiave Cloud KMS se utilizzi una chiave di crittografia gestita dal cliente (CMEK) per questo trasferimento di dati. Per informazioni sul funzionamento delle CMEK con BigQuery Data Transfer Service, consulta Specificare la chiave di crittografia con i trasferimenti.
  • --service_account_name: specifica un account di servizio da utilizzare per l'autenticazione del trasferimento di Cloud Storage anziché il tuo account utente.
bq mk \
--transfer_config \
--project_id=PROJECT_ID \
--data_source=DATA_SOURCE \
--display_name=NAME \
--target_dataset=DATASET \
--destination_kms_key="DESTINATION_KEY" \
--params='PARAMETERS' \
--service_account_name=SERVICE_ACCOUNT_NAME

Dove:

  • PROJECT_ID è l'ID progetto. Se non viene fornito --project_id per specificare un determinato progetto, viene utilizzato il progetto predefinito.
  • DATA_SOURCE è l'origine dati, ad esempio google_cloud_storage.
  • NAME è il nome visualizzato della configurazione di trasferimento dei dati. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificare il trasferimento se devi modificarlo in un secondo momento.
  • DATASET è il set di dati di destinazione per la configurazione del trasferimento.
  • DESTINATION_KEY: l'ID risorsa chiave Cloud KMS, ad esempio projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name.
  • PARAMETERS contiene i parametri per la configurazione del trasferimento creata in formato JSON. Ad esempio: --params='{"param":"param_value"}'.
    • destination_table_name_template: il nome della tabella BigQuery di destinazione.
    • data_path_template: l'URI Cloud Storage contenente i file da trasferire, che può includere un carattere jolly.
    • write_disposition: determina se i file corrispondenti vengono aggiunti alla tabella di destinazione o se ne viene eseguito il mirroring per intero. I valori supportati sono APPEND o MIRROR. Per informazioni su come BigQuery Data Transfer Service aggiunge o esegue il mirroring dei dati nei trasferimenti di Cloud Storage, consulta Importazione dei dati per i trasferimenti di Cloud Storage.
    • file_format: il formato dei file che vuoi trasferire. Il formato può essere CSV, JSON, AVRO, PARQUET o ORC. Il valore predefinito è CSV.
    • max_bad_records: per qualsiasi valore file_format, il numero massimo di record errati che possono essere ignorati. Il valore predefinito è 0.
    • decimal_target_types: per qualsiasi valore file_format, un elenco di tipi di dati SQL possibili separati da virgole in cui è possibile convertire i valori decimali di origine. Se questo campo non viene fornito, il tipo di dati predefinito è "NUMERIC,STRING" per ORC e "NUMERIC" per gli altri formati di file.
    • ignore_unknown_values: per qualsiasi valore file_format, impostato su TRUE per accettare righe contenenti valori che non corrispondono allo schema. Per ulteriori informazioni, consulta i dettagli del campo ignoreUnknownvalues nella tabella di riferimento JobConfigurationLoad.
    • use_avro_logical_types: per i valori AVRO file_format, imposta su TRUE per interpretare i tipi logici nei tipi corrispondenti (per esempio, TIMESTAMP), anziché utilizzare solo i tipi non elaborati (per esempio, INTEGER).
    • parquet_enum_as_string: per i valori PARQUET file_format, imposta su TRUE per dedurre il tipo logico PARQUET ENUM come STRING anziché il valore predefinito BYTES.
    • parquet_enable_list_inference: per i valori PARQUET file_format, imposta su TRUE per utilizzare l'inferenza dello schema specificamente per il tipo logico PARQUET LIST.
    • reference_file_schema_uri: un percorso URI a un file di riferimento con lo schema del lettore.
    • field_delimiter: per i valori CSV file_format, un carattere che separa i campi. Il valore predefinito è una virgola.
    • quote: per i valori CSV file_format, un carattere utilizzato per citare le sezioni di dati in un file CSV. Il valore predefinito è una doppia virgolette (").
    • skip_leading_rows: per i valori CSV file_format, indica il numero di righe di intestazione iniziali che non vuoi importare. Il valore predefinito è 0.
    • allow_quoted_newlines: per i valori CSV file_format, imposta TRUE per consentire i ritorni a capo all'interno dei campi tra virgolette.
    • allow_jagged_rows : per i valori CSV file_format, imposta TRUE per accettare le righe che non hanno le colonne finali facoltative. I valori mancanti vengono compilati con NULL.
    • preserve_ascii_control_characters: per i valori CSV file_format, impostato su TRUE per preservare eventuali caratteri di controllo ASCII incorporati.
    • encoding: specifica il tipo di codifica CSV. I valori supportati sono UTF8, ISO_8859_1, UTF16BE, UTF16LE, UTF32BE e UTF32LE.
    • delete_source_files: impostato su TRUE per eliminare i file di origine dopo ogni trasferimento riuscito. I job di eliminazione non vengono eseguiti di nuovo se il primo tentativo di eliminare il file di origine non va a buon fine. Il valore predefinito è FALSE.
  • SERVICE_ACCOUNT_NAME è il nome dell'account di servizio utilizzato per autenticare il trasferimento. L'account di servizio deve essere di proprietà dello stesso project_id utilizzato per creare il trasferimento e deve disporre di tutte le autorizzazioni richieste.

Ad esempio, il seguente comando crea un trasferimento di dati Cloud Storage denominato My Transfer utilizzando un valore data_path_template di gs://mybucket/myfile/*.csv, il set di dati di destinazione mydataset e file_format CSV. Questo esempio include valori non predefiniti per i parametri facoltativi associati al file_format CSV.

Il trasferimento dei dati viene creato nel progetto predefinito:

bq mk --transfer_config \
--target_dataset=mydataset \
--project_id=myProject \
--display_name='My Transfer' \
--destination_kms_key=projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey \
--params='{"data_path_template":"gs://mybucket/myfile/*.csv",
"destination_table_name_template":"MyTable",
"file_format":"CSV",
"max_bad_records":"1",
"ignore_unknown_values":"true",
"field_delimiter":"|",
"quote":";",
"skip_leading_rows":"1",
"allow_quoted_newlines":"true",
"allow_jagged_rows":"false",
"delete_source_files":"true"}' \
--data_source=google_cloud_storage \
--service_account_name=abcdef-test-sa@abcdef-test.iam.gserviceaccount.com projects/862514376110/locations/us/transferConfigs/ 5dd12f26-0000-262f-bc38-089e0820fe38

Dopo aver eseguito il comando, viene visualizzato un messaggio simile al seguente:

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

Segui le istruzioni e incolla il codice di autenticazione sulla riga di comando.

API

Utilizza il metodo projects.locations.transferConfigs.create e fornisci un'istanza della risorsa TransferConfig.

Java

Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.

Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

// Sample to create google cloud storage transfer config
public class CreateCloudStorageTransfer {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    String datasetId = "MY_DATASET_ID";
    String tableId = "MY_TABLE_ID";
    // GCS Uri
    String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv";
    String fileFormat = "CSV";
    String fieldDelimiter = ",";
    String skipLeadingRows = "1";
    Map<String, Value> params = new HashMap<>();
    params.put(
        "destination_table_name_template", Value.newBuilder().setStringValue(tableId).build());
    params.put("data_path_template", Value.newBuilder().setStringValue(sourceUri).build());
    params.put("write_disposition", Value.newBuilder().setStringValue("APPEND").build());
    params.put("file_format", Value.newBuilder().setStringValue(fileFormat).build());
    params.put("field_delimiter", Value.newBuilder().setStringValue(fieldDelimiter).build());
    params.put("skip_leading_rows", Value.newBuilder().setStringValue(skipLeadingRows).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Google Cloud Storage Config Name")
            .setDataSourceId("google_cloud_storage")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .setSchedule("every 24 hours")
            .build();
    createCloudStorageTransfer(projectId, transferConfig);
  }

  public static void createCloudStorageTransfer(String projectId, TransferConfig transferConfig)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      CreateTransferConfigRequest request =
          CreateTransferConfigRequest.newBuilder()
              .setParent(parent.toString())
              .setTransferConfig(transferConfig)
              .build();
      TransferConfig config = client.createTransferConfig(request);
      System.out.println("Cloud storage transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("Cloud storage transfer was not created." + ex.toString());
    }
  }
}

Specificare la chiave di crittografia con i trasferimenti

Puoi specificare le chiavi di crittografia gestite dal cliente (CMEK) per criptare i dati per un'esecuzione del trasferimento. Puoi utilizzare un CMEK per supportare i trasferimenti da Cloud Storage.

Quando specifichi una CMEK con un trasferimento, BigQuery Data Transfer Service applica la CMEK a qualsiasi cache intermedia su disco dei dati importati in modo che l'intero flusso di lavoro di trasferimento dei dati sia conforme alla CMEK.

Non puoi aggiornare un trasferimento esistente per aggiungere un CMEK se il trasferimento non è stato creato inizialmente con un CMEK. Ad esempio, non puoi modificare una tabella di destinazione inizialmente criptata per impostazione predefinita in modo che venga criptata con CMEK. Al contrario, non puoi nemmeno modificare una tabella di destinazione con crittografia CMEK per avere un tipo di crittografia diverso.

Puoi aggiornare un CMEK per un trasferimento se la configurazione del trasferimento è stata creata inizialmente con una crittografia CMEK. Quando aggiorni un CMEK per una configurazione di trasferimento, BigQuery Data Transfer Service lo propaga alle tabelle di destinazione alla successiva esecuzione del trasferimento, dove sostituisce eventuali CMEK obsoleti con il nuovo CMEK durante l'esecuzione del trasferimento. Per ulteriori informazioni, consulta Aggiornare un trasferimento.

Puoi anche utilizzare le chiavi predefinite del progetto. Quando specifichi una chiave predefinita del progetto con un trasferimento, BigQuery Data Transfer Service la utilizza come chiave predefinita per tutte le nuove configurazioni di trasferimento.

Attivare manualmente un trasferimento

Oltre ai trasferimenti di dati pianificati automaticamente da Cloud Storage, puoi attivare manualmente un trasferimento per caricare file di dati aggiuntivi.

Se la configurazione del trasferimento è parametrizzata in fase di esecuzione, dovrai specificare un intervallo di date per le quali verranno avviati trasferimenti aggiuntivi.

Per attivare un trasferimento di dati:

Console

  1. Vai alla pagina BigQuery nella console Google Cloud.

    Vai alla pagina BigQuery

  2. Fai clic su Trasferimenti dati.

  3. Seleziona il trasferimento dati dall'elenco.

  4. Fai clic su Esegui trasferimento ora o Pianifica il backfill (per le configurazioni di trasferimento parametroizzate in fase di esecuzione).

    • Se hai fatto clic su Esegui trasferimento ora, seleziona Esegui trasferimento una tantum o Esegui per 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

  5. Fai clic su Ok.

bq

Inserisci il comando bq mk e specifica il flag --transfer_run. Puoi utilizzare il flag --run_time o i flag --start_time e --end_time.

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

Dove:

  • START_TIME e END_TIME sono timestamp che terminano con Z o contengono un offset del fuso orario valido. Ad esempio:

    • 2017-08-19T12:11:35.00Z
    • 2017-05-25T00:00:00+00:00
  • RUN_TIME è un timestamp che specifica l'ora per pianificare l'esecuzione del trasferimento dei dati. Se vuoi eseguire un trasferimento una tantum per il momento corrente, puoi utilizzare il flag --run_time.

  • RESOURCE_NAME è il nome della risorsa del trasferimento (chiamato anche configurazione di trasferimento), ad esempio projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. Se non conosci il nome della risorsa del trasferimento, esegui il comando bq ls --transfer_config --transfer_location=LOCATION per trovarlo.

API

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

Passaggi successivi