Esegui la migrazione di schema e dati da Teradata

La combinazione di BigQuery Data Transfer Service e di un agente speciale di migrazione consente di copiare i dati da un'istanza di data warehouse on-premise di Teradata in BigQuery. In questo documento viene descritta la procedura dettagliata migrazione dei dati da Teradata utilizzando BigQuery Data Transfer Service.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Abilita le API BigQuery, BigQuery Data Transfer Service, Cloud Storage, and Pub/Sub.

    Abilita le API

  5. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the following roles to the service account: roles/bigquery.user, roles/storage.objectAdmin, roles/iam.serviceAccountTokenCreator.

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    6. Click Continue.
    7. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  6. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  9. Abilita le API BigQuery, BigQuery Data Transfer Service, Cloud Storage, and Pub/Sub.

    Abilita le API

  10. Create a service account:

    1. In the Google Cloud console, go to the Create service account page.

      Go to Create service account
    2. Select your project.
    3. In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.

      In the Service account description field, enter a description. For example, Service account for quickstart.

    4. Click Create and continue.
    5. Grant the following roles to the service account: roles/bigquery.user, roles/storage.objectAdmin, roles/iam.serviceAccountTokenCreator.

      To grant a role, find the Select a role list, then select the role.

      To grant additional roles, click Add another role and add each additional role.

    6. Click Continue.
    7. Click Done to finish creating the service account.

      Do not close your browser window. You will use it in the next step.

  11. Create a service account key:

    1. In the Google Cloud console, click the email address for the service account that you created.
    2. Click Keys.
    3. Click Add key, and then click Create new key.
    4. Click Create. A JSON key file is downloaded to your computer.
    5. Click Close.

Imposta le autorizzazioni richieste

Assicurati che l'entità che crea il trasferimento abbia quanto segue ruoli nel progetto contenente il job di trasferimento:

  • Visualizzatore log (roles/logging.viewer)
  • Amministratore Storage (roles/storage.admin) o un ruolo personalizzato che concede i le seguenti autorizzazioni:
    • storage.objects.create
    • storage.objects.get
    • storage.objects.list
  • Amministratore BigQuery (roles/bigquery.admin) o un ruolo personalizzato che concede le seguenti autorizzazioni:
    • bigquery.datasets.create
    • bigquery.jobs.create
    • bigquery.jobs.get
    • bigquery.jobs.listAll
    • bigquery.transfers.get
    • bigquery.transfers.update

Crea un set di dati

Crea un set di dati BigQuery per archiviare i dati. Non è necessario creare tabelle.

Crea un bucket Cloud Storage

Crea un bucket Cloud Storage per la gestione temporanea dei dati durante il job di trasferimento.

prepara l'ambiente locale

Completa le attività di questa sezione per preparare il tuo ambiente locale per di un job di trasferimento.

Requisiti locali delle macchine

  • L'agente di migrazione utilizza una connessione JDBC con l'istanza Teradata e le API Google Cloud. Assicurati che l'accesso alla rete non sia bloccato da un firewall.
  • Assicurati che sia installato Java Runtime Environment 8 o versione successiva.
  • Assicurati di avere spazio di archiviazione sufficiente per il metodo di estrazione scelto, come descritto in Metodo di estrazione.
  • Se hai deciso di utilizzare l'estrazione di Teradata Parallel Transporter (TPT), devi assicurarti che tbuild l'utilità è installata. Per ulteriori informazioni sulla scelta di un'estrazione , consulta Metodo di estrazione.

Dettagli connessione Teradata

  • Assicurati di avere il nome utente e la password di un utente Teradata con accesso alle tabelle di sistema e alle tabelle di cui viene eseguita la migrazione.

  • Assicurati di conoscere il nome host e il numero di porta da collegare al Istanza Teradata.

Scarica il driver JDBC

Scarica il file del driver JDBC di terajdbc4.jar da Teradata a una macchina in grado di connettersi al data warehouse.

Imposta la variabile GOOGLE_APPLICATION_CREDENTIALS

Imposta la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS alla chiave dell'account di servizio scaricata Sezione Prima di iniziare.

Aggiorna la regola in uscita dei Controlli di servizio VPC

Aggiungi un progetto Google Cloud gestito da BigQuery Data Transfer Service (numero progetto: 990232121269) alla regola di traffico in uscita nel perimetro Controlli di servizio VPC.

Il canale di comunicazione tra l'agente in esecuzione on-premise e BigQuery Data Transfer Service consiste nel pubblicare messaggi Pub/Sub in un argomento di trasferimento. BigQuery Data Transfer Service deve inviare comandi all'agente per estrarre i dati e l'agente deve pubblica i messaggi in BigQuery Data Transfer Service per aggiornare lo stato e restituire i dati di estrazione di emergenza.

Crea un file di schema personalizzato

Per utilizzare un file di schema personalizzato anziché il rilevamento automatico dello schema, creane uno manualmente o puoi chiedere all'agente di migrazione di crearne uno per te inizializzare l'agente.

Se crei un file di schema manualmente e intendi utilizzare la console Google Cloud per creare un trasferimento, carica il file di schema in un bucket Cloud Storage nello stesso progetto che intendi utilizzare per il trasferimento.

Scarica l'agente di migrazione

Scarica l'agente di migrazione a una macchina in grado di connettersi al data warehouse. Sposta l'agente di migrazione JAR nella stessa directory del file JAR del driver JDBC di Teradata.

Configurare un trasferimento

Creare un trasferimento con BigQuery Data Transfer Service.

Se vuoi che un file di schema personalizzato venga creato automaticamente, utilizza la migrazione per configurare il trasferimento.

Non puoi creare un trasferimento on demand utilizzando lo strumento a riga di comando bq. devi utilizzare la console Google Cloud o l'API BigQuery Data Transfer Service.

Se crei un trasferimento ricorrente, ti consigliamo vivamente di specificare un file di schema in modo che i dati dei trasferimenti successivi possano essere corretti partizionate quando vengono caricate in BigQuery. Senza uno schema BigQuery Data Transfer Service deduce lo schema della tabella dai dati di origine trasferire e tutte le informazioni su partizionamento, clustering le chiavi primarie e il monitoraggio delle modifiche andrà perso. Inoltre, i trasferimenti successivi Salta le tabelle di cui è stata eseguita la migrazione in precedenza dopo il trasferimento iniziale. Per ulteriori informazioni per informazioni su come creare un file di schema, consulta File di schema personalizzato.

Console

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

    Vai alla pagina di BigQuery

  2. Fai clic su Trasferimenti di dati.

  3. Fai clic su Crea trasferimento.

  4. Nella sezione Tipo di origine, segui questi passaggi:

    • Scegli Migrazione: Teradata.
    • In Nome configurazione di trasferimento, inserisci un nome visualizzato per il trasferimento, ad esempio come My Migration. Il nome visualizzato può essere qualsiasi valore che ti consente a identificare facilmente il trasferimento, qualora dovessi modificarlo in un secondo momento.
    • (Facoltativo) Per Opzioni di pianificazione, puoi lasciare il valore predefinito Ogni giorno (in base all'ora di creazione) oppure scegli un altro orario, se vuoi un trasferimento ricorrente e incrementale. Altrimenti, scegli On demand per un trasferimento una tantum.
    • Per Impostazioni destinazione, scegli il set di dati appropriato.

      Nuova migrazione di Teradata generale.

  5. Nella sezione Dettagli origine dati, continua con i dettagli specifici dei tuoi Trasferimento di Teradata.

    • In Tipo di database, scegli Teradata.
    • In Bucket Cloud Storage, cerca il nome del bucket Cloud Storage. per la gestione temporanea dei dati della migrazione. Non digitare il prefisso gs://: inserisci solo il nome del bucket.
    • In Nome database, inserisci il nome del database di origine in Teradata.
    • Per Pattern nomi tabella, inserisci un pattern per la corrispondenza della tabella nel database di origine. Puoi utilizzare le espressioni regolari per specifica il pattern. Ad esempio:

      • sales|expenses corrisponde alle tabelle denominate sales e expenses.
      • .* corrisponde a tutte le tabelle.
    • In Email account di servizio, inserisci l'indirizzo email associato a le credenziali dell'account di servizio utilizzate da un agente di migrazione.

    • (Facoltativo) Se utilizzi un file di schema personalizzato, inserisci Il percorso e il nome file del file nel campo Schema file path. Se non fornisci un file di schema personalizzato, BigQuery rileva automaticamente lo schema della tabella utilizzando i dati di origine trasferito. Puoi creare un tuo file di schema, come mostrato nell' nell'immagine seguente oppure puoi usare l'agente di migrazione per crei un file di schema. Per informazioni sulla creazione di un file di schema, vedi inizializzazione dell'agente di migrazione.

  6. Nel menu Account di servizio, seleziona un account di servizio dagli account di servizio associati progetto Google Cloud. Puoi associare un account di servizio a il trasferimento anziché utilizzare le tue credenziali utente. Per ulteriori informazioni informazioni sull'uso di account di servizio con i trasferimenti di dati, vedi Utilizzare gli account di servizio.

    • Se hai eseguito l'accesso con un'identità federata: per creare un trasferimento è necessario un account di servizio. Se hai firmato con un Account Google, poi l'account di servizio per il trasferimento è facoltativo.
    • L'account di servizio deve disporre delle autorizzazioni richieste.
  7. (Facoltativo) Nella sezione Opzioni di notifica, procedi nel seguente modo:

    • Fai clic sul pulsante di attivazione/disattivazione Notifiche email se vuoi eseguire il trasferimento amministratore di ricevere una notifica via email quando un trasferimento non va a buon fine.
    • Fai clic sul pulsante di attivazione/disattivazione delle notifiche Pub/Sub per configurare Esecuzione Pub/Sub notifiche per il trasferimento. Per Seleziona un argomento Pub/Sub, scegli il tuo argomento o fai clic su Crea un argomento.
  8. Fai clic su Salva.

  9. Nella pagina Dettagli trasferimento, fai clic sulla scheda Configurazione.

  10. Prendi nota del nome della risorsa per questo trasferimento perché ne hai bisogno per l'esecuzione l'agente di migrazione.

bq

Quando crei un trasferimento in Cloud Storage usando lo strumento bq, la configurazione del trasferimento si ripeta ogni 24 ore. Per on demand utilizzare la console Google Cloud o l'API BigQuery Data Transfer Service.

Non puoi configurare le notifiche utilizzando lo strumento bq.

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

  • --data_source
  • --display_name
  • --target_dataset
  • --params
bq mk \
--transfer_config \
--project_id=project ID \
--target_dataset=dataset \
--display_name=name \
--service_account_name=service_account \
--params='parameters' \
--data_source=data source

Dove:

  • project ID è l'ID progetto. Se --project_id non è fornito per specificare un particolare progetto, viene usato il progetto predefinito.
  • dataset è il set di dati che vuoi scegliere come target (--target_dataset) per la configurazione del trasferimento.
  • name è il nome visualizzato (--display_name) per il trasferimento configurazione. Il nome visualizzato del trasferimento può essere qualsiasi valore che ti consente identificare il trasferimento se devi modificarlo in un secondo momento.
  • service_account è il nome dell'account di servizio utilizzato di autenticare il trasferimento. L'account di servizio deve essere di proprietà dello stesso project_id usato per creare il trasferimento; devono disporre di tutte le autorizzazioni richieste elencate.
  • parameters contiene i parametri (--params) per il tipo di oggetto di trasferimento in formato JSON. Ad esempio: --params='{"param":"param_value"}'.
    • Per le migrazioni di Teradata, utilizza i seguenti parametri:
      • bucket è il bucket Cloud Storage che fungerà da area temporanea durante la migrazione.
      • database_type è Teradata.
      • agent_service_account è l'indirizzo email associato al che hai creato.
      • database_name è il nome del database di origine in Teradata.
      • table_name_patterns è uno o più pattern per la corrispondenza dei nomi delle tabelle in il database di origine. Puoi utilizzare le espressioni regolari per specificare lo schema. Il pattern deve seguire l'espressione regolare Java a riga di comando. Ad esempio:
        • sales|expenses corrisponde alle tabelle denominate sales e expenses.
        • .* corrisponde a tutte le tabelle.
  • data_source è l'origine dati (--data_source): on_premises.

Ad esempio, il comando seguente crea un trasferimento Teradata denominato My Transfer utilizzando il bucket Cloud Storage mybucket e il set di dati di destinazione mydataset. Durante il trasferimento verrà eseguita la migrazione di tutte le tabelle dai dati Teradata warehouse mydatabase e il file di schema facoltativo è myschemafile.json.

bq mk \
--transfer_config \
--project_id=123456789876 \
--target_dataset=MyDataset \
--display_name='My Migration' \
--params='{"bucket": "mybucket", "database_type": "Teradata",
"database_name":"mydatabase", "table_name_patterns": ".*",
"agent_service_account":"myemail@mydomain.com", "schema_file_path":
"gs://mybucket/myschemafile.json"}' \
--data_source=on_premises

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 nel comando dalla riga di comando.

API

Utilizza la projects.locations.transferConfigs.create e fornisce un'istanza del metodo TransferConfig risorsa.

Java

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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 a teradata transfer config.
public class CreateTeradataTransfer {

  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 databaseType = "Teradata";
    String bucket = "cloud-sample-data";
    String databaseName = "MY_DATABASE_NAME";
    String tableNamePatterns = "*";
    String serviceAccount = "MY_SERVICE_ACCOUNT";
    String schemaFilePath = "/your-schema-path";
    Map<String, Value> params = new HashMap<>();
    params.put("database_type", Value.newBuilder().setStringValue(databaseType).build());
    params.put("bucket", Value.newBuilder().setStringValue(bucket).build());
    params.put("database_name", Value.newBuilder().setStringValue(databaseName).build());
    params.put("table_name_patterns", Value.newBuilder().setStringValue(tableNamePatterns).build());
    params.put("agent_service_account", Value.newBuilder().setStringValue(serviceAccount).build());
    params.put("schema_file_path", Value.newBuilder().setStringValue(schemaFilePath).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Teradata Config Name")
            .setDataSourceId("on_premises")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .setSchedule("every 24 hours")
            .build();
    createTeradataTransfer(projectId, transferConfig);
  }

  public static void createTeradataTransfer(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 teradata transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("Cloud teradata transfer was not created." + ex.toString());
    }
  }
}

Agente migrazione

Facoltativamente, puoi configurare il trasferimento direttamente dall'agente di migrazione. Per ulteriori informazioni, vedi Inizializza l'agente di migrazione.

Inizializzare l'agente di migrazione

Devi inizializzare l'agente di migrazione per un nuovo trasferimento. L'inizializzazione è richiesta una sola volta per un trasferimento, indipendentemente dal fatto che sia ricorrente o meno. L'inizializzazione configura solo l'agente di migrazione e non si avvia il trasferimento.

Se utilizzerai l'agente di migrazione per creare un file di schema personalizzato, assicurati di avere una directory scrivibile nel tuo di lavoro con lo stesso nome del progetto che vuoi utilizzare per trasferimento. È qui che l'agente di migrazione crea il file di schema. Ad esempio, se lavori in /home e stai configurando il trasferimento nel progetto myProject, crea la directory /home/myProject e assicurati che sia scrivibile dagli utenti.

  1. Apri una nuova sessione. Nella riga di comando, esegui il comando di inizializzazione che segue questo modulo:

    java -cp \
    OS-specific-separated-paths-to-jars (JDBC and agent) \
    com.google.cloud.bigquery.dms.Agent \
    --initialize
    

    L'esempio seguente mostra il comando di inizializzazione quando il driver JDBC e i file JAR dell'agente di migrazione si trovano in una directory migration locale:

    Unix, Linux, Mac OS

    java -cp \
    /usr/local/migration/terajdbc4.jar:/usr/local/migration/mirroring-agent.jar \
    com.google.cloud.bigquery.dms.Agent \
    --initialize
    

    Windows

    Copia tutti i file nella cartella C:\migration (o modifica i percorsi in il comando), quindi esegui:

    java -cp C:\migration\terajdbc4.jar;C:\migration\mirroring-agent.jar com.google.cloud.bigquery.dms.Agent --initialize
    
  2. Quando richiesto, configura le seguenti opzioni:

    1. Scegli se salvare o meno Teradata Parallel Transporter (TPT) dal modello su disco. Se prevedi di utilizzare il metodo di estrazione TPT, puoi modificare il modello salvato con i parametri adatti Istanza Teradata.
    2. Digita il percorso di una directory locale che il job di trasferimento può utilizzare per il file l'estrazione dei contenuti. Assicurati di avere lo spazio di archiviazione minimo consigliato, descritti in Metodo di estrazione.
    3. Digita il nome host del database.
    4. Digita la porta del database.
    5. Scegli se utilizzare Teradata Parallel Transporter (TPT) come di grandi dimensioni.
    6. (Facoltativo) Digita il percorso di un file delle credenziali del database.
    7. Scegli se specificare un nome per la configurazione di BigQuery Data Transfer Service.

      Se stai inizializzando l'agente di migrazione per un trasferimento, hai già configurato, quindi:

      1. Digita il Nome risorsa del trasferimento. Puoi trovarlo nel Scheda Configurazione della pagina Dettagli trasferimento per trasferimento.
      2. Quando richiesto, digita un percorso e un nome file per la migrazione di configurazione dell'agente che verrà creato. Ci riferisci a questo quando esegui l'agente di migrazione per avviare il trasferimento.
      3. Ignora i passaggi rimanenti.

      Se utilizzi l'agente di migrazione per configurare un trasferimento, premi Invio per passare alla richiesta successiva.

    8. Digita l'ID progetto Google Cloud.

    9. Digita il nome del database di origine in Teradata.

    10. Digita un pattern per la corrispondenza dei nomi delle tabelle nel database di origine. Puoi utilizzare espressioni regolari per specificare il pattern. Ad esempio:

      • sales|expenses corrisponde alle tabelle denominate sales e expenses.
      • .* corrisponde a tutte le tabelle.
    11. (Facoltativo) Digita il percorso di un file di schema JSON locale. Questo è fortemente consigliata per i bonifici ricorrenti.

      Se non utilizzi un file di schema o se vuoi che l'agente di migrazione per crearne uno per te, premi Invio per passare al prompt successivo.

    12. Scegli se creare un nuovo file di schema.

      Se vuoi creare un file di schema:

      1. Digita yes.
      2. Digita il nome utente di un utente teradata con accesso in lettura a le tabelle di sistema e le tabelle di cui vuoi eseguire la migrazione.
      3. Digita la password dell'utente.

        L'agente di migrazione crea il file di schema ne restituisce la posizione.

      4. Modifica il file di schema per contrassegnare il partizionamento, il clustering e il chiave e modifiche alle colonne di monitoraggio e verificare che si per usare questo schema per la configurazione del trasferimento. Consulta File di schema personalizzato per ricevere suggerimenti.

      5. Premi Enter per passare al prompt successivo.

      Se non vuoi creare un file di schema, digita no.

    13. Digita il nome del bucket Cloud Storage di destinazione per la migrazione temporanea dei dati prima di caricarli in BigQuery. Se avessi il dell'agente di migrazione crea un file di schema personalizzato, questo viene caricato questo bucket.

    14. Digita il nome del set di dati di destinazione in BigQuery.

    15. Digita un nome visualizzato per la configurazione del trasferimento.

    16. Digita un percorso e un nome file per la migrazione di configurazione dell'agente che verrà creato.

  3. Dopo aver inserito tutti i parametri richiesti, l'agente di migrazione crea una di configurazione del deployment e lo invia al percorso locale che hai specificato. Consulta nella sezione successiva, per esaminare più da vicino il file di configurazione.

File di configurazione per l'agente di migrazione

Il file di configurazione creato nel passaggio di inizializzazione è simile a questo: esempio:


{
  "agent-id": "81f452cd-c931-426c-a0de-c62f726f6a6f",
  "transfer-configuration": {
    "project-id": "123456789876",
    "location": "us",
    "id": "61d7ab69-0000-2f6c-9b6c-14c14ef21038"
  },
  "source-type": "teradata",
  "console-log": false,
  "silent": false,
  "teradata-config": {
    "connection": {
      "host": "localhost"
    },
    "local-processing-space": "extracted",
    "database-credentials-file-path": "",
    "max-local-storage": "50GB",
    "gcs-upload-chunk-size": "32MB",
    "use-tpt": true,
    "transfer-views": false,
    "max-sessions": 0,
    "spool-mode": "NoSpool",
    "max-parallel-upload": 4,
    "max-parallel-extract-threads": 1,
    "session-charset": "UTF8",
    "max-unload-file-size": "2GB"
  }
}
   

Opzioni del job di trasferimento nel file di configurazione dell'agente di migrazione

  • transfer-configuration: informazioni su questa configurazione di trasferimento in BigQuery.
  • teradata-config: informazioni specifiche per questa estrazione di Teradata:

    • connection: informazioni sul nome host e sulla porta
    • local-processing-space: la cartella di estrazione in cui l'agente estrarrà della tabella prima di caricarli in Cloud Storage.
    • database-credentials-file-path: (facoltativo) il percorso di un file che contiene le credenziali per la connessione automatica al database Teradata. Il file deve contenere due righe per le credenziali. Puoi usare un nome utente e una password, come mostrato nell'esempio seguente:
      username=abc
      password=123
      
      In alternativa, puoi anche utilizzare un secret di SecretManager:
      username=abc
      secret_resource_id=projects/my-project/secrets/my-secret-name/versions/1
      
      Quando utilizzi un file di credenziali, assicurati di controllare l'accesso alla cartella nel file system locale, perché non saranno criptato. Se non viene fornito alcun percorso, ti verrà richiesto un nome utente e quando avvii un agente.
    • max-local-storage: la quantità massima di spazio di archiviazione locale da utilizzare per l'estrazione nella directory di gestione temporanea specificata. Il valore predefinito è 50GB. Il formato supportato è: numberKB|MB|GB|TB.

      In tutte le modalità di estrazione, i file vengono eliminati dalla gestione temporanea locale dopo che sono state caricate in Cloud Storage.

    • use-tpt: indirizza l'agente di migrazione a utilizzare Teradata Parallel Transporter (TPT) come metodo di estrazione.

      Per ogni tabella, l'agente di migrazione genera uno script TPT, avvia un tbuild processo e attende il completamento. Dopo aver completato il processo tbuild l'agente elenca e carica i file estratti Cloud Storage, quindi elimina lo script TPT. Per ulteriori informazioni, vedi Metodo di estrazione.

    • transfer-views: indica all'agente di migrazione di trasferire anche i dati dalle viste. Utilizza questa opzione solo quando hai bisogno di personalizzare i dati durante la migrazione. In altri casi, esegui la migrazione delle viste alle viste BigQuery. Questa opzione ha i seguenti prerequisiti:

      • Puoi utilizzare questa opzione solo con Teradata 16.10 e versioni successive.
      • Una vista deve avere una "partizione" di colonna intera definita, che punta a un ID di partizione per la riga specificata nella tabella sottostante.
    • max-sessions: specifica il numero massimo di sessioni utilizzate dall'esportazione (FastExport o TPT). Se impostato su 0, il database Teradata determinerà il numero massimo di sessioni per ogni job di esportazione.

    • gcs-upload-chunk-size: un file di grandi dimensioni viene caricato in Cloud Storage in blocchi. Questo parametro, insieme a max-parallel-upload, viene utilizzato per controllare in che modo vengono caricati contemporaneamente su Cloud Storage. Ad esempio, se gcs-upload-chunk-size è di 64 MB e max-parallel-upload è di 10 MB, poi in teoria un agente di migrazione può caricare 640 MB (64 MB * 10) di dati contemporaneamente. Se il caricamento del blocco non riesce, l'intero blocco deve da riprovare. La dimensione del blocco deve essere piccola.

    • max-parallel-upload: questo valore determina il numero massimo di thread utilizzate dall'agente di migrazione per caricare file in Cloud Storage. In caso contrario specificato, il valore predefinito è il numero di processori disponibili per la Java virtuale in una macchina virtuale. La regola generale è scegliere il valore in base al numero di core nella macchina che esegue l'agente. Se hai n core, il numero ottimale di thread dovrebbe essere n. Se i core sono caratterizzati da un hyperthreading, il numero ottimale dovrebbe essere (2 * n). Esistono anche altri metodi come la larghezza di banda di rete, che devi prendere in considerazione durante la regolazione max-parallel-upload. La modifica di questo parametro può migliorare delle prestazioni del caricamento su Cloud Storage.

    • spool-mode : nella maggior parte dei casi, la modalità NoSpool è l'opzione migliore. NoSpool è il valore predefinito nella configurazione dell'agente. Puoi modificare se c'è uno degli svantaggi di NoSpool si applicano al tuo caso.

    • max-unload-file-size: determina la dimensione massima del file estratto. Questo non viene applicato in modo forzato per le estrazioni TPT.

    • max-parallel-extract-threads: questa configurazione viene utilizzata solo in in modalità FastExport. Determina il numero di thread paralleli utilizzati per l'estrazione dei dati da Teradata. La modifica di questo parametro potrebbe migliorare le prestazioni dell'estrazione.

    • tpt-template-path: utilizza questa configurazione per fornire un TPT personalizzato di estrazione come input. Puoi utilizzare questo parametro per applicare trasformazioni ai dati di migrazione.

    • schema-mapping-rule-path: (facoltativo) il percorso di una configurazione contenente una mappatura schema per eseguire l'override delle regole di mappatura predefinite. Alcuni tipi di mappatura funzionano solo con la modalità Teradata Parallel Transporter (TPT).

      Esempio: mappatura dal tipo Teradata TIMESTAMP a BigQuery tipo DATETIME:

      {
      "rules": [
        {
          "database": {
              "name": "database.*",
              "tables": [
                 {
                   "name": "table.*"
                 }
              ]
          },
          "match": {
            "type": "COLUMN_TYPE",
            "value": "TIMESTAMP"
          },
          "action": {
            "type": "MAPPING",
            "value": "DATETIME"
          }
        }
      ]
      }
      

      Attributi:

      • database: (facoltativo) name è un'espressione regolare per i database da includere. Tutti i database sono inclusi per impostazione predefinita.
      • tables: (facoltativo) contiene un array di tabelle. name è un un'espressione regolare per le tabelle da includere. Tutte le tabelle sono incluse per impostazione predefinita.
      • match: (obbligatorio)
        • type valori supportati: COLUMN_TYPE.
        • value valori supportati: TIMESTAMP, DATETIME.
      • action: (obbligatorio)
        • type valori supportati: MAPPING.
        • value valori supportati: TIMESTAMP, DATETIME.
    • compress-output: (facoltativo) indica se i dati devono essere compressi prima dell'archiviazione su Cloud Storage. Viene applicato solo in tpt-mode. Per impostazione predefinita, questo valore è false.

Esegui l'agente di migrazione

Dopo aver inizializzato l'agente di migrazione e creato il file di configurazione, utilizza segui questi passaggi per eseguire l'agente e avviare la migrazione:

  1. Esegui l'agente specificando i percorsi del driver JDBC, agente e il file di configurazione creato nell'agente passaggio di inizializzazione.

    java -cp \
    OS-specific-separated-paths-to-jars (JDBC and agent) \
    com.google.cloud.bigquery.dms.Agent \
    --configuration-file=path to configuration file
    

    Unix, Linux, Mac OS

    java -cp \
    /usr/local/migration/Teradata/JDBC/terajdbc4.jar:mirroring-agent.jar \
    com.google.cloud.bigquery.dms.Agent \
    --configuration-file=config.json
    

    Windows

    Copia tutti i file nella cartella C:\migration (o modifica i percorsi in il comando), quindi esegui:

    java -cp C:\migration\terajdbc4.jar;C:\migration\mirroring-agent.jar com.google.cloud.bigquery.dms.Agent --configuration-file=config.json
    

    Se vuoi procedere con la migrazione, premi Enter e l'agente verrà eseguita se la classe specificata durante l'inizializzazione è valida.

  2. Quando richiesto, digita il nome utente e la password per la connessione al database. Se nome utente e password sono validi, viene avviata la migrazione dei dati.

    Facoltativo Nel comando per avviare la migrazione puoi anche utilizzare un flag che passa un file di credenziali all'agente, invece di inserire il nome utente e password ogni volta. Vedi il parametro facoltativo database-credentials-file-path nel file di configurazione dell'agente. Se utilizzi un il file delle credenziali, adotta le misure appropriate per controllare l'accesso alla cartella nel file system locale, perché non sarà criptato.

  3. Lascia aperta questa sessione fino al completamento della migrazione. Se hai creato un trasferimento della migrazione ricorrente, mantieni questa sessione aperta a tempo indeterminato. Se questo la sessione è stata interrotta, le esecuzioni dei trasferimenti attuali e future non vanno a buon fine.

  4. Monitora periodicamente se l'agente è in esecuzione. Se un'esecuzione di trasferimento è in corso avanzamento e nessun agente risponde entro 24 ore, l'esecuzione del trasferimento non va a buon fine.

  5. Se l'agente di migrazione smette di funzionare mentre è in corso il trasferimento oppure è pianificato, la console Google Cloud mostra lo stato di errore e ti chiede per riavviare l'agente. Per avviare nuovamente l'agente di migrazione, riprendi dalla all'inizio di questa sezione, l'esecuzione dell'agente di migrazione, con il comando l'esecuzione dell'agente di migrazione. Non è necessario ripetere il comando di inizializzazione. Il trasferimento riprende dal momento in cui le tabelle non sono state completate.

Monitorare l'avanzamento della migrazione

Puoi visualizzare lo stato della migrazione nella console Google Cloud. Tu puoi anche configurare Pub/Sub o notifiche email. Consulta Notifiche di BigQuery Data Transfer Service.

BigQuery Data Transfer Service pianifica e avvia un'esecuzione di trasferimento in base a una pianificazione specificato al momento della creazione della configurazione di trasferimento. È importante che l'agente di migrazione è in esecuzione quando è attiva un'esecuzione di trasferimento. Se non sono presenti aggiornamenti dal lato agente entro 24 ore, l'esecuzione del trasferimento non va a buon fine.

Esempio dello stato della migrazione nella console Google Cloud:

Stato migrazione

Esegui l'upgrade dell'agente di migrazione

Se è disponibile una nuova versione dell'agente di migrazione, devi aggiornare manualmente l'agente di migrazione. Per ricevere notifiche su BigQuery Data Transfer Service, sottoscriviti note di rilascio.

Passaggi successivi