Eseguire la migrazione dello schema e dati da Amazon Redshift

Questo documento descrive il processo di migrazione dei dati da Amazon Redshift a BigQuery utilizzando indirizzi IP pubblici.

Puoi utilizzare BigQuery Data Transfer Service per copiare i dati da un data warehouse di Amazon Redshift in BigQuery. Il servizio impiega agenti di migrazione in GKE e attiva un'operazione di unload da Amazon Redshift verso un'area temporanea in un bucket Amazon S3. Successivamente, BigQuery Data Transfer Service trasferisce i tuoi dati dal bucket Amazon S3 a BigQuery.

Questo diagramma mostra il flusso di dati complessivo tra un data warehouse di Amazon Redshift e BigQuery durante una migrazione.

Flusso di lavoro della migrazione da Amazon Redshift a BigQuery.

Se vuoi trasferire dati dalla tua istanza Amazon Redshift tramite un cloud privato virtuale (VPC) utilizzando indirizzi IP privati, consulta Migrazione dei dati Amazon Redshift con VPC.

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 senza costi per l'esecuzione, il test e il deployment dei workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery and BigQuery Data Transfer Service APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery and BigQuery Data Transfer Service APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

Impostare le autorizzazioni richieste

Prima di creare un trasferimento Amazon Redshift:

  1. Assicurati che l'entità che crea il trasferimento disponga delle seguenti autorizzazioni nel progetto contenente il job di trasferimento:

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

    Il ruolo IAM (Identity and Access Management) predefinito roles/bigquery.admin include le autorizzazioni bigquery.transfers.update, bigquery.datasets.update e bigquery.datasets.get. Per saperne di più sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.

  2. Consulta la documentazione di Amazon S3 per assicurarti di aver configurato le autorizzazioni necessarie per attivare il trasferimento. Come minimo, i dati di origine Amazon S3 devono avere applicata la policy gestita da AWS AmazonS3ReadOnlyAccess.

Crea un set di dati

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

Concedere l'accesso al cluster Amazon Redshift

Aggiungi i seguenti intervalli IP del tuo cluster Amazon Redshift privato a una lista consentita configurando le regole del gruppo di sicurezza. Puoi inserire nella lista consentita gli indirizzi IP corrispondenti alla posizione del tuo set di dati oppure puoi inserire nella lista consentita tutti gli indirizzi IP nella tabella seguente. Questi indirizzi IP di proprietà di Google sono riservati alle migrazioni di dati Amazon Redshift.

Località regionali

Descrizione della regione Nome regione Indirizzi IP
Americhe
Columbus, Ohio us-east5 34.162.72.184
34.162.173.185
34.162.205.205
34.162.81.45
34.162.182.149
34.162.59.92
34.162.157.190
34.162.191.145
Dallas us-south1 34.174.172.89
34.174.40.67
34.174.5.11
34.174.96.109
34.174.148.99
34.174.176.19
34.174.253.135
34.174.129.163
Iowa us-central1 34.121.70.114
34.71.81.17
34.122.223.84
34.121.145.212
35.232.1.105
35.202.145.227
35.226.82.216
35.225.241.102
Las Vegas us-west4 34.125.53.201
34.125.69.174
34.125.159.85
34.125.152.1
34.125.195.166
34.125.50.249
34.125.68.55
34.125.91.116
Los Angeles us-west2 35.236.59.167
34.94.132.139
34.94.207.21
34.94.81.187
34.94.88.122
35.235.101.187
34.94.238.66
34.94.195.77
Messico northamerica-south1 34.51.6.35
34.51.7.113
34.51.12.83
34.51.10.94
34.51.11.219
34.51.11.52
34.51.2.114
34.51.15.251
Montréal northamerica-northeast1 34.95.20.253
35.203.31.219
34.95.22.233
34.95.27.99
35.203.12.23
35.203.39.46
35.203.116.49
35.203.104.223
Virginia del Nord us-east4 35.245.95.250
35.245.126.228
35.236.225.172
35.245.86.140
35.199.31.35
35.199.19.115
35.230.167.48
35.245.128.132
35.245.111.126
35.236.209.21
Oregon us-west1 35.197.117.207
35.199.178.12
35.197.86.233
34.82.155.140
35.247.28.48
35.247.31.246
35.247.106.13
34.105.85.54
Salt Lake City us-west3 34.106.37.58
34.106.85.113
34.106.28.153
34.106.64.121
34.106.246.131
34.106.56.150
34.106.41.31
34.106.182.92
San Paolo southamerica-east1 35.199.88.228
34.95.169.140
35.198.53.30
34.95.144.215
35.247.250.120
35.247.255.158
34.95.231.121
35.198.8.157
Santiago southamerica-west1 34.176.188.48
34.176.38.192
34.176.205.134
34.176.102.161
34.176.197.198
34.176.223.236
34.176.47.188
34.176.14.80
Carolina del Sud us-east1 35.196.207.183
35.237.231.98
104.196.102.222
35.231.13.201
34.75.129.215
34.75.127.9
35.229.36.137
35.237.91.139
Toronto northamerica-northeast2 34.124.116.108
34.124.116.107
34.124.116.102
34.124.116.80
34.124.116.72
34.124.116.85
34.124.116.20
34.124.116.68
Europa
Belgio europe-west1 35.240.36.149
35.205.171.56
34.76.234.4
35.205.38.234
34.77.237.73
35.195.107.238
35.195.52.87
34.76.102.189
Berlino europe-west10 34.32.28.80
34.32.31.206
34.32.19.49
34.32.33.71
34.32.15.174
34.32.23.7
34.32.1.208
34.32.8.3
Finlandia europe-north1 35.228.35.94
35.228.183.156
35.228.211.18
35.228.146.84
35.228.103.114
35.228.53.184
35.228.203.85
35.228.183.138
Francoforte europe-west3 35.246.153.144
35.198.80.78
35.246.181.106
35.246.211.135
34.89.165.108
35.198.68.187
35.242.223.6
34.89.137.180
Londra europe-west2 35.189.119.113
35.189.101.107
35.189.69.131
35.197.205.93
35.189.121.178
35.189.121.41
35.189.85.30
35.197.195.192
Madrid europe-southwest1 34.175.99.115
34.175.186.237
34.175.39.130
34.175.135.49
34.175.1.49
34.175.95.94
34.175.102.118
34.175.166.114
Milano europe-west8 34.154.183.149
34.154.40.104
34.154.59.51
34.154.86.2
34.154.182.20
34.154.127.144
34.154.201.251
34.154.0.104
Paesi Bassi europe-west4 35.204.237.173
35.204.18.163
34.91.86.224
34.90.184.136
34.91.115.67
34.90.218.6
34.91.147.143
34.91.253.1
Parigi europe-west9 34.163.76.229
34.163.153.68
34.155.181.30
34.155.85.234
34.155.230.192
34.155.175.220
34.163.68.177
34.163.157.151
Stoccolma europe-north2 34.51.133.48
34.51.136.177
34.51.128.140
34.51.141.252
34.51.139.127
34.51.142.55
34.51.134.218
34.51.138.9
Torino europe-west12 34.17.15.186
34.17.44.123
34.17.41.160
34.17.47.82
34.17.43.109
34.17.38.236
34.17.34.223
34.17.16.47
Varsavia europe-central2 34.118.72.8
34.118.45.245
34.118.69.169
34.116.244.189
34.116.170.150
34.118.97.148
34.116.148.164
34.116.168.127
Zurigo europe-west6 34.65.205.160
34.65.121.140
34.65.196.143
34.65.9.133
34.65.156.193
34.65.216.124
34.65.233.83
34.65.168.250
Asia Pacifico
Bangkok asia-southeast3 34.15.142.80
34.15.131.78
34.15.141.141
34.15.143.6
34.15.142.166
34.15.138.0
34.15.135.129
34.15.139.45
Delhi asia-south2 34.126.212.96
34.126.212.85
34.126.208.224
34.126.212.94
34.126.208.226
34.126.212.232
34.126.212.93
34.126.212.206
Hong Kong asia-east2 34.92.245.180
35.241.116.105
35.220.240.216
35.220.188.244
34.92.196.78
34.92.165.209
35.220.193.228
34.96.153.178
Giacarta asia-southeast2 34.101.79.105
34.101.129.32
34.101.244.197
34.101.100.180
34.101.109.205
34.101.185.189
34.101.179.27
34.101.197.251
Melbourne australia-southeast2 34.126.196.95
34.126.196.106
34.126.196.126
34.126.196.96
34.126.196.112
34.126.196.99
34.126.196.76
34.126.196.68
Mumbai asia-south1 34.93.67.112
35.244.0.1
35.200.245.13
35.200.203.161
34.93.209.130
34.93.120.224
35.244.10.12
35.200.186.100
Osaka asia-northeast2 34.97.94.51
34.97.118.176
34.97.63.76
34.97.159.156
34.97.113.218
34.97.4.108
34.97.119.140
34.97.30.191
Seul asia-northeast3 34.64.152.215
34.64.140.241
34.64.133.199
34.64.174.192
34.64.145.219
34.64.136.56
34.64.247.158
34.64.135.220
Singapore asia-southeast1 34.87.12.235
34.87.63.5
34.87.91.51
35.198.197.191
35.240.253.175
35.247.165.193
35.247.181.82
35.247.189.103
Sydney australia-southeast1 35.189.33.150
35.189.38.5
35.189.29.88
35.189.22.179
35.189.20.163
35.189.29.83
35.189.31.141
35.189.14.219
Taiwan asia-east1 35.221.201.20
35.194.177.253
34.80.17.79
34.80.178.20
34.80.174.198
35.201.132.11
35.201.223.177
35.229.251.28
35.185.155.147
35.194.232.172
Tokyo asia-northeast1 34.85.11.246
34.85.30.58
34.85.8.125
34.85.38.59
34.85.31.67
34.85.36.143
34.85.32.222
34.85.18.128
34.85.23.202
34.85.35.192
Medio Oriente
Dammam me-central2 34.166.20.177
34.166.10.104
34.166.21.128
34.166.19.184
34.166.20.83
34.166.18.138
34.166.18.48
34.166.23.171
Doha me-central1 34.18.48.121
34.18.25.208
34.18.38.183
34.18.33.25
34.18.21.203
34.18.21.80
34.18.36.126
34.18.23.252
Tel Aviv me-west1 34.165.184.115
34.165.110.74
34.165.174.16
34.165.28.235
34.165.170.172
34.165.187.98
34.165.85.64
34.165.245.97
Africa
Johannesburg africa-south1 34.35.11.24
34.35.10.66
34.35.8.32
34.35.3.248
34.35.2.113
34.35.5.61
34.35.7.53
34.35.3.17

Località multiregionali

Descrizione multiregionale Nome multi-regione Indirizzi IP
Data center all'interno degli stati membri dell'Unione Europea1 EU 34.76.156.158
34.76.156.172
34.76.136.146
34.76.1.29
34.76.156.232
34.76.156.81
34.76.156.246
34.76.102.206
34.76.129.246
34.76.121.168
Data center negli Stati Uniti US 35.185.196.212
35.197.102.120
35.185.224.10
35.185.228.170
35.197.5.235
35.185.206.139
35.197.67.234
35.197.38.65
35.185.202.229
35.185.200.120

1 I dati che si trovano nella multi-regione EU non sono archiviati nei data center europe-west2 (Londra) o europe-west6 (Zurigo).

Concedere l'accesso al bucket Amazon S3

Devi disporre di un bucket Amazon S3 da utilizzare come area di gestione temporanea per trasferire i dati Amazon Redshift a BigQuery. Per istruzioni dettagliate, consulta la documentazione di Amazon.

  1. Ti consigliamo di creare un utente Amazon IAM dedicato e di concedere a questo utente solo l'accesso in lettura ad Amazon Redshift e l'accesso in lettura e scrittura ad Amazon S3. Per eseguire questo passaggio, puoi applicare i seguenti criteri:

    Autorizzazioni Amazon per la migrazione di Amazon Redshift

  2. Crea una coppia di chiavi di accesso utente IAM Amazon.

Configura il controllo del workload con una coda di migrazione separata

Se vuoi, puoi definire una coda Amazon Redshift a scopo di migrazione per limitare e separare le risorse utilizzate per la migrazione. Puoi configurare questa coda di migrazione con un numero massimo di query simultanee. Puoi quindi associare un determinato gruppo di utenti di migrazione alla coda e utilizzare queste credenziali durante la configurazione della migrazione per trasferire i dati a BigQuery. Il servizio di trasferimento ha accesso solo alla coda di migrazione.

Raccogliere informazioni sul trasferimento

Raccogli le informazioni necessarie per configurare la migrazione con BigQuery Data Transfer Service:

  • Segui queste istruzioni per ottenere l'URL JDBC.
  • Recupera il nome utente e la password di un utente con le autorizzazioni appropriate per il tuo database Amazon Redshift.
  • Segui le istruzioni riportate in Concedere l'accesso al bucket Amazon S3 per ottenere una coppia di chiavi di accesso AWS.
  • Recupera l'URI del bucket Amazon S3 che vuoi utilizzare per il trasferimento. Ti consigliamo di configurare una policy del ciclo di vita per questo bucket per evitare addebiti non necessari. Il tempo di scadenza consigliato è di 24 ore per consentire il trasferimento di tutti i dati a BigQuery.

Valutare i dati

Nell'ambito del trasferimento dei dati, BigQuery Data Transfer Service scrive i dati da Amazon Redshift a Cloud Storage come file CSV. Se questi file contengono il carattere ASCII 0, non possono essere caricati in BigQuery. Ti consigliamo di valutare i tuoi dati per determinare se questo potrebbe essere un problema per te. In questo caso, puoi aggirare il problema esportando i dati in Amazon S3 come file Parquet e poi importandoli utilizzando BigQuery Data Transfer Service. Per saperne di più, consulta la panoramica dei trasferimenti di Amazon S3.

Configura un trasferimento Amazon Redshift

Seleziona una delle seguenti opzioni:

Console

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

    Vai a BigQuery

  2. Fai clic su Trasferimenti di dati.

  3. Fai clic su Crea trasferimento.

  4. Nella sezione Tipo di origine, seleziona Migrazione: Amazon Redshift dall'elenco Origine.

  5. Nella sezione Nome configurazione di trasferimento, inserisci un nome per il trasferimento, ad esempio My migration, nel campo Nome visualizzato. Il nome visualizzato può essere qualsiasi valore che ti consenta di identificare facilmente il trasferimento se devi modificarlo in un secondo momento.

  6. Nella sezione Impostazioni destinazione, scegli il set di dati che hai creato dall'elenco Set di dati.

  7. Nella sezione Dettagli origine dati, segui questi passaggi:

    1. Per URL connessione JDBC per Amazon Redshift, fornisci l'URL JDBC per accedere al cluster Amazon Redshift.
    2. Per Nome utente del database, inserisci il nome utente del database Amazon Redshift di cui vuoi eseguire la migrazione.
    3. In Password del database, inserisci la password del database.

    4. Per ID chiave di accesso e Chiave di accesso segreta, inserisci la coppia di chiavi di accesso che hai ottenuto da Concedere l'accesso al bucket S3.

    5. In URI Amazon S3, inserisci l'URI del bucket S3 che utilizzerai come area di staging.

    6. Per Schema Amazon Redshift, inserisci lo schema Amazon Redshift che stai migrando.

    7. Per Modelli di nomi di tabelle, specifica un nome o un modello per la corrispondenza dei nomi delle tabelle nello schema. Puoi utilizzare le espressioni regolari per specificare il pattern nel formato: <table1Regex>;<table2Regex>. Il pattern deve seguire la sintassi delle espressioni regolari Java. Ad esempio:

      • lineitem;ordertb corrisponde alle tabelle denominate lineitem e ordertb.
      • .* corrisponde a tutte le tabelle.

      Lascia vuoto questo campo per eseguire la migrazione di tutte le tabelle dallo schema specificato.

    8. Per VPC e l'intervallo IP riservato, lascia vuoto il campo.

  8. Nel menu Service account, seleziona un service account tra quelli associati al tuo progettoGoogle Cloud . Puoi associare un account di servizio al trasferimento anziché utilizzare le tue credenziali utente. Per ulteriori informazioni sull'utilizzo dei service account con i trasferimenti di dati, consulta Utilizza i service account.

    • Se hai eseguito l'accesso con un'identità federata, è necessario un account di servizio per creare un trasferimento. Se hai eseguito l'accesso con un Account Google, il service account per il trasferimento è facoltativo.
    • Il account di servizio deve disporre delle autorizzazioni richieste.
  9. (Facoltativo) Nella sezione Opzioni di notifica, segui questi passaggi:

    1. Fai clic sul pulsante di attivazione/disattivazione per abilitare le notifiche via email. Quando attivi questa opzione, l'amministratore del trasferimento riceve una notifica via email quando l'esecuzione di un trasferimento non riesce.
    2. In Seleziona un argomento Pub/Sub, scegli il nome dell'argomento o fai clic su Crea un argomento. Questa opzione configura l'esecuzione delle notifiche di Pub/Sub in relazione al trasferimento.
  10. Fai clic su Salva.

  11. La console Google Cloud mostra tutti i dettagli della configurazione del trasferimento, incluso un Nome risorsa per questo trasferimento.

bq

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

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

Dove:

  • project_id è l'ID progetto Google Cloud . Se --project_id non è specificato, viene utilizzato il progetto predefinito.
  • data_source è l'origine dati: redshift.
  • dataset è il set di dati BigQuery di destinazione per la configurazione del trasferimento.
  • name è il nome visualizzato della configurazione di trasferimento. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificare il trasferimento se devi modificarlo in un secondo momento.
  • service_account: è il nome del account di servizio utilizzato per autenticare il trasferimento. Il account di servizio deve essere di proprietà dello stesso project_id utilizzato per creare il trasferimento e deve disporre di tutte le autorizzazioni richieste.
  • parameters contiene i parametri per la configurazione del trasferimento creata in formato JSON. Ad esempio: --params='{"param":"param_value"}'.

I parametri richiesti per una configurazione di trasferimento Amazon Redshift sono:

  • jdbc_url: l'URL di connessione JDBC viene utilizzato per individuare il cluster Amazon Redshift.
  • database_username: il nome utente per accedere al database per scaricare le tabelle specificate.
  • database_password: la password utilizzata con il nome utente per accedere al database e scaricare le tabelle specificate.
  • access_key_id: l'ID chiave di accesso per firmare le richieste effettuate ad AWS.
  • secret_access_key: La chiave di accesso segreta utilizzata con l'ID chiave di accesso per firmare le richieste effettuate ad AWS.
  • s3_bucket: l'URI Amazon S3 che inizia con "s3://" e specifica un prefisso per i file temporanei da utilizzare.
  • redshift_schema: lo schema Amazon Redshift che contiene tutte le tabelle da migrare.
  • table_name_patterns: pattern dei nomi delle tabelle separati da un punto e virgola (;). Il pattern della tabella è un'espressione regolare per le tabelle da migrare. Se non viene fornito alcun valore, viene eseguita la migrazione di tutte le tabelle nello schema del database.

Ad esempio, il seguente comando crea un trasferimento Amazon Redshift denominato My Transfer con un set di dati di destinazione denominato mydataset e un progetto con l'ID google.com:myproject.

bq mk \
    --transfer_config \
    --project_id=myproject \
    --data_source=redshift \
    --target_dataset=mydataset \
    --display_name='My Transfer' \
    --params='{"jdbc_url":"jdbc:postgresql://test-example-instance.sample.us-west-1.redshift.amazonaws.com:5439/dbname","database_username":"my_username","database_password":"1234567890","access_key_id":"A1B2C3D4E5F6G7H8I9J0","secret_access_key":"1234567890123456789012345678901234567890","s3_bucket":"s3://bucket/prefix","redshift_schema":"public","table_name_patterns":"table_name"}'

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 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.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 redshift transfer config
public class CreateRedshiftTransfer {

  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 datasetRegion = "US";
    String jdbcUrl = "MY_JDBC_URL_CONNECTION_REDSHIFT";
    String dbUserName = "MY_USERNAME";
    String dbPassword = "MY_PASSWORD";
    String accessKeyId = "MY_AWS_ACCESS_KEY_ID";
    String secretAccessId = "MY_AWS_SECRET_ACCESS_ID";
    String s3Bucket = "MY_S3_BUCKET_URI";
    String redShiftSchema = "MY_REDSHIFT_SCHEMA";
    String tableNamePatterns = "*";
    String vpcAndReserveIpRange = "MY_VPC_AND_IP_RANGE";
    Map<String, Value> params = new HashMap<>();
    params.put("jdbc_url", Value.newBuilder().setStringValue(jdbcUrl).build());
    params.put("database_username", Value.newBuilder().setStringValue(dbUserName).build());
    params.put("database_password", Value.newBuilder().setStringValue(dbPassword).build());
    params.put("access_key_id", Value.newBuilder().setStringValue(accessKeyId).build());
    params.put("secret_access_key", Value.newBuilder().setStringValue(secretAccessId).build());
    params.put("s3_bucket", Value.newBuilder().setStringValue(s3Bucket).build());
    params.put("redshift_schema", Value.newBuilder().setStringValue(redShiftSchema).build());
    params.put("table_name_patterns", Value.newBuilder().setStringValue(tableNamePatterns).build());
    params.put(
        "migration_infra_cidr", Value.newBuilder().setStringValue(vpcAndReserveIpRange).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDatasetRegion(datasetRegion)
            .setDisplayName("Your Redshift Config Name")
            .setDataSourceId("redshift")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .setSchedule("every 24 hours")
            .build();
    createRedshiftTransfer(projectId, transferConfig);
  }

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

Quote e limiti

BigQuery ha una quota di caricamento di 15 TB per ogni job di caricamento per ogni tabella. Internamente, Amazon Redshift comprime i dati della tabella, quindi la dimensione della tabella esportata sarà maggiore di quella riportata da Amazon Redshift. Se prevedi di eseguire la migrazione di una tabella più grande di 15 TB, contatta prima l'assistenza clienti Google Cloud.

L'utilizzo di questo servizio può comportare costi esterni a Google. Per maggiori dettagli, consulta le pagine dei prezzi di Amazon Redshift e Amazon S3.

A causa del modello di coerenza di Amazon S3, è possibile che alcuni file non vengano inclusi nel trasferimento a BigQuery.

Passaggi successivi