Pianificare un trasferimento Snowflake
Il connettore Snowflake fornito da BigQuery Data Transfer Service consente di pianificare e gestire i job di trasferimento automatico per eseguire la migrazione dei dati da Snowflake a BigQuery utilizzando gli elenchi consentiti di IP pubblici.
Panoramica
Il connettore Snowflake impiega agenti di migrazione in Google Kubernetes Engine e attiva un'operazione di caricamento da Snowflake a un'area temporanea all'interno dello stesso provider cloud in cui è ospitato Snowflake. Per gli account Snowflake ospitati su AWS, i dati vengono prima preparati nel bucket Amazon S3, che viene poi trasferito a BigQuery con BigQuery Data Transfer Service.
Il seguente diagramma mostra come i dati vengono trasferiti da un data warehouse Snowflake ospitato su AWS a BigQuery.
Limitazioni
I trasferimenti di dati effettuati utilizzando il connettore Snowflake sono soggetti alle seguenti limitazioni:
- I trasferimenti di dati sono supportati solo dagli account Snowflake ospitati su AWS. I trasferimenti di dati dagli account Snowflake ospitati su Google Cloud o Microsoft Azure non sono supportati.
- Il connettore Snowflake non supporta i trasferimenti di dati incrementali.
- Il connettore Snowflake supporta solo i trasferimenti dalle tabelle all'interno di un singolo database e schema Snowflake. Per eseguire il trasferimento da tabelle con più database o schemi Snowflake, puoi configurare ogni job di trasferimento separatamente.
- La velocità di caricamento dei dati da Snowflake al bucket Amazon S3 è limitata dal warehouse Snowflake che hai scelto per questo trasferimento.
I dati vengono estratti da Snowflake nel formato Parquet prima di essere caricati in BigQuery:
- I seguenti tipi di dati Parquet non sono supportati:
TIMESTAMP_TZ
,TIMESTAMP_LTZ
OBJECT
,VARIANT
,ARRAY
- Per ulteriori informazioni, consulta Valutare i dati di Snowflake.
Il seguente tipo di dati Parquet non è supportato, ma può essere convertito:
TIMESTAMP_NTZ
Utilizza il file YAML di configurazione della conversione del tipo globale per ignorare il comportamento predefinito della conversione
DATETIME
inTIMESTAMP
quando generi i metadati ed esegui il motore di traduzione.Il file YAML di configurazione potrebbe avere un aspetto simile al seguente esempio:
type: experimental_object_rewriter global: typeConvert: datetime: TIMESTAMP
- I seguenti tipi di dati Parquet non sono supportati:
Prima di iniziare
Prima di configurare un trasferimento Snowflake, devi eseguire tutti i passaggi elencati in questa sezione. Di seguito è riportato un elenco di tutti i passaggi obbligatori.
- Preparare il progetto Google Cloud
- Ruoli BigQuery richiesti
- Prepara il bucket Amazon S3
- Crea un utente Snowflake con le autorizzazioni richieste
- Aggiungere policy di rete
- Generare metadati ed eseguire il motore di traduzione
- Valuta Snowflake per verificare la presenza di tipi di dati non supportati
- Raccogliere informazioni sul trasferimento
Prepara il progetto Google Cloud
Crea e configura il progetto Google Cloud per un trasferimento Snowflake con i seguenti passaggi:
Crea un Google Cloud progetto o selezionane uno esistente.
Verifica di aver completato tutte le azioni necessarie per attivare BigQuery Data Transfer Service.
Crea un set di dati BigQuery per archiviare i tuoi dati. Non devi creare tabelle.
Ruoli BigQuery richiesti
Per ottenere le autorizzazioni necessarie per creare un trasferimento, chiedi all'amministratore di concederti il ruolo IAM BigQuery Admin (roles/bigquery.admin
).
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per creare un trasferimento. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare un trasferimento sono necessarie le seguenti autorizzazioni:
-
bigquery.transfers.update
sull'utente o sul account di servizio che crea la configurazione del trasferimento -
bigquery.datasets.get
sull'utente o sul account di servizio che crea la configurazione del trasferimento -
bigquery.datasets.update
sull'utente o sul account di servizio che crea la configurazione del trasferimento
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Prepara il bucket Amazon S3
Per completare un trasferimento di dati Snowflake, devi creare un bucket Amazon S3 e configurarlo per consentire l'accesso in scrittura da Snowflake.
Crea un bucket Amazon S3. Il bucket Amazon S3 viene utilizzato per preparare i dati prima che vengano caricati in BigQuery.
Crea e configura un oggetto di integrazione dell'archiviazione Snowflake per consentire a Snowflake di scrivere dati nel bucket Amazon S3 come stage esterno.
Per consentire l'accesso in lettura al tuo bucket Amazon S3, devi anche:
Crea un utente Amazon IAM dedicato e concedigli il criterio AmazonS3ReadOnlyAccess.
Crea una coppia di chiavi di accesso Amazon per l'utente IAM.
Crea un utente Snowflake con le autorizzazioni richieste
Durante un trasferimento Snowflake, il connettore Snowflake si connette al tuo account Snowflake utilizzando una connessione JDBC. Devi creare un nuovo utente Snowflake con un ruolo personalizzato che disponga solo dei privilegi necessari per eseguire il trasferimento dei dati:
// Create and configure new role, MIGRATION_ROLE GRANT USAGE ON WAREHOUSE WAREHOUSE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON DATABASE DATABASE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON SCHEMA DATABASE_NAME.SCHEMA_NAME TO ROLE MIGRATION_ROLE; // You can modify this to give select permissions for all tables in a schema GRANT SELECT ON TABLE DATABASE_NAME.SCHEMA_NAME.TABLE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON STORAGE_INTEGRATION_OBJECT_NAME TO ROLE MIGRATION_ROLE;
Sostituisci quanto segue:
MIGRATION_ROLE
: il nome del ruolo personalizzato che stai creandoWAREHOUSE_NAME
: il nome del tuo data warehouseDATABASE_NAME
: il nome del tuo database SnowflakeSCHEMA_NAME
: il nome dello schema SnowflakeTABLE_NAME
: il nome di Snowflake incluso in questo trasferimento di datiSTORAGE_INTEGRATION_OBJECT_NAME
: il nome dell'oggetto di integrazione dell'archiviazione Snowflake.
Aggiungere criteri di rete
Per la connettività pubblica, l'account Snowflake consente la connessione pubblica con le credenziali del database per impostazione predefinita. Tuttavia, potresti aver configurato regole o criteri di rete che potrebbero impedire al connettore Snowflake di connettersi al tuo account. In questo caso, devi aggiungere gli indirizzi IP necessari alla tua lista consentita.
La tabella seguente è un elenco di indirizzi IP per le località regionali e multiregionali utilizzate per i trasferimenti pubblici. Puoi aggiungere gli indirizzi IP che corrispondono solo alla posizione del tuo set di dati oppure puoi aggiungere tutti gli indirizzi IP elencati nella tabella. Si tratta di indirizzi IP riservati da Google per i trasferimenti di dati di BigQuery Data Transfer Service.
Per aggiungere un indirizzo IP a una lista consentita:
- Crea una regola di rete
con
type
=IPV4
. BigQuery Data Transfer Service utilizza una connessione JDBC per connettersi all'account Snowflake. - Crea una policy di rete con la regola di rete che hai creato in precedenza e l'indirizzo IP della tabella seguente.
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 | |||
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 della 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 multiregione EU
non sono archiviati nei data center europe-west2
(Londra) o europe-west6
(Zurigo).
Genera metadati ed esegui il motore di traduzione
Il connettore BigQuery Data Transfer Service per Snowflake utilizza il motore di traduzione di BigQuery Migration Service per la mappatura dello schema durante la migrazione delle tabelle Snowflake in BigQuery. Per completare un trasferimento di dati Snowflake, devi prima generare i metadati per la traduzione, quindi eseguire il motore di traduzione:
- Esegui
dwh-migration-tool
per Snowflake. Per ulteriori informazioni, consulta Generare metadati per la traduzione e la valutazione. - Carica il file
metadata.zip
generato in un bucket Cloud Storage. Il filemetadata.zip
viene utilizzato come input per il motore di traduzione. Esegui il servizio di traduzione batch, specificando il campo
target_types
comemetadata
. Per saperne di più, vedi Tradurre query SQL con l'API Translation.- Di seguito è riportato un esempio di comando per eseguire una traduzione batch per Snowflake:
curl -d "{ \"name\": \"sf_2_bq_translation\", \"displayName\": \"Snowflake to BigQuery Translation\", \"tasks\": { string: { \"type\": \"Snowflake2BigQuery_Translation\", \"translation_details\": { \"target_base_uri\": \"gs://sf_test_translation/output\", \"source_target_mapping\": { \"source_spec\": { \"base_uri\": \"gs://sf_test_translation/input\" } }, \"target_types\": \"metadata\", } } }, }" \ -H "Content-Type:application/json" \ -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/project_id/locations/location/workflows
- Puoi controllare lo stato di questo comando nella pagina di traduzione SQL in BigQuery.
L'output del job di traduzione batch viene archiviato in
gs://translation_target_base_uri/metadata/config/
.
Autorizzazioni account di servizio richieste
In un trasferimento Snowflake, un account di servizio viene utilizzato per leggere
i dati dall'output del motore di traduzione nel percorso Cloud Storage specificato.
Devi concedere al account di servizio le autorizzazioni storage.objects.get
e
storage.objects.list
.
Se l'account di servizio proviene da un progetto diverso da quello che ha creato il trasferimento dati BigQuery, devi anche attivare l'autorizzazione dell'account di servizio tra progetti. Google Cloud
Per saperne di più, consulta Ruoli e autorizzazioni IAM di BigQuery.
Valutare i dati di Snowflake
BigQuery scrive i dati da Snowflake a
Cloud Storage come file Parquet. I file Parquet non supportano i tipi di dati
TIMESTAMP_TZ
e TIMESTAMP_LTZ
. Se i tuoi dati contengono questi tipi, puoi esportarli in
Amazon S3 come file CSV e poi importare i file CSV in
BigQuery. Per saperne di più, consulta Panoramica dei trasferimenti da Amazon S3.
Raccogliere informazioni sul trasferimento
Raccogli le informazioni necessarie per configurare la migrazione con BigQuery Data Transfer Service:
- L'identificatore dell'account Snowflake, ovvero il prefisso nell'URL dell'account Snowflake. Ad esempio,
ACCOUNT_IDENTIFIER.snowflakecomputing.com
. - Il nome utente e la password di un utente con le autorizzazioni appropriate per il tuo database Snowflake. Può avere solo le autorizzazioni necessarie per eseguire il trasferimento dei dati.
- L'URI del bucket Amazon S3 che vuoi utilizzare per il trasferimento e la coppia di chiavi di accesso utente AWS. Ti consigliamo di configurare un criterio del ciclo di vita per questo bucket per evitare addebiti non necessari.
- L'URI del bucket Cloud Storage in cui hai archiviato i file di mappatura dello schema ottenuti dal motore di traduzione.
Configura un trasferimento da Snowflake
Seleziona una delle seguenti opzioni:
Console
Vai alla pagina Trasferimenti di dati nella console Google Cloud .
Fai clic su
Crea trasferimento.Nella sezione Tipo di origine, seleziona Migrazione Snowflake dall'elenco Origine.
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 il trasferimento se devi 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, segui questi passaggi:
- Per Identificatore account, inserisci un identificatore univoco per il tuo account Snowflake, che è una combinazione del nome dell'organizzazione e del nome dell'account. L'identificatore è il prefisso dell'URL dell'account Snowflake e non l'URL completo. Ad esempio,
ACCOUNT_IDENTIFIER.snowflakecomputing.com
. - In Nome utente, inserisci il nome utente dell'utente Snowflake le cui credenziali e autorizzazione vengono utilizzate per accedere al database per trasferire le tabelle Snowflake. Ti consigliamo di utilizzare l'utente che hai creato per questo trasferimento.
- In Password, inserisci la password dell'utente Snowflake.
- Per Warehouse, inserisci un warehouse utilizzato per l'esecuzione di questo trasferimento di dati.
- In Service account, inserisci un account di servizio da utilizzare con questo
trasferimento di dati. L'account di servizio deve appartenere allo stesso progettoGoogle Cloud in cui vengono creati la configurazione del trasferimento e il set di dati di destinazione. Il account di servizio deve disporre delle autorizzazioni richieste
storage.objects.list
estorage.objects.get
. - In Database, inserisci il nome del database Snowflake che contiene le tabelle incluse in questo trasferimento di dati.
- Per Schema, inserisci il nome dello schema Snowflake che contiene le tabelle incluse in questo trasferimento di dati.
Per Pattern del nome della tabella, specifica una tabella da trasferire inserendo un nome o un pattern che corrisponda al nome della tabella nello schema. Puoi utilizzare espressioni regolari per specificare il pattern, ad esempio
table1_regex;table2_regex
. Il pattern deve seguire la sintassi delle espressioni regolari Java. Ad esempio,lineitem;ordertb
corrisponde alle tabelle denominatelineitem
eordertb
..*
corrisponde a tutte le tabelle.
Per Percorso GCS di output della traduzione, specifica un percorso della cartella Cloud Storage che contiene i file di mappatura dello schema del motore di traduzione.
- Il percorso deve seguire il formato
gs:/translation_target_base_uri/metadata/config/db/schema/
e deve terminare con/
.
- Il percorso deve seguire il formato
Per Nome oggetto integrazione archiviazione, inserisci il nome dell'oggetto di integrazione dell'archiviazione Snowflake. In questo caso,
S3
.In Fornitore cloud, seleziona
AWS
.Per URI GCS, nome account Azure Storage, nome container Azure, SAS Azure, lascia questi campi vuoti.
In URI Amazon S3, inserisci l'URI del bucket S3 da utilizzare come area di staging.
Per ID chiave di accesso e Chiave di accesso segreta, inserisci la coppia di chiavi di accesso.
- Per Identificatore account, inserisci un identificatore univoco per il tuo account Snowflake, che è una combinazione del nome dell'organizzazione e del nome dell'account. L'identificatore è il prefisso dell'URL dell'account Snowflake e non l'URL completo. Ad esempio,
(Facoltativo) Nella sezione Opzioni di notifica, segui questi passaggi:
- 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.
- 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.
Fai clic su Salva.
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'
Sostituisci quanto segue:
- project_id: il tuo ID progetto Google Cloud . Se
--project_id
non è specificato, viene utilizzato il progetto predefinito. - data_source: l'origine dati,
snowflake_migration
. - dataset: il set di dati BigQuery di destinazione per la configurazione del trasferimento.
- name: il nome visualizzato per la configurazione del 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: (Facoltativo) il nome dell'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 tutti i ruoli richiesti. - parameters: i parametri per la configurazione
del trasferimento creato in formato JSON. Ad esempio:
--params='{"param":"param_value"}'
.
I parametri richiesti per una configurazione di trasferimento Snowflake sono:
account_identifier
: un identificatore univoco per il tuo account Snowflake, che è una combinazione del nome dell'organizzazione e del nome dell'account. L'identificatore è il prefisso dell'URL dell'account Snowflake e non l'URL completo. Ad esempio,account_identifier.snowflakecomputing.com
.username
: il nome utente dell'utente Snowflake le cui credenziali e autorizzazione vengono utilizzate per accedere al tuo database per trasferire le tabelle Snowflake.password
: inserisci la password dell'utente Snowflake.warehouse
: inserisci un warehouse utilizzato per l'esecuzione di questo trasferimento di dati.service_account
: inserisci un account di servizio da utilizzare per questo trasferimento di dati. L'account di servizio deve appartenere allo stesso Google Cloud progetto in cui vengono creati la configurazione del trasferimento e il set di dati di destinazione. Il account di servizio deve disporre delle autorizzazioni richiestestorage.objects.list
estorage.objects.get
.database
: inserisci il nome del database Snowflake che contiene le tabelle incluse in questo trasferimento di dati.schema
: inserisci il nome dello schema Snowflake che contiene le tabelle incluse in questo trasferimento di dati.table_name_patterns
: specifica una tabella da trasferire inserendo un nome o un pattern che corrisponda al nome della tabella nello schema. Puoi utilizzare le espressioni regolari per specificare il pattern, ad esempiotable1_regex;table2_regex
. Il pattern deve seguire la sintassi delle espressioni regolari Java. Ad esempio,lineitem;ordertb
corrisponde alle tabelle denominatelineitem
eordertb
..*
corrisponde a tutte le tabelle.Puoi anche lasciare vuoto questo campo per eseguire la migrazione di tutte le tabelle dallo schema specificato.
translation_output_gcs_path
: specifica un percorso alla cartella Cloud Storage che contiene i file di mapping dello schema del motore di traduzione.- Il percorso deve seguire il formato
gs:/translation_target_base_uri/metadata/config/db/schema/
e deve terminare con/
.
- Il percorso deve seguire il formato
storage_integration_object_name
: inserisci il nome dell'oggetto di integrazione dell'archiviazione Snowflake. In questo caso,S3
.cloud_provider
: inserisciAWS
.amazon_s3_uri
: inserisci l'URI del bucket S3 da utilizzare come area di gestione temporanea.aws_access_key_id
: inserisci la coppia di chiavi di accesso.aws_secret_access_key
: inserisci la coppia di chiavi di accesso.
Ad esempio, il seguente comando crea un trasferimento Snowflake
denominato snowflake transfer config
con un set di dati di destinazione denominato
your_bq_dataset
e un progetto con l'ID your_project_id
.
PARAMS='{ "account_identifier": "your_account_identifier", "aws_access_key_id": "your_access_key_id", "aws_secret_access_key": "your_aws_secret_access_key", "cloud_provider": "AWS", "database": "your_sf_database", "password": "your_sf_password", "schema": "your_snowflake_schema", "service_account": "your_service_account", "storage_integration_object_name": "your_storage_integration_object", "staging_s3_uri": "s3://your/s3/bucket/uri", "table_name_patterns": ".*", "translation_output_gcs_path": "gs://sf_test_translation/output/metadata/config/database_name/schema_name/", "username": "your_sf_username", "warehouse": "your_warehouse" }' bq mk --transfer_config \ --project_id=your_project_id \ --target_dataset=your_bq_dataset \ --display_name='snowflake transfer config' \ --params="$PARAMS" \ --data_source=snowflake_migration
API
Utilizza il metodo projects.locations.transferConfigs.create
e fornisci un'istanza della risorsa TransferConfig
.
Quote e limiti
BigQuery ha una quota di caricamento di 15 TB per ogni job di caricamento per ogni tabella. Internamente, Snowflake comprime i dati della tabella, quindi la dimensione della tabella esportata è maggiore di quella riportata da Snowflake. Se prevedi di eseguire la migrazione di una tabella più grande di 15 TB, contatta dts-migration-preview-support@google.com.
A causa del modello di coerenza di Amazon S3, è possibile che alcuni file non vengano inclusi nel trasferimento a BigQuery.
Prezzi
Per informazioni sui prezzi di BigQuery Data Transfer Service, consulta la pagina Prezzi.
- Se il warehouse Snowflake e il bucket Amazon S3 si trovano in regioni diverse, Snowflake applica addebiti per l'uscita quando esegui un trasferimento di dati Snowflake. Non sono previsti costi di uscita per i trasferimenti di dati Snowflake se sia il warehouse Snowflake sia il bucket Amazon S3 si trovano nella stessa regione.
- Quando i dati vengono trasferiti da AWS a Google Cloud, vengono applicati costi di uscita inter-cloud.
Passaggi successivi
- Scopri di più su BigQuery Data Transfer Service.
- Esegui la migrazione del codice SQL con la traduzione SQL batch.