Migrazione da Snowflake a BigQuery

Questo documento fornisce un background tecnico su come eseguire la migrazione dei dati Fiocco di neve a BigQuery. Descrive le differenze fondamentali tra Snowflake e in BigQuery. Fornisce anche indicazioni per una migrazione di successo, ad esempio:

  • Quali modifiche allo schema sono necessarie
  • Strumenti e opzioni di migrazione disponibili
  • Come eseguire la migrazione dei dati (utilizzando un processo di esportazione di esempio)

Puoi anche utilizzare traduzione SQL batch eseguire la migrazione collettiva degli script SQL traduzione SQL interattiva per tradurre query ad hoc. L'SQL Snowflake è supportato in anteprima.

Terminologia

Questo documento utilizza la terminologia di Snowflake e BigQuery per descrivono le funzionalità offerte da ciascun prodotto. La tabella seguente è mappata Termini Snowflake ai termini equivalenti di BigQuery:

Snowflake BigQuery
Database Set di dati
Schema Schema
Tabella temporanea o temporanea specifica per la sessione Tabella anonima o temporanea
Visualizza Visualizza
Visualizzazioni sicure Visualizzazioni autorizzate
Warehouse virtuale Prenotazione
Visualizzazione materializzata Visualizzazione materializzata
Nessun equivalente per il partizionamento (perché viene utilizzato il micro-partitioning) Partizionamento
Clustering Clustering
Funzioni definite dall'utente avanzate per la sicurezza Funzioni definite dall'utente autorizzate

Confronto dell'architettura

Snowflake e BigQuery sono entrambi data warehouse analitici, presentano alcune differenze fondamentali nell'architettura.

L'architettura di Snowflake è un ibrido del tradizionale database a disco condiviso e architetture di database senza condiviso. Come per le architetture senza condivisione, i dati in Snowflake vengono gestiti in un servizio di archiviazione di oggetti cloud separato. Come nel caso di un'architettura a disco condiviso, le query in Snowflake utilizzano cluster di calcolo dedicati. In Snowflake, ogni cluster gestisce parti memorizzate nella cache dell'intero set di dati per accelerare le prestazioni delle query. Per ulteriori informazioni, vedi Architettura Snowflake.

L'architettura di BigQuery è molto diversa da quella tradizionale soluzioni di data warehouse su cloud o sistemi MPP basati su nodi. Disaccoppia l'archiviazione e computing, il che consente loro di scalare in modo indipendente on demand. Per ulteriori informazioni le informazioni, vedi Dietro le quinte di BigQuery.

Confronto dell'interfaccia utente

L'interfaccia web Snowflake rispecchia l'interfaccia a riga di comando (CLI) di Snowflake. Entrambe le interfacce consentono di:

  • Gestisci database
  • Gestisci i warehouse
  • Gestire query e fogli di lavoro
  • Visualizzare le query storiche

L'interfaccia web ti consente anche di gestire la password e il nome utente Snowflake preferenze.

Il client dell'interfaccia a riga di comando Snowflake utilizza SnowSQL per connettersi a Snowflake ed eseguire SQL query e altre operazioni.

L'interfaccia di BigQuery è integrata Console Google Cloud e contiene un elenco di risorse BigQuery che puoi visualizzare:

  • La sezione BigQuery Studio mostra i tuoi set di dati, tabelle, viste e ad altre risorse BigQuery. Qui puoi creare e gestire eseguire query, lavorare con tabelle e viste, consultare BigQuery della cronologia dei job ed eseguire altre attività comuni di BigQuery.
  • La sezione Data Transfer apre la pagina di BigQuery Data Transfer Service.
  • La sezione Query pianificate mostra le query pianificate.
  • La sezione Gestione della capacità mostra gli impegni degli slot, le prenotazioni e assegnazioni di prenotazione.
  • La sezione BI Engine apre la pagina di BigQuery BI Engine.

BigQuery include anche uno strumento a riga di comando basato su Python. Per per ulteriori informazioni, vedi utilizzando lo strumento a riga di comando bq.

Sicurezza

Quando esegui la migrazione da Snowflake a BigQuery, devi considerare le che Google Cloud in generale e BigQuery in particolare, gestisce la sicurezza in modo diverso da Snowflake.

Fiocco di neve ha varie funzionalità di sicurezza ad esempio:

  • Accesso alla rete e al sito
  • Autenticazione dell'account e degli utenti
  • Sicurezza degli oggetti
  • Protezione dei dati
  • Convalide della sicurezza

La sicurezza su Snowflake si basa sulle funzionalità del tuo cloud provider. Offre un controllo granulare sull'accesso agli oggetti, sulle operazioni degli oggetti e su chi può creare o modificare i criteri di controllo dell'accesso.

Il parallelo di BigQuery ai privilegi di controllo dell'accesso di Snowflake sono Ruoli IAM (Identity and Access Management) in Google Cloud. Questi privilegi determinano le operazioni consentite su una risorsa. I privilegi vengono applicati a livello di Google Cloud.

Crittografia

In Snowflake, la sicurezza a livello di colonna è supportata nella versione Enterprise e le chiavi di crittografia gestite dal cliente sono supportate nella versione Business Critical. Queste versioni hanno prezzi diversi. In BigQuery, tutte le funzionalità e misure di sicurezza avanzate sono offerte come funzionalità standard ad accesso meno frequente per ridurre i costi di archiviazione.

Snowflake fornisce la crittografia end-to-end in cui cripta automaticamente tutti i dati archiviati. Google Cloud fornisce la stessa funzionalità criptando tutti i dati rest e dentro trasporto pubblico per impostazione predefinita.

Analogamente alla versione Snowflake Business Critical, BigQuery supporta chiavi di crittografia gestite dal cliente per gli utenti che vogliono controllare e gestire le chiavi di crittografia delle chiavi Cloud Key Management Service. BigQuery consente inoltre crittografia a livello di colonna. Per saperne di più sulla crittografia in Google Cloud, consulta Crittografia at-rest in Google Cloud e Crittografia dei dati in transito in Google Cloud.

Ruoli

I ruoli sono le entità a cui è possibile concedere privilegi sugli oggetti protetti e revocati.

Snowflake supporta i seguenti due tipi di ruoli:

  • Ruoli definiti dal sistema: Questi ruoli includono privilegi relativi al sistema e alla sicurezza e sono con privilegi relativi alla gestione dell'account.
  • Ruoli personalizzati: Puoi creare questi ruoli utilizzando i ruoli SECURITYADMIN o utilizzando qualsiasi con il privilegio CREATE ROLE. Ogni ruolo personalizzato in Snowflake composti da privilegi.

In IAM, le autorizzazioni sono raggruppate in ruoli. IAM offre tre tipi di ruoli:

  • Ruoli di base: ad esempio Proprietario, Editor e Visualizzatore. Puoi applicare questi ruoli a livello di risorsa di progetto o servizio utilizzando Console Google Cloud, l'API Identity and Access Management o gcloud CLI. In generale, per la massima sicurezza, ti consigliamo di utilizzare Ruoli specifici di BigQuery per seguire il principio del di accesso.
  • Ruoli predefiniti: Questi ruoli forniscono un accesso più granulare alle funzionalità di un prodotto (come BigQuery) e sono pensate per supportare casi d'uso comuni modelli 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 dei ruoli, ma implementa una risorsa nella gerarchia. La gerarchia IAM include i livelli organizzazione, cartella, progetto e risorsa livello. Puoi impostare i ruoli IAM a qualsiasi livello della gerarchia e le risorse ereditano tutti i criteri delle rispettive risorse padre.

Sia Snowflake che BigQuery supportano il controllo dell'accesso a livello di tabella. Le autorizzazioni a livello di tabella determinano gli utenti, i gruppi e gli account di servizio che possono accedere a una tabella o a una visualizzazione. Puoi concedere a un utente l'accesso a tabelle o senza concedere all'utente l'accesso al set di dati completo.

Snowflake utilizza anche sicurezza a livello di riga e sicurezza a livello di colonna.

In BigQuery, IAM fornisce controllo dell'accesso a livello di tabella. Per un accesso più granulare, puoi anche controllo dell'accesso a livello di colonna o 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 sul tipo.

Puoi anche creare visualizzazioni autorizzate per limitare l'accesso ai dati per un controllo dell'accesso più granulare in modo che gli utenti possono eseguire query su una vista senza avere accesso in lettura alle tabelle sottostanti.

Aspetti da considerare durante la migrazione

Esistono alcune funzionalità di Snowflake a cui non puoi trasferire direttamente in BigQuery. Ad esempio, BigQuery non offre il supporto integrato per gli scenari seguenti. In questi scenari, potrebbe essere necessario per utilizzare altri servizi in Google Cloud.

  • Viaggio nel tempo: in BigQuery puoi utilizzare viaggio nel tempo di accedere ai dati da qualsiasi punto negli ultimi sette giorni. Per accedere ai dati per oltre sette giorni, valuta la possibilità di esportare snapshot pianificati regolarmente. Snowflake ti consente di accedere ai dati storici (dati che sono stati modificati o eliminati) in qualsiasi momento all'interno di un periodo definito. Puoi impostare questo periodo su qualsiasi valore compreso tra 0 e 90 giorni.

  • Flussi: BigQuery supporta CDC (Change Data Capture) con Datastream. Puoi anche utilizzare software CDC, come Debezium per scrivere record in BigQuery Dataflow. Per ulteriori informazioni sulla progettazione manuale di una pipeline CDC con per BigQuery, consulta Migrazione dei data warehouse a BigQuery: Change Data Capture (CDC). In Snowflake, un oggetto flusso registra le modifiche data manipulation language apportate alle tabelle e anche ai metadati su ogni modifica, in modo da azioni con i dati modificati.

  • Attività:BigQuery consente di pianificare query e flussi o l'integrazione in flussi nelle query Datastream. Snowflake può combinare le attività con i flussi di dati delle tabelle per l'estrazione continua, caricare e trasferire i flussi di lavoro per elaborare le modifiche recenti righe della tabella.

  • Funzioni esterne:BigQuery supporta mediante Cloud Functions. Tuttavia, puoi anche utilizzare le funzioni definite dall'utente come UDF SQL, anche se queste funzioni non vengono eseguite al di fuori di BigQuery. In Snowflake, una funzione esterna chiama il codice che viene eseguito all'esterno di Snowflake. Ad esempio, le informazioni inviate a un servizio remoto di solito vengono inoltrate tramite un servizio di proxy.

Migrazione dei dati da Snowflake a BigQuery

Questa sezione descrive come configurare e avviare la migrazione da Da Snowflake a BigQuery in base al framework descritto in Migrazione dei data warehouse a BigQuery: cosa e come eseguire la migrazione.

Architettura

Per avviare la migrazione, esegui sia Snowflake che BigQuery. La il seguente diagramma mostra un'architettura che influisce minimamente sulle operations. Trasferendo dati puliti e controllati dalla qualità, puoi riutilizzare di strumenti e processi esistenti, riducendo al contempo i carichi di lavoro in BigQuery. Puoi e convalidare report e dashboard rispetto alle versioni precedenti. Tuttavia, perché I dati OLAP vengono gestiti in posizioni ridondanti, questa operazione non prevede costi efficace. Inoltre, estende il tempo di elaborazione.

  • Il punto 1 mostra lo spostamento dei dati da Snowflake a Cloud Storage.
  • Il punto 2 mostra la persistenza dei dati in BigQuery.
  • Il punto 3 mostra come vengono inviati i dati all'utente finale.

Puoi convalidare report e dashboard rispetto a iterazioni precedenti. Per ulteriori informazioni le informazioni, vedi Migrazione dei data warehouse a BigQuery: verifica e convalida.

Una migrazione di Snowflake a BigQuery in corso.

L'architettura finale per la migrazione del data warehouse include tutti i dati dei sistemi di origine resi esistenti direttamente in Google Cloud. In base al numero e la complessità dei sistemi di origine, la realizzazione di questa architettura può ulteriormente affrontando i sistemi di origine uno alla volta secondo la priorità, interdipendenze, rischi di integrazione o altri fattori aziendali.

Il seguente diagramma presuppone la migrazione delle pipeline di dati e l'importazione verso in Google Cloud.

  • Il punto 1 mostra i punti di integrazione sia sincrona che asincroni. L'integrazione sincrona avviene, ad esempio, tra origini dati e con App Engine quando si gestiscono casi d'uso che richiedono azioni esplicite dell'utente nell'ambito del flusso.
  • Il punto 2 mostra con Pub/Sub per grandi volumi di dati sugli eventi simultanei.
  • Il punto 3 mostra la persistenza dei dati utilizzando uno o più prodotti Google Cloud, a seconda della natura dei dati.
  • Il punto 4 mostra il processo di estrazione, trasformazione e caricamento (ETL) in in BigQuery.

Da Snowflake a BigQuery dopo la migrazione.

prepara l'ambiente Cloud Storage

Google Cloud offre diversi modi per trasferire i dati su BigQuery utilizzando altri strumenti ETL. Lo schema è il seguente:

  1. Estrai i dati dalla tua origine: copia i file estratti da l'origine in fase di archiviazione temporanea nell'ambiente on-premise. Per ulteriori informazioni le informazioni, vedi Migrazione dei data warehouse in BigQuery: estrazione dei dati di origine.

  2. Trasferisci i dati a un bucket Cloud Storage gestione temporanea: dopo devi completare l'estrazione dei dati dall'origine, li trasferisci in una in Cloud Storage. A seconda della quantità di dati da importare il trasferimento e la larghezza di banda di rete disponibile, sono disponibili diverse opzioni.

    È importante assicurarsi che la posizione il set di dati BigQuery e l'origine dati esterna oppure di bucket Cloud Storage si trovano nella stessa regione. Per ulteriori informazioni considerazioni sulla posizione geografica per il caricamento dei dati da Cloud Storage, consulta Caricamento in batch dei dati.

  3. Carica i dati dal bucket Cloud Storage in BigQuery: i tuoi dati si trovano ora in Cloud Storage più vicino alla sua destinazione. Esistono diverse opzioni per per caricare i dati in BigQuery. Queste opzioni dipendono da come molto da trasformare i dati. In alternativa, puoi trasformare i tuoi dati in BigQuery seguendo l'approccio ETL.

    Quando importi i dati in blocco da un file JSON, un file Avro o file CSV, BigQuery rileva automaticamente lo schema, così necessario predefinire la data. Per avere una panoramica dettagliata della migrazione dello schema, per i carichi di lavoro EDW, consulta Procedura di migrazione di schemi e dati.

Tipi di dati, proprietà e formati file supportati

Snowflake e BigQuery supportano gran parte degli stessi tipi di dati, anche se a volte usano nomi diversi. Per un elenco completo dei dati supportati in Snowflake e BigQuery, consulta la sezione Tipi di dati di il fiocco di neve Riferimento alla traduzione SQL. Puoi anche usare il traduttore SQL batch per tradurre Per ulteriori informazioni sui tipi di dati supportati da BigQuery, consulta Tipi di dati GoogleSQL.

Snowflake può esportare dati nei seguenti formati file. Puoi caricare formati direttamente in BigQuery:

Modifiche allo schema

Se stai pianificando modifiche allo schema nella migrazione a BigQuery, ti consigliamo di eseguire prima la migrazione dello schema così com'è. BigQuery supporta un'ampia gamma di pattern di progettazione di modello dei dati, come schema a stella o Schema Snowflake. A causa di questo supporto, non è necessario aggiornare le pipeline di dati upstream per un nuovo schema e potrai usare gli strumenti di migrazione automatizzati per i dati e lo schema.

Aggiornamento di uno schema

Una volta che i dati sono in BigQuery, puoi sempre aggiornare dello schema, ad esempio aggiungendo colonne alla definizione dello schema o rilassando un modalità della colonna da REQUIRED a NULLABLE.

Ricorda che BigQuery utilizza convenzioni di denominazione sensibili alle maiuscole per il nome della tabella, mentre Snowflake utilizza pattern di denominazione senza distinzione tra maiuscole e minuscole. Questa convenzione significa che potrebbe essere necessario rivedere eventuali incongruenze nel convenzioni di denominazione delle tabelle che potrebbero esistere in Snowflake e correggere eventuali incoerenze emerse durante il passaggio a BigQuery. Per ulteriori informazioni informazioni sulla modifica dello schema, consulta Modifica degli schemi delle tabelle.

Alcune modifiche dello schema non sono supportate direttamente in BigQuery e richiedono soluzioni manuali, tra cui:

  • Modifica del nome di una colonna.
  • Modifica del tipo di dati di una colonna.
  • Modifica della modalità di una colonna (ad eccezione di rilassare REQUIRED colonne a NULLABLE).

Per istruzioni specifiche su come implementare manualmente queste modifiche allo schema, vedi Modifica manualmente gli schemi delle tabelle.

Ottimizzazione

Dopo la migrazione dello schema, puoi testare le prestazioni e apportare ottimizzazioni in base ai risultati. Ad esempio, puoi introdurre il partizionamento per rendere i dati in modo più efficiente da gestire ed eseguire query. Partizionamento in BigQuery si riferisce a una tabella speciale divisa in segmenti chiamati partizioni. Il partizionamento è diverso dal micropartizionamento di Snowflake, che avviene automaticamente al caricamento dei dati. Il partizionamento di BigQuery ti consente migliorare le prestazioni delle query e il controllo dei costi eseguendo il partizionamento in base ai tempi di importazione, un timestamp o un intervallo di numeri interi. Per ulteriori informazioni, vedi Introduzione alle tabelle partizionate.

Tabelle in cluster

Le tabelle in cluster sono un'altra ottimizzazione dello schema. BigQuery, come Snowflake ti consente di raggruppare le tabelle in modo da organizzarle automaticamente dati in base ai contenuti di una o più colonne nello schema della tabella. BigQuery utilizza le colonne da te specificate per collocare le relative e i dati di Google Cloud. Il clustering può migliorare le prestazioni di alcuni tipi di query, come come query che usano clausole di filtro o query che aggregano dati. Per ulteriori informazioni su come funzionano le tabelle in cluster in BigQuery, consulta Introduzione alle tabelle in cluster.

Strumenti di migrazione

Nell'elenco che segue vengono descritti gli strumenti che puoi utilizzare per eseguire la migrazione dei dati da: Da Snowflake a BigQuery. Questi strumenti vengono combinati Esempi di migrazione mediante pipeline per creare le pipeline di migrazione end-to-end.

  • Comando COPY INTO <location>: Utilizza questo comando in Snowflake per unload dei dati da una tabella Snowflake in un bucket Cloud Storage specificato. Per una configurazione end-to-end vedi gli esempi Da Snowflake a BigQuery (snowflake2bq) su GitHub.
  • Apache Sqoop: Per estrarre i dati da Snowflake in HDFS o Cloud Storage: inviare job Hadoop con il driver JDBC di Sqoop e Snowflake. Sqoop esegue Dataproc completamente gestito di Google Cloud.
  • JSON Snowflake: 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:

  • BigQuery Data Transfer Service: Esegui un trasferimento batch automatizzato dei dati di Cloud Storage in BigQuery con questo servizio completamente gestito. Questo strumento richiede di esportare prima i dati di Snowflake in Cloud Storage.
  • gsutil: Copia i file Snowflake scaricati in Cloud Storage con questo a strumento a riga di comando.
  • Strumento a riga di comando bq: consente di interagire con BigQuery utilizzando questo strumento a riga di comando. I casi d'uso comuni includono la creazione di schemi delle tabelle BigQuery, caricamento dei dati di Cloud Storage nelle tabelle ed esecuzione di query.
  • Librerie client di Cloud Storage: Copia i file Snowflake scaricati in Cloud Storage con un personalizzato che utilizza le librerie client di Cloud Storage.
  • Librerie client di BigQuery: Interagisci con BigQuery con uno strumento personalizzato basato su in alto nella libreria client di BigQuery.
  • Strumento di pianificazione delle query BigQuery: Pianifica query SQL ricorrenti con questa funzionalità integrata di BigQuery funzionalità.
  • Cloud Composer: Utilizza questo ambiente Apache Airflow completamente gestito per l'orchestrazione Job e trasformazioni di caricamento di BigQuery.

Per ulteriori informazioni sul caricamento dei dati in BigQuery, vedi Caricamento di dati in BigQuery

Esempi di migrazione mediante pipeline

Le sezioni seguenti mostrano esempi di come eseguire la migrazione dei dati da Snowflake in BigQuery utilizzando tre diverse tecniche: estrazione e caricamento, ETL e strumenti dei partner.

Estrai e carica

La tecnica di estrazione e caricamento offre due metodi:

  • Usa una pipeline per eseguire l'unload dei dati da Snowflake
  • Utilizzare una pipeline e un driver JDBC per esportare i dati da Snowflake

Usa una pipeline per eseguire l'unload dei dati da Snowflake

A eseguire l'unload dei dati da Snowflake direttamente in Cloud Storage (opzione consigliata) oppure scaricare i dati e copiarlo in Cloud Storage utilizzando gsutil o Librerie client di Cloud Storage, usa lo strumento snowflake2bq per eseguire la migrazione utilizzando il comando Snowflake COPY INTO <location>.

Quindi caricherai i dati di Cloud Storage in BigQuery con uno dei seguenti strumenti:

  • BigQuery Data Transfer Service
  • Strumento a riga di comando bq
  • Librerie client dell'API BigQuery

Utilizzare una pipeline e un driver JDBC per esportare i dati da Snowflake

Utilizza uno qualsiasi dei seguenti prodotti per esportare i dati di Snowflake con JDBC di Snowflake conducente:

Estrai, trasforma e carica

Se vuoi trasformare i dati prima di caricarli in BigQuery, puoi aggiungere un passaggio di trasformazione nelle pipeline descritto nella precedente sezione Estrai e carica.

Trasforma i dati Snowflake

Per trasformare i dati prima di caricarli in BigQuery: unload dei dati direttamente da Snowflake a Cloud Storage o utilizzare gsutil per e copiare i dati, come descritto nella precedente sezione Estrai e carica.

Carica i dati Snowflake

Dopo aver trasformato i dati, caricali in BigQuery con uno dei seguenti metodi:

Utilizzare una pipeline e un driver JDBC per trasformare ed esportare i dati da Snowflake

Aggiungi un passaggio di trasformazione nelle seguenti opzioni della pipeline, come descritto in precedenza Estrai e carica.

Potresti avere un caso d'uso di estrazione, caricamento e trasformazione da cui caricare i dati Snowflake in BigQuery e poi trasformarlo. Per eseguire questa operazione carica i tuoi dati da Snowflake a una tabella temporanea di BigQuery utilizzando uno dei metodi descritti nella sezione Estrai e carica precedente. Quindi, esegui delle query SQL nella tabella temporanea e scrivi l'output nel modulo in BigQuery.

Strumenti dei partner per la migrazione

Esistono diversi fornitori specializzati nel campo della migrazione EDW. Per un un elenco dei partner principali e delle soluzioni fornite; consulta Sito web del partner BigQuery di Google Cloud.

Esempi del processo di esportazione

Le seguenti sezioni mostrano un esempio di esportazione di dati da Snowflake a BigQuery che utilizza il comando COPY INTO <location> di Snowflake. Per una procedura dettagliata e passo passo che include esempi di codice, vedi il Strumento per i servizi professionali di Google Cloud da Snowflake a BigQuery.

Prepara l'esportazione

Per l'unload, utilizza le istruzioni SQL Snowflake per creare un'istanza specifica del formato file con nome.

Questo tutorial utilizza my_parquet_unload_format per il formato file, ma puoi utilizzare un altro nome.

   create or replace file format my_parquet_unload_format
     type = 'PARQUET'
     field_delimiter = '|'

Esportare i dati Snowflake

Dopo aver preparato i dati, devi spostarli in Google Cloud. Puoi eseguire questo passaggio in uno dei due seguenti modi:

  1. Esportazione dei dati direttamente in Cloud Storage da Snowflake.
  2. Gestione temporanea dei dati Snowflake in un Amazon Simple Storage Service (Amazon S3) o Archiviazione BLOB di Azure.

Per evitare un ulteriore hop di dati, esporta direttamente i tuoi dati.

Esporta i dati Snowflake direttamente in Cloud Storage

Le seguenti istruzioni mostrano come utilizzare il comando Snowflake COPY per unload dei dati da Snowflake a Cloud Storage:

  1. In Snowflake, configurare un oggetto di integrazione Storage per consentire a Snowflake di scrivere in un bucket Cloud Storage a cui viene fatto riferimento di Cloud Storage esterno.

    Questo passaggio prevede diversi passaggi secondari.

    1. Crea un'integrazione con CREATE STORAGE INTEGRATION :

      create storage integration gcs_int
        type = external_stage
        storage_provider = gcs
        enabled = true
        storage_allowed_locations = ('gcs://mybucket/unload/')
      
    2. Recuperare l'account di servizio Cloud Storage per Snowflake con DESCRIBE INTEGRATION e concedere all'account di servizio le autorizzazioni per accedere Bucket Cloud Storage selezionato come area temporanea:

      desc storage integration gcs_int;
      
      +-----------------------------+---------------+-----------------------------------------------------------------------------+------------------+
      | property                    | property_type | property_value                                                              | property_default |
      +-----------------------------+---------------+-----------------------------------------------------------------------------+------------------|
      | ENABLED                     | Boolean       | true                                                                        | false            |
      | STORAGE_ALLOWED_LOCATIONS   | List          | gcs://mybucket1/path1/,gcs://mybucket2/path2/                               | []               |
      | STORAGE_BLOCKED_LOCATIONS   | List          | gcs://mybucket1/path1/sensitivedata/,gcs://mybucket2/path2/sensitivedata/   | []               |
      | STORAGE_GCP_SERVICE_ACCOUNT | String        | service-account-id@project1-123456.iam.gserviceaccount.com                  |                  |
      +-----------------------------+---------------+---------------------------------------------------------
      --------------------+------------------+
      
    3. Crea una fase di Cloud Storage esterna che fa riferimento che hai creato con CREATE STAGE :

      create or replace stage my_ext_unload_stage
        url='gcs://mybucket/unload'
        storage_integration = gcs_int
        file_format = my_parquet_unload_format;
      
  2. Utilizza il comando COPY INTO <location> per copiare i dati dal Tabella di database Snowflake in un bucket Cloud Storage specificando l'oggetto esterno dello stage che hai creato nel passaggio precedente:

    copy into @my_ext_unload_stage/d1
    from mytable;
    

Esporta i dati Snowflake in Cloud Storage tramite Storage Transfer Service da Amazon S3

L'esempio seguente mostra come unload di dati da una tabella Snowflake a un bucket Amazon S3 con il comando COPY:

  1. In Snowflake, configurare un oggetto di integrazione Storage per consentire a Snowflake di scrivere in un bucket Amazon S3 a cui viene fatto riferimento in un dalla fase esterna di Cloud Storage.

    Questo passaggio prevede configurazione delle autorizzazioni di accesso al bucket Amazon S3, creando il ruolo AWS IAM, e la creazione di un'integrazione dello spazio di archiviazione in Snowflake con il comando CREATE STORAGE INTEGRATION:

    create storage integration s3_int
      type = external_stage
      storage_provider = s3
      enabled = true
      storage_aws_role_arn = 'arn:aws:iam::001234567890:role/myrole'
      storage_allowed_locations = ('s3://unload/files/')
    
  2. Recuperare l'utente AWS IAM con Comando DESCRIBE INTEGRATION:

    desc integration s3_int;
    
    +---------------------------+---------------+================================================================================+------------------+
    | property                  | property_type | property_value                                                                 | property_default |
    +---------------------------+---------------+================================================================================+------------------|
    | ENABLED                   | Boolean       | true                                                                           | false            |
    | STORAGE_ALLOWED_LOCATIONS | List          | s3://mybucket1/mypath1/,s3://mybucket2/mypath2/                                | []               |
    | STORAGE_BLOCKED_LOCATIONS | List          | s3://mybucket1/mypath1/sensitivedata/,s3://mybucket2/mypath2/sensitivedata/    | []               |
    | STORAGE_AWS_IAM_USER_ARN  | String        | arn:aws:iam::123456789001:user/abc1-b-self1234                                 |                  |
    | STORAGE_AWS_ROLE_ARN      | String        | arn:aws:iam::001234567890:role/myrole                                          |                  |
    | STORAGE_AWS_EXTERNAL_ID   | String        | MYACCOUNT_SFCRole=                                                   |                  |
    +---------------------------+---------------+================================================================================+------------------+
    
  3. Concedi all'utente AWS IAM le autorizzazioni per accedere ad Amazon nel bucket S3 e creare una fase esterna Comando CREATE STAGE:

      create or replace stage my_ext_unload_stage url='s3://unload/files/'
        storage_integration = s3_int
        file_format = my_parquet_unload_format;
    
  4. Utilizza il comando COPY INTO <location> per copiare i dati da Snowflake nel bucket Amazon S3 specificando l'oggetto stage esterno creato in precedenza:

      copy into @my_ext_unload_stage/d1 from mytable;
    
  5. Trasferisci i file esportati in Cloud Storage utilizzando Storage Transfer Service.

Esporta i dati Snowflake in Cloud Storage tramite altri cloud provider:

Archiviazione BLOB di Azure Segui i passaggi descritti in Unload in Microsoft Azure. Quindi, trasferisci i file esportati in Cloud Storage utilizzando Storage Transfer Service.

Bucket Amazon S3 Segui i passaggi descritti in l'unload in Amazon S3. Quindi, trasferisci i file esportati in Cloud Storage utilizzando Storage Transfer Service.

Passaggi successivi