Migrazione da Snowflake a BigQuery
Questo documento fornisce un'introduzione su come eseguire la migrazione da Snowflake a BigQuery. Le sezioni seguenti presentano gli strumenti di migrazione per aiutarti a eseguire una migrazione a BigQuery e delineano alcune differenze tra Snowflake e BigQuery per aiutarti a pianificare la migrazione.
Esegui la migrazione dei workflow da Snowflake a BigQuery
Quando pianifichi una migrazione a 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 prima la migrazione delle query SQL a BigQuery e poi quella dello schema e del codice.
Esegui 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 GoogleSQL, come il traduttore SQL batch per tradurre le query in blocco, il traduttore SQL interattivo per tradurre singole query e l'API SQL Translation. Questi servizi di traduzione includono anche funzionalità ottimizzate con Gemini per semplificare ulteriormente il processo di migrazione delle query SQL.
Durante la traduzione delle query SQL, esamina attentamente le query tradotte per verificare che i tipi di dati e le strutture delle tabelle siano gestiti correttamente. Per farlo, ti consigliamo di creare un'ampia gamma di scenari di test con scenari e 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.
Esegui la migrazione di schema e codice
Per eseguire la migrazione di schema e dati da Snowflake, utilizza il connettore Snowflake in BigQuery Data Transfer Service per configurare un trasferimento di dati. Quando configuri il trasferimento di dati, puoi specificare tabelle Snowflake specifiche da includere e fare in modo che il connettore rilevi automaticamente lo schema e i tipi di dati della tabella durante un trasferimento.
Per ulteriori informazioni sulla configurazione di un trasferimento di dati Snowflake, consulta Pianifica un trasferimento Snowflake.
Trasferimento incrementale
Quando esegui un trasferimento di dati Snowflake utilizzando il connettore Snowflake, puoi configurare un trasferimento incrementale che trasferisce solo i dati modificati dall'ultimo trasferimento di dati, anziché caricare l'intero set di dati con ogni trasferimento di dati. Per saperne di più, consulta Pianifica un trasferimento da Snowflake.
Esegui la migrazione di altre funzionalità di Snowflake
Quando pianifichi la migrazione a BigQuery, tieni conto delle seguenti funzionalità di Snowflake.
| Caso d'uso | Elemento fiocco di neve | Funzionalità di BigQuery |
|---|---|---|
| Staging dei file di dati non elaborati per il caricamento e l'esportazione | I dati possono essere caricati e scaricati in staging con i comandi "GET" e "PUT". Le query e i comandi "COPY" possono leggere e scrivere nelle fasi. | BigQuery si basa su Cloud Storage per la gestione temporanea dei dati dei file e supporta la lettura e la scrittura da e verso diverse altre origini e servizi Google Cloud . Utilizza Cloud Storage per caricare e scaricare file di dati non elaborati. Per ulteriori dettagli sui vari modi per caricare i dati da Cloud Storage e altre origini, consulta Introduzione al caricamento dei dati. Per ulteriori dettagli sull'esportazione in Cloud Storage e altre origini, consulta Introduzione all'esportazione dei dati. |
| Precalcolo dei risultati delle query comuni | Le tabelle dinamiche possono essere definite con una query e aggiornate in base a una pianificazione. | Le viste materializzate possono essere configurate per rendere persistente e aggiornare automaticamente il calcolo delle query SQL. |
| Operazioni DML di piccole dimensioni | Le tabelle ibride di Snowflake consentono piccole scritture DML. | In BigQuery è possibile utilizzare il DML granulare per migliorare la latenza e il throughput delle scritture di piccole dimensioni. Per casi d'uso avanzati di elaborazione analitica e transazionale ibrida (HTAP), valuta la possibilità di utilizzare i set di dati esterni di Spanner. |
| Notebooks e visualizzazione | Le applicazioni Snowflake Streamlit possono visualizzare i dati con il codice Python. | I notebook BigQuery e la libreria Python BigFrames possono essere utilizzati per esplorare e visualizzare i dati in Python. Per informazioni sulle integrazioni con Looker e altri strumenti di analisi e visualizzazione, consulta Introduzione agli strumenti di analisi e business intelligence. |
| Layout dei dati fisici | Snowflake supporta il clustering e il micropartizionamento per organizzare i dati sul disco. | BigQuery supporta il partizionamento e il clustering espliciti per offrire agli utenti un controllo preciso sulla modalità di distribuzione e organizzazione dei dati, il che può migliorare i costi e le prestazioni di runtime. Il servizio di traduzione SQL gestisce automaticamente la traduzione del clustering delle tabelle e può essere configurato per personalizzare il partizionamento e il clustering durante la migrazione dei DDL. |
| Funzioni e procedure esterne | Snowflake supporta funzioni e stored procedure implementate in diversi linguaggi esterni. | BigQuery supporta le chiamate di funzioni esterne tramite Cloud Run Functions. Puoi anche utilizzare le [funzioni definite dall'utente](/bigquery/docs/user-defined-functions) (UDF) come le UDF SQL, che vengono eseguite in BigQuery. BigQuery supporta SQL per le stored procedure. Per altri linguaggi, ti consigliamo di utilizzare funzioni esterne o la logica dell'applicazione lato client. |
Funzionalità di sicurezza di BigQuery
Quando esegui la migrazione da Snowflake a BigQuery, considera in che modoGoogle Cloud gestisce la sicurezza in modo diverso da Snowflake.
La sicurezza in BigQuery è intrinsecamente legata 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 funzionalità di sicurezza chiave di Google Cloud:
- Sicurezza integrata: BigQuery sfrutta le funzionalità di sicurezza di Google Cloud. Ciò include IAM per il controllo granulare degli accessi per un'integrazione della sicurezza solida e perfetta.
- Sicurezza a livello di risorsa: IAM si concentra sul controllo dell'accesso a livello di risorsa, concedendo autorizzazioni a utenti e gruppi per varie risorse e servizi 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 sfrutta le 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 relativi alla sicurezza:
- Configurazione IAM: devi configurare i ruoli e le autorizzazioni IAM in BigQuery in modo che corrispondano alle policy di controllo dell'accesso di Snowflake esistenti. Ciò comporta la mappatura dei ruoli Snowflake ai ruoli e alle autorizzazioni IAM di BigQuery appropriati.
- Controllo granulare dell'accesso: 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 policy.
- Migrazione di viste e funzioni definite dall'utente: quando esegui la migrazione di viste e funzioni definite dall'utente, verifica che i controlli di sicurezza associati siano tradotti correttamente in viste autorizzate e funzioni definite dall'utente 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 l'utilizzo di 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.
- Analisi delle vulnerabilità e test di penetrazione: esegui regolarmente analisi delle vulnerabilità e test di penetrazione per verificare la security posture del tuo ambiente BigQuery.
Ruoli
I ruoli sono le entità a cui è possibile concedere e revocare i privilegi sugli oggetti proteggibili.
In IAM, le autorizzazioni sono raggruppate in ruoli. IAM fornisce tre tipi di ruoli:
- Ruoli di base:
questi ruoli includono Proprietario, Editor e Visualizzatore. Puoi applicare questi ruoli a livello di progetto o di risorsa di servizio utilizzando la consoleGoogle Cloud , l'API di gestione di Identity and Access Management o
gcloud CLI. In generale, per la massima sicurezza, ti consigliamo di utilizzare i ruoli predefiniti per seguire il principio del privilegio minimo. - Ruoli predefiniti: questi ruoli forniscono un accesso più granulare alle funzionalità di un prodotto (come BigQuery) e sono pensati per supportare casi d'uso e pattern di controllo dell'accesso comuni.
- 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 di ruoli, ma implementa una gerarchia di risorse. La gerarchia IAM include il livello di organizzazione, il livello di cartella, il livello di progetto e il livello di risorsa. Puoi impostare i ruoli IAM a qualsiasi livello della gerarchia e le risorse ereditano tutte le policy delle risorse padre.
BigQuery supporta il controllo degli accessi 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 policy o classificazioni dei dati basate sul tipo.
Puoi anche creare viste autorizzate per limitare l'accesso ai dati per controllo dell'accesso granulare dell'accesso, in modo che gli utenti specificati possano eseguire query su una vista senza avere accesso in lettura alle tabelle sottostanti.
Tipi di dati, proprietà e formati 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 SQL Translation o il traduttore SQL batch, per tradurre diversi dialetti SQL in GoogleSQL.
Per saperne di più sui tipi di dati supportati in BigQuery, consulta Tipi di dati GoogleSQL.
Snowflake può esportare i dati nei seguenti formati file. Puoi caricare i seguenti formati direttamente in BigQuery:
- Carica i dati CSV da Cloud Storage.
- Carica i dati Parquet da Cloud Storage.
- Carica i 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.
- Comando
COPY INTO <location>: 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 Da Snowflake a BigQuery (snowflake2bq) su GitHub. - Apache Sqoop: per estrarre i dati da Snowflake in HDFS o Cloud Storage, invia job Hadoop con il driver JDBC di Sqoop e Snowflake. Sqoop viene eseguito in un ambiente Managed Service for Apache Spark.
- 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: 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 di 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.
- Pianificatore di query di BigQuery: pianifica query SQL ricorrenti con questa funzionalità integrata di BigQuery.
- Managed Service for Apache Airflow: utilizza questo ambiente Apache Airflow completamente gestito per orchestrare i job di caricamento e le trasformazioni di BigQuery.
Per saperne di più sul caricamento dei dati in BigQuery, consulta Caricamento dei dati in BigQuery.
Prezzi
Quando pianifichi la migrazione da 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 previsti costi di traffico in uscita per lo spostamento dei dati da Snowflake o AWS. Potrebbero essere applicati anche costi aggiuntivi per il trasferimento di dati tra regioni o tra provider cloud diversi.
Inizia
Le sezioni seguenti riassumono il processo di migrazione da Snowflake a BigQuery:
Esegui una valutazione della migrazione
Per la migrazione da Snowflake a BigQuery, ti consigliamo di iniziare eseguendo lo strumento di valutazione della migrazione a BigQuery per valutare la fattibilità e i potenziali vantaggi dello spostamento del tuo 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 di successo.
L'esecuzione dello strumento di valutazione della migrazione a BigQuery genera un report di valutazione che contiene le seguenti sezioni:
- Report sul sistema esistente: un'istantanea del sistema Snowflake esistente e del suo utilizzo, incluso il numero di database, schemi, tabelle e dimensioni totali in TB. Inoltre, elenca gli schemi in base alle dimensioni e indica un potenziale utilizzo non ottimale delle risorse, ad esempio tabelle senza scritture o con poche letture.
- Suggerimenti per la trasformazione in stato stabile di BigQuery: mostra l'aspetto del sistema in BigQuery dopo la migrazione. Include suggerimenti per ottimizzare i workload in BigQuery ed evitare sprechi.
- Piano di migrazione: fornisce informazioni sull'attività di migrazione stessa. Ad esempio, il passaggio dal sistema esistente allo stato stabile 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 saperne di più sui risultati di una valutazione della migrazione, consulta Esamina il report di Data Studio.
Convalida la migrazione
Dopo aver eseguito la migrazione dei dati di Snowflake a BigQuery, esegui lo Data Validation Tool (DVT) per eseguire una convalida dei dati sui dati di BigQuery di cui è stata appena eseguita la migrazione. Il DVT convalida varie funzioni, dal livello di tabella al livello di riga, per verificare che i dati di cui è stata eseguita la migrazione funzionino come previsto.