Esegui la migrazione di 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 coinvolge gli agenti di migrazione in GKE e attiva un'operazione di unload da Amazon Redshift in un'area di gestione temporanea in un bucket Amazon S3. Quindi, BigQuery Data Transfer Service trasferisce i dati dal bucket Amazon S3 a BigQuery.
Questo diagramma mostra il flusso complessivo di dati tra un data warehouse di Amazon Redshift e BigQuery durante una migrazione.
Se vuoi trasferire i dati dall'istanza Amazon Redshift tramite un VPC (Virtual cloud privato) utilizzando indirizzi IP privati, consulta Migrazione dei dati Amazon Redshift con VPC.
Prima di iniziare
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API BigQuery and BigQuery Data Transfer Service.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API BigQuery and BigQuery Data Transfer Service.
Imposta le autorizzazioni richieste
Prima di creare un trasferimento Amazon Redshift:
Assicurati che l'entità che crea il trasferimento abbia le seguenti autorizzazioni nel progetto contenente il job di trasferimento:
bigquery.transfers.update
autorizzazioni per creare il trasferimento- Entrambe le autorizzazioni
bigquery.datasets.get
ebigquery.datasets.update
sul set di dati di destinazione
Il ruolo predefinito di Identity and Access Management (IAM) di
roles/bigquery.admin
include le autorizzazionibigquery.transfers.update
,bigquery.datasets.update
ebigquery.datasets.get
. Per ulteriori informazioni sui ruoli IAM in BigQuery Data Transfer Service, consulta Controllo dell'accesso.Consulta la documentazione di Amazon S3 per assicurarti di aver configurato le autorizzazioni necessarie per abilitare il trasferimento. Come minimo, ai dati di origine Amazon S3 deve essere applicato il criterio gestito da AWS
AmazonS3ReadOnlyAccess
.
crea un set di dati
Crea un set di dati BigQuery per archiviare i tuoi dati. Non è necessario creare tabelle.
Concedi l'accesso al cluster Amazon Redshift
Segui le istruzioni in Configurare le regole in entrata per i client SQL per inserire i seguenti indirizzi IP nella lista consentita. Puoi inserire nella lista consentita gli indirizzi IP che corrispondono alla posizione del tuo set di dati oppure tutti gli indirizzi IP nella tabella seguente. Questi indirizzi IP di proprietà di Google sono prenotati per le migrazioni dei dati di Amazon Redshift.
Località regionali
Descrizione 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.535.184 34.162.534.184 34.162.72.184 |
|
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.96.109 34.174.148.99 34.174.176.19 34.174.96.109 34.174.148.99 34.174.176.19 34.174.96.109 |
|
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 36.121.145.212 35.232.1.105 35.202.145.227 36.202.145.227 36.121.70.114 |
|
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.125.50.249 5.125.152.1 5.125.152.1 |
|
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.81.187 34.94.88.122 35.235.101.187 34.94.81.187 |
|
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.3.15.49.203.204. |
|
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.515 6.19.17.4 |
|
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.50.233. 7.3.35.46.14. |
|
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.4150 6.106.56.150 6.106.64.121 34.106.246.131 34.106.56.41.13 |
|
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.13.158 35.247.255.159 35.199.88.228 |
|
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.268.347.405.236 |
|
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.129.215 34.75.127.2 34.75.127.2 35.196.207.183 |
|
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.140.41.85 16.41.85 34.124.116.85 |
|
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.205.38.234 34.77.237.73 35.195.107.238 35.195.107.238 35.205.38.234 |
|
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.24.3 8.34.32.1.24.32.28.80 |
|
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.50.28 8.3.284. 35.228.35.94 |
|
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 32.387 |
|
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.19.21.51.189 21.51.41 |
|
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.017 31.175.95.017 31.175.95.947. |
|
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.1415.20 3.154.59.51 3.154.86.2 |
|
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.61 34.13.184.136 34.91.115.67 34.90.218.64.34.15 |
|
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.38.14.155.175.220 7.220. |
|
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.34.17.3 34.34.17.3 |
|
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.1481 64.118.97.1481. 64.37.1481.118.72.8 |
|
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.1265 33.65.216.1265 34.65.9.133 34.65.156.193 34.65.216.1265. |
|
Asia Pacifico | |||
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.216.232.216.232.216.232. |
|
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.160.35.209 34.92.160.209 |
|
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.109.189 7.18.101.79.180 |
|
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.266.126.196.496.26.126.196.126. 34.126.196.99. |
|
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.200.203.161 34.93.209.130 34.93.120.224 35.30.120.25 35.30.120.224 35.200.203.161 |
|
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 19.34.19. |
|
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.76 34.64.136.56.24.25. |
|
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.198.197.191 35.240.253.175 35.247.165.193 35.18.193.18.18.18.191 35.198.197.191 |
|
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.22.179 35.189.20.163 35.189.29.83 35.189.29.88 35.189.22.179 35.189.20.163 35.189.29.83 35.189.29.88 35.189.22.179 35.189.20.163 35.189.29.83 35.189.29.88 35.189.22.179 |
|
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.120 32.80.178.20 35.201.132.120 32.201.132.12 32.201.132.120 32.80.174.198 35.201.132.120 32.80.178.20 |
|
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.36.143 34.25.8.12.24 34.82.85.14.85.38.59 |
|
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.1816 36.36.18.1816 36.18.1816 36.166.19.184 |
|
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.34.26.38 34.34.18.38 |
|
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 |
|
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.173 3.35.7.173 3.35.7.173 |
Località multiregionali
Descrizione per più regioni | Nome multiregionale | 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.81 34.76.156.232 34.76.156.81 34.76.156.81 34.76.156.158 |
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. 7.185.206.139. |
1 I dati situati nell'area multiregionale EU
non vengono archiviati nei data center europe-west2
(Londra) o europe-west6
(Zurigo).
Concedi l'accesso al tuo bucket Amazon S3
Devi avere un bucket Amazon S3 da utilizzare come area temporanea per trasferire i dati di Amazon Redshift in BigQuery. Per istruzioni dettagliate, consulta la documentazione di Amazon.
Ti consigliamo di creare un utente Amazon IAM dedicato e di concedere a quell'utente l'accesso in lettura ad Amazon Redshift e l'accesso in lettura e scrittura ad Amazon S3. Per farlo, puoi applicare le seguenti norme:
Crea una coppia di chiavi di accesso utente IAM di Amazon.
Configura il controllo dei carichi di lavoro con una coda di migrazione separata
Facoltativamente, puoi definire una coda Amazon Redshift per la migrazione per limitare e separare le risorse utilizzate per la migrazione. Puoi configurare questa coda di migrazione con un numero massimo di query contemporanee. Puoi quindi associare un determinato gruppo di utenti di migrazione alla coda e utilizzare le 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.
- Ottieni il nome utente e la password di un utente con le autorizzazioni appropriate per il tuo database Amazon Redshift.
- Segui le istruzioni in Concedere l'accesso al bucket Amazon S3 per ottenere una coppia di chiavi di accesso AWS.
- Recupera l'URI del bucket Amazon S3 da utilizzare per il trasferimento. Ti consigliamo di configurare un criterio Ciclo di vita per questo bucket per evitare addebiti inutili. La scadenza consigliata è di 24 ore per concedere tempo sufficiente per trasferire tutti i dati in BigQuery.
Valuta i tuoi dati
Nell'ambito del trasferimento, BigQuery Data Transfer Service scrive i dati da Amazon Redshift in Cloud Storage come file CSV. Se questi file contengono il carattere ASCII 0, non possono essere caricati in BigQuery. Ti suggeriamo di valutare i tuoi dati per stabilire se questo potrebbe rappresentare un problema per te. In caso affermativo, puoi aggirare il problema esportando i dati in Amazon S3 come file Parquet e importandoli utilizzando BigQuery Data Transfer Service. Per maggiori informazioni, consulta Panoramica dei trasferimenti di Amazon S3.
Configurare un trasferimento Amazon Redshift
Seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Fai clic su Trasferimenti di dati.
Fai clic su Crea trasferimento.
Nella sezione Tipo di origine, seleziona Migrazione: Amazon Redshift dall'elenco Origine.
Nella sezione Nome configurazione trasferimento, inserisci un nome per il trasferimento, ad esempio
My migration
, nel campo Nome visualizzato. Il nome visualizzato può essere qualsiasi valore che consenta di identificare facilmente il trasferimento qualora fosse necessario modificarlo in un secondo momento.Nella sezione Impostazioni destinazione, scegli il set di dati che hai creato dall'elenco Set di dati.
Nella sezione Dettagli origine dati:
- In URL connessione JDBC per Amazon Redshift, fornisci l'URL JDBC per accedere al tuo cluster Amazon Redshift.
- In Nome utente del tuo database, inserisci il nome utente del database Amazon Redshift di cui vuoi eseguire la migrazione.
In Password del tuo database, inserisci la password del database.
In ID chiave di accesso e Chiave di accesso segreta, inserisci la coppia di chiavi di accesso ottenuta da Concedi l'accesso al bucket S3.
Per URI Amazon S3, inserisci l'URI del bucket S3 che utilizzerai come area temporanea.
In Schema Amazon Redshift, inserisci lo schema Amazon Redshift di cui stai eseguendo la migrazione.
Per Pattern nomi tabella, specifica un nome o un pattern 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 denominatelineitem
eordertb
..*
corrisponde a tutte le tabelle.
Lascia vuoto questo campo per eseguire la migrazione di tutte le tabelle dallo schema specificato.
Per VPC e intervallo IP riservato, lascia vuoto il campo.
Nel menu Account di servizio, seleziona un account di servizio dagli account di servizio associati al tuo progetto Google Cloud. Puoi associare un account di servizio al trasferimento anziché utilizzare le tue credenziali utente. Per ulteriori informazioni sull'utilizzo di account di servizio con trasferimenti di dati, vedi Utilizzare account di servizio.
- Se hai eseguito l'accesso con un'identità federata, sarà necessario un account di servizio per creare un trasferimento. Se hai eseguito l'accesso con un Account Google, un account di servizio per il trasferimento è facoltativo.
- L'account di servizio deve disporre delle autorizzazioni richieste.
(Facoltativo) Nella sezione Opzioni di notifica, procedi nel seguente modo:
- Fai clic sul pulsante di attivazione/disattivazione per abilitare le notifiche via email. Quando abiliti questa opzione, l'amministratore dei trasferimenti riceve una notifica via email quando un trasferimento non va a buon fine.
- In Seleziona un argomento Pub/Sub, scegli il nome dell'argomento o fai clic su Crea un argomento. Questa opzione consente di configurare le notifiche di Pub/Sub per il trasferimento.
Fai clic su Salva.
La console Google Cloud mostra tutti i dettagli di configurazione del trasferimento, incluso un Nome risorsa per il 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 del tuo progetto Google Cloud. Se
--project_id
non è specificato, viene utilizzato il progetto predefinito. - data_source è l'origine dati:
redshift
. - dataset è il set di dati di destinazione BigQuery 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, qualora dovessi modificarlo in un secondo momento.
- service_account: è 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 avere tutte le autorizzazioni richieste. - parameters contiene i parametri per la configurazione di trasferimento
creata in formato JSON. Ad esempio:
--params='{"param":"param_value"}'
.
I parametri richiesti per una configurazione di trasferimento con 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 annullare il caricamento delle 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 della chiave di accesso per firmare le richieste effettuate ad AWS.secret_access_key
: la chiave di accesso del secret utilizzata con l'ID della 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 contenente tutte le tabelle di cui eseguire la migrazione.table_name_patterns
: pattern dei nomi delle tabelle separati da un punto e virgola (;). Il pattern della tabella è un'espressione regolare per la migrazione delle tabelle. Se non viene fornito, 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 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 per la configurazione di Java nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
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 delle tabelle, quindi le dimensioni esportate saranno maggiori di quelle riportate da Amazon Redshift. Se prevedi di eseguire la migrazione di una tabella di dimensioni superiori a 15 TB, contatta prima l'assistenza clienti Google Cloud.
L'utilizzo di questo servizio comporta l'addebito di 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
- Scopri di più sulla migrazione delle istanze private Amazon Redshift con VPC.
- Scopri di più su BigQuery Data Transfer Service.
- Esegui la migrazione del codice SQL con la traduzione SQL batch.