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 di BigQuery e descrivono alcune differenze tra Snowflake e BigQuery per aiutarti a pianificare la migrazione.
Eseguire la migrazione dei flussi di lavoro da Snowflake a BigQuery
Quando pianifichi una migrazione di BigQuery, considera i diversi flussi di lavoro 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 di Snowflake in SQL GoogleSQL, come 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à ottimizzate per 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. A questo scopo, ti consigliamo di creare un'ampia gamma di test case con diversi scenari e dati. Esegui questi test case su BigQuery per confrontare i risultati con quelli originali di Snowflake. Se riscontri differenze, analizza e correggi le query convertite.
Eseguire la migrazione dello schema e del 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 di dati, puoi specificare le 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, vedi Pianificare 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 a ogni trasferimento di dati. Per ulteriori informazioni, vedi Pianificare un trasferimento Snowflake.
Eseguire la migrazione di altre funzionalità di Snowflake
Quando pianifichi la migrazione a BigQuery, tieni presente le seguenti funzionalità di Snowflake.
| Caso d'uso | Funzionalità di Snowflake | Funzionalità di BigQuery |
|---|---|---|
| Gestione temporanea dei file di dati non elaborati per il caricamento e l'esportazione | I dati possono essere caricati e scaricati nella gestione temporanea 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 in diverse altre origini e Google Cloud servizi. Utilizza Cloud Storage per caricare e scaricare i file di dati non elaborati. Per maggiori dettagli su una serie di modi per caricare i dati da Cloud Storage e da altre origini, consulta la sezione Introduzione al caricamento dei dati. Per maggiori dettagli sull'esportazione in Cloud Storage e in altre origini, consulta la sezione 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 persistere e aggiornare automaticamente il calcolo delle query SQL. |
| Piccole operazioni DML | Le tabelle ibride di Snowflake consentono piccole scritture DML. | In BigQuery è possibile utilizzare DML granulare per migliorare la latenza e il throughput delle piccole scritture. Per i casi d'uso avanzati di elaborazione transazionale/analitica ibrida (HTAP), valuta la possibilità di utilizzare i set di dati esterni di Spanner. |
| Notebooks e visualizzazione | Le applicazioni Streamlit di Snowflake possono visualizzare i dati con il codice Python. | I blocchi note 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 la sezione Introduzione agli strumenti di analisi e business intelligence. |
| Layout dei dati fisici | Snowflake supporta il clustering e la micropartizionamento per organizzare i dati sul disco. | BigQuery supporta il partizionamento esplicito e il clustering per consentire agli utenti di controllare con precisione la distribuzione e l'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 [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 logica dell'applicazione lato client. |
Funzionalità di sicurezza di BigQuery
Quando esegui la migrazione da Snowflake a BigQuery, considera come 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 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's. Include IAM per il controllo granulare dell'accesso 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 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 eseguire le proprie attività.
- Sicurezza di rete: BigQuery usufruisce delle solide funzionalità di sicurezza di rete di Google Cloud's, come Virtual Private Cloud e le connessioni private.
Quando esegui la migrazione da Snowflake a BigQuery, tieni presente i seguenti requisiti di migrazione relativi alla sicurezza:
- Configurazione IAM: devi configurare i ruoli e le 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: quando esegui 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
Per impostazione predefinita, BigQuery cripta i dati inattivi e in transito. 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 in modo che utilizzi 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 la postura di sicurezza del tuo ambiente BigQuery.
Ruoli
I ruoli sono le entità a cui è possibile concedere e revocare 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
Google Cloud console, l'API di gestione di Identity and Access Management o
gcloud CLI. In generale, per una sicurezza ottimale, 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 progettati per supportare casi d'uso comuni e pattern di controllo dell'accesso.
- Ruoli personalizzati: Questi ruoli sono composti da autorizzazioni specificate dall'utente.
Controllo degli accessi
Snowflake 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 dell'organizzazione, il livello della cartella, il livello del progetto e il livello della risorsa. Puoi impostare i ruoli IAM a qualsiasi livello della gerarchia e le risorse ereditano tutti i criteri delle risorse principali.
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 i tag di criteri o le classificazioni dei dati basate sui tipi.
Puoi anche creare viste autorizzate per limitare l'accesso ai dati per un controllo dell'accesso più granulare, 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 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, vedi 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, vedi 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.
- Eseguire 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 di Snowflake, vedi Esempi di pipeline di migrazione di Snowflake.
COPY INTO <location>comando: 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 esempio, vedi Snowflake to BigQuery (snowflake2bq) su GitHub.- Apache Sqoop: per estrarre i dati da Snowflake in HDFS o Cloud Storage, invia i job Hadoop con il driver JDBC da Sqoop e Snowflake. Sqoop viene eseguito in un ambiente Managed Service per 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 (anteprima): esegui un trasferimento batch automatico dei dati di Cloud Storage in BigQuery.
- La 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 dei 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.
- Scheduler di query BigQuery: pianifica le 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 di 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 previsti 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 riepilogano la procedura di migrazione da Snowflake a BigQuery:
Eseguire una valutazione della migrazione
Nella migrazione da Snowflake a BigQuery, ti consigliamo di iniziare eseguendo lo strumento di valutazione della migrazione di BigQuery per valutare la fattibilità e i potenziali vantaggi dello spostamento 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 di successo.
L'esecuzione dello strumento di valutazione della migrazione di BigQuery genera un report di valutazione che contiene le seguenti sezioni:
- Report del sistema esistente: uno snapshot del sistema e dell'utilizzo di Snowflake esistenti, incluso il numero di database, schemi, tabelle e la dimensione totale in TB. Elenca anche gli schemi in base alle dimensioni e indica il potenziale utilizzo non ottimale delle risorse, ad esempio le tabelle senza scritture o con poche letture.
- Suggerimenti per la trasformazione dello 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'impegno di migrazione stesso. Ad esempio, il passaggio dal sistema esistente allo stato stabile di BigQuery. Questa sezione include il conteggio delle query 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 appena migrati. DVT convalida varie funzioni, dal livello della tabella al livello della riga, per verificare che i dati migrati funzionino come previsto.