Migrazione da Snowflake a BigQuery
Questo documento fornisce un'introduzione su come eseguire la migrazione da Snowflake a BigQuery. Le sezioni seguenti introducono gli strumenti di migrazione per aiutarti a eseguire una migrazione BigQuery e descrivono alcune differenze tra Snowflake e BigQuery per aiutarti a pianificare la migrazione.
Migrare i flussi di lavoro da Snowflake a BigQuery
Quando pianifichi una migrazione BigQuery, considera i diversi workflow che hai su Snowflake e come potresti eseguirne la migrazione singolarmente. Per ridurre al minimo l'impatto sulle operazioni esistenti, ti consigliamo di eseguire la migrazione delle query SQL a BigQuery e poi di eseguire la migrazione dello schema e del codice.
Eseguire la migrazione delle query SQL
Per eseguire la migrazione delle query SQL, BigQuery Migration Service offre varie funzionalità di traduzione SQL per automatizzare la conversione delle query SQL Snowflake in SQL GoogleSQL, ad esempio il traduttore SQL batch per tradurre le query in blocco, il traduttore SQL interattivo per tradurre le singole query e l'API di traduzione SQL. Questi servizi di traduzione includono anche funzionalità avanzate di Gemini per semplificare ulteriormente il processo di migrazione delle query SQL.
Quando traduci le query SQL, rivedile attentamente per verificare che i tipi di dati e le strutture delle tabelle siano gestiti correttamente. A questo scopo, ti consigliamo di creare un'ampia gamma di scenari di test con dati diversi. Poi esegui questi scenari di test su BigQuery per confrontare i risultati con quelli originali di Snowflake. Se ci sono differenze, analizza e correggi le query convertite.
Eseguire la migrazione di schema e codice
Per eseguire la migrazione dello schema e dei dati da Snowflake, utilizza il connettore Snowflake in BigQuery Data Transfer Service per configurare un trasferimento di dati. Quando configuri il trasferimento dei dati, puoi specificare tabelle Snowflake specifiche da includere e fare in modo che il connettore rilevi automaticamente lo schema della tabella e i tipi di dati durante un trasferimento.
Per ulteriori informazioni sulla configurazione di un trasferimento di dati Snowflake, consulta Pianificare un trasferimento Snowflake.
Funzionalità di sicurezza di BigQuery
Quando esegui la migrazione da Snowflake a BigQuery, considera in che modo Google Cloud gestisce la sicurezza in modo diverso da Snowflake.
La sicurezza in BigQuery è intrinsecamente collegata a Identity and Access Management (IAM) in Google Cloud. I privilegi IAM definiscono le operazioni consentite su una risorsa e vengono applicati a livello di Google Cloud , fornendo un approccio centralizzato e coerente alla gestione della sicurezza. Di seguito sono riportate alcune delle principali funzionalità di sicurezza di Google Cloud:
- Sicurezza integrata: BigQuery sfrutta le funzionalità di sicurezza di Google Cloud. Ciò include IAM per il controllo dell'accesso granulare per un'integrazione della sicurezza solida e senza interruzioni.
- Sicurezza a livello di risorsa: IAM si concentra sul controllo dell'accesso a livello di risorsa, concedendo autorizzazioni a utenti e gruppi per vari servizi e risorse BigQuery. Questo approccio consente una gestione efficace dei diritti di accesso, in modo che gli utenti dispongano solo delle autorizzazioni necessarie per svolgere le proprie attività.
- Sicurezza di rete: BigQuery beneficia delle solide funzionalità di sicurezza di rete di Google Cloud, come Virtual Private Cloud e connessioni private.
Quando esegui la migrazione da Snowflake a BigQuery, considera i seguenti requisiti di migrazione correlati alla sicurezza:
- Configurazione IAM: devi configurare ruoli e autorizzazioni IAM in BigQuery in modo che corrispondano ai criteri di controllo dell'accesso Snowflake esistenti. Ciò comporta il mapping dei ruoli Snowflake ai ruoli e alle autorizzazioni IAM di BigQuery appropriati.
- Controllo dell'accesso granulare: se utilizzi la sicurezza a livello di riga o di colonna in Snowflake, dovrai implementare controlli equivalenti in BigQuery utilizzando viste autorizzate o tag di criteri.
- Migrazione di viste e UDF: durante la migrazione di viste e UDF, verifica che i controlli di sicurezza associati siano tradotti correttamente in viste autorizzate e UDF autorizzate in BigQuery.
Crittografia
BigQuery cripta i tuoi dati at-rest e in transito per impostazione predefinita. Se hai bisogno di un maggiore controllo sulle chiavi di crittografia, BigQuery supporta le chiavi di crittografia gestite dal cliente in Cloud Key Management Service. Puoi anche utilizzare la crittografia a livello di colonna.
Per mantenere la sicurezza dei dati durante e dopo la migrazione a BigQuery, tieni presente quanto segue:
- Gestione delle chiavi: se hai bisogno di chiavi gestite dal cliente, stabilisci una strategia di gestione delle chiavi in Cloud Key Management Service e configura BigQuery per utilizzare queste chiavi.
- Mascheramento/tokenizzazione dei dati: se sono coinvolti dati sensibili, valuta se è necessario il mascheramento o la tokenizzazione dei dati per proteggerli.
- Sicurezza a livello di riga: implementa la sicurezza a livello di riga utilizzando viste autorizzate, filtri di sicurezza a livello di riga o altri metodi appropriati.
- Scansione delle vulnerabilità e test di penetrazione: esegui regolarmente analisi delle vulnerabilità e i test di penetrazione per verificare il livello di sicurezza del tuo ambiente BigQuery.
Ruoli
I ruoli sono le entità a cui possono essere concessi e revocati i privilegi sugli oggetti protetti.
In IAM, le autorizzazioni sono raggruppate in ruoli. IAM fornisce tre tipi di ruoli:
- Ruoli di base:
Questi ruoli includono i ruoli Proprietario, Editor e Visualizzatore. Puoi applicare
questi ruoli a livello di progetto o di risorsa di servizio utilizzando la
consoleGoogle Cloud , l'API Identity and Access Management o
gcloud CLI. In generale, per una sicurezza ottimale, ti consigliamo di utilizzare ruoli predefiniti per seguire il principio del privilegio minimo. - Ruoli predefiniti: Questi ruoli forniscono un accesso più granulare alle funzionalità di un prodotto (ad esempio BigQuery) e sono pensati per supportare casi d'uso comuni e pattern di controllo dell'accesso dell'accesso.
- Ruoli personalizzati: Questi ruoli sono composti da autorizzazioni specificate dall'utente.
Controllo degli accessi
Snowflake ti consente di concedere ruoli ad altri ruoli, creando una gerarchia di ruoli. IAM non supporta una gerarchia dei ruoli, ma implementa una gerarchia delle risorse. La gerarchia IAM include il livello organizzazione, il livello cartella, il livello progetto e il livello risorsa. Puoi impostare i ruoli IAM a qualsiasi livello della gerarchia e le risorse ereditano tutti i criteri delle risorse padre.
BigQuery supporta il controllo dell'accesso a livello di tabella. Le autorizzazioni a livello di tabella determinano gli utenti, i gruppi e i service account che possono accedere a una tabella o a una vista. Puoi concedere a un utente l'accesso a tabelle o viste specifiche senza concedergli l'accesso al set di dati completo.
Per un accesso più granulare, puoi anche utilizzare il controllo dell'accesso a livello di colonna o la sicurezza a livello di riga. Questo tipo di controllo fornisce un accesso granulare alle colonne sensibili utilizzando tag di criteri o classificazioni dei dati basate sul tipo.
Puoi anche creare viste autorizzate per limitare l'accesso ai dati per controllo dell'accesso più granulare, in modo che gli utenti specificati possano eseguire query su una vista senza disporre dell'accesso in lettura alle tabelle sottostanti.
Eseguire la migrazione di altre funzionalità di Snowflake
Tieni presente le seguenti funzionalità di Snowflake quando pianifichi la migrazione a BigQuery. In alcuni casi, puoi utilizzare altri servizi in Google Cloud per completare la migrazione.
Spostamento cronologico:in BigQuery puoi utilizzare lo spostamento cronologico per accedere ai dati di qualsiasi momento degli ultimi sette giorni. Se devi accedere a dati più vecchi di sette giorni, ti consigliamo di esportare gli snapshot pianificati regolarmente.
Stream:BigQuery supporta Change Data Capture (CDC) con Datastream. Puoi anche utilizzare software CDC, come Debezium, per scrivere record in BigQuery con Dataflow. Per ulteriori informazioni sulla progettazione manuale di una pipeline CDC con BigQuery, consulta Migrazione dei data warehouse in BigQuery: Change Data Capture (CDC).
Attività:BigQuery ti consente di pianificare query e flussi o l'integrazione di flussi nelle query con Datastream.
Funzioni esterne:BigQuery supporta le chiamate di funzioni esterne tramite le funzioni Cloud Run. Puoi anche utilizzare funzioni definite dall'utente (UDF) come le UDF SQL, anche se queste funzioni vengono eseguite all'interno di BigQuery.
Tipi di dati, proprietà e formati di file supportati
Snowflake e BigQuery supportano la maggior parte degli stessi tipi di dati, anche se a volte utilizzano nomi diversi. Per un elenco completo dei tipi di dati supportati in Snowflake e BigQuery, consulta Tipi di dati. Puoi anche utilizzare strumenti di traduzione SQL, come il traduttore SQL interattivo, l'API di traduzione SQL o il traduttore SQL batch, per tradurre diversi dialetti SQL in GoogleSQL.
Per ulteriori informazioni sui tipi di dati supportati in BigQuery, consulta Tipi di dati GoogleSQL.
Snowflake può esportare i dati nei seguenti formati di file. Puoi caricare i seguenti formati direttamente in BigQuery:
- Caricamento dei dati CSV da Cloud Storage.
- Caricamento dei dati Parquet da Cloud Storage.
- Caricamento dei dati JSON da Cloud Storage.
- Esegui query sui dati da Apache Iceberg.
Strumenti di migrazione
Il seguente elenco descrive gli strumenti che puoi utilizzare per eseguire la migrazione dei dati da Snowflake a BigQuery. Per esempi di come questi strumenti possono essere utilizzati insieme in una pipeline di migrazione Snowflake, consulta Esempi di pipeline di migrazione Snowflake.
COPY INTO <location>command: Utilizza questo comando in Snowflake per estrarre i dati da una tabella Snowflake direttamente in un bucket Cloud Storage specificato. Per un esempio end-to-end, consulta Snowflake to BigQuery (snowflake2bq) su GitHub.- Apache Sqoop: Per estrarre i dati da Snowflake in HDFS o Cloud Storage, invia job Hadoop con il driver JDBC da Sqoop e Snowflake. Sqoop viene eseguito in un ambiente Dataproc.
- Snowflake JDBC: utilizza questo driver con la maggior parte degli strumenti o delle applicazioni client che supportano JDBC.
Puoi utilizzare i seguenti strumenti generici per eseguire la migrazione dei dati da Snowflake a BigQuery:
- Connettore BigQuery Data Transfer Service per Snowflake (anteprima): esegui un trasferimento batch automatizzato dei dati di Cloud Storage in BigQuery.
- Google Cloud CLI:copia i file Snowflake scaricati in Cloud Storage con questo strumento a riga di comando.
- Strumento a riga di comando bq: interagisci con BigQuery utilizzando questo strumento a riga di comando. I casi d'uso comuni includono la creazione di schemi di tabelle BigQuery, il caricamento di dati Cloud Storage nelle tabelle e l'esecuzione di query.
- Librerie client di Cloud Storage: copia i file Snowflake scaricati in Cloud Storage con uno strumento personalizzato che utilizza le librerie client di Cloud Storage.
- Librerie client di BigQuery: interagisci con BigQuery con uno strumento personalizzato basato sulla libreria client di BigQuery.
- Utilità di pianificazione delle query BigQuery: pianifica query SQL ricorrenti con questa funzionalità integrata di BigQuery.
- Cloud Composer: utilizza questo ambiente Apache Airflow completamente gestito per orchestrare i job di caricamento e le trasformazioni BigQuery.
Per ulteriori informazioni sul caricamento dei dati in BigQuery, vedi Caricamento di dati in BigQuery.
Prezzi
Quando pianifichi la migrazione di Snowflake, considera il costo del trasferimento dei dati, dell'archiviazione dei dati e dell'utilizzo dei servizi in BigQuery. Per ulteriori informazioni, vedi Prezzi.
Potrebbero essere addebitati costi per il traffico in uscita per lo spostamento dei dati da Snowflake o AWS. Potrebbero essere previsti costi aggiuntivi anche per il trasferimento di dati tra regioni o tra diversi cloud provider.
Inizia
Le sezioni seguenti riassumono la procedura di migrazione da Snowflake a BigQuery:
Esegui una valutazione della migrazione
Nella migrazione da Snowflake a BigQuery, ti consigliamo di iniziare eseguendo lo strumento di valutazione della migrazione BigQuery per valutare la fattibilità e i potenziali vantaggi del trasferimento del data warehouse da Snowflake a BigQuery. Questo strumento fornisce un approccio strutturato per comprendere l'ambiente Snowflake attuale e stimare l'impegno necessario per una migrazione riuscita.
L'esecuzione dello strumento BigQuery Migration Assessment produce un report di valutazione contenente le seguenti sezioni:
- Report di sistema esistente: uno snapshot del sistema Snowflake esistente e dell'utilizzo, incluso il numero di database, schemi, tabelle e dimensioni totali in TB. Elenca inoltre gli schemi per dimensione e indica un potenziale utilizzo non ottimale delle risorse, ad esempio tabelle senza scritture o con poche letture.
- Suggerimenti per la trasformazione dello stato stazionario di BigQuery: mostra l'aspetto del sistema in BigQuery dopo la migrazione. Include suggerimenti per ottimizzare i carichi di lavoro in BigQuery ed evitare sprechi.
- Piano di migrazione: fornisce informazioni sull'impegno di migrazione stesso. Ad esempio, il passaggio dal sistema esistente allo stato stazionario di BigQuery. Questa sezione include il conteggio delle query che sono state tradotte automaticamente e il tempo previsto per spostare ogni tabella in BigQuery.
Per ulteriori informazioni sui risultati di una valutazione della migrazione, vedi Esaminare il report di Looker Studio.
Convalidare la migrazione
Dopo aver eseguito la migrazione dei dati Snowflake a BigQuery, esegui lo strumento di convalida dei dati (DVT) per eseguire una convalida dei dati sui dati BigQuery di cui è stata appena eseguita la migrazione. Il test di verifica dei dati convalida varie funzioni, dal livello di tabella a quello di riga, per verificare che i dati migrati funzionino come previsto.