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.
  • Per gli account Snowflake ospitati su Google Cloud, i dati vengono prima organizzati in gestione temporanea nel bucket Cloud Storage, che viene poi trasferito a BigQuery con BigQuery Data Transfer Service.
  • Per gli account Snowflake ospitati su Azure, i dati vengono prima inseriti temporaneamente nel tuo contenitore Azure Blob Storage, che viene poi trasferito a BigQuery con BigQuery Data Transfer Service.

Limitazioni

I trasferimenti di dati effettuati utilizzando il connettore Snowflake sono soggetti alle seguenti limitazioni:

  • 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, al contenitore Azure Blob Storage o al bucket Cloud Storage è limitata dal warehouse Snowflake che hai scelto per questo trasferimento.
  • 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 di Amazon S3.

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.

  1. Preparare il Google Cloud progetto
  2. Ruoli BigQuery richiesti
  3. Prepara il bucket di gestione temporanea
  4. Crea un utente Snowflake con le autorizzazioni richieste
  5. Aggiungere policy di rete
  6. (Facoltativo) Rilevamento e mappatura dello schema
  7. Valuta Snowflake per verificare la presenza di tipi di dati non supportati
  8. (Facoltativo) Attiva i trasferimenti incrementali
  9. (Facoltativo) Abilita la connettività privata
  10. Raccogliere informazioni sul trasferimento
  11. Se prevedi di specificare una chiave di crittografia gestita dal cliente (CMEK), assicurati che il tuo service account disponga delle autorizzazioni per criptare e decriptare e di disporre dell'ID risorsa chiave Cloud KMS necessario per utilizzare CMEK. Per informazioni su come funziona la CMEK con i trasferimenti, vedi Specifica la chiave di crittografia con i trasferimenti.

Prepara il progetto Google Cloud

Crea e configura il tuo progetto Google Cloud per un trasferimento Snowflake con i seguenti passaggi:

  1. Crea un Google Cloud progetto o selezionane uno esistente.

  2. Verifica di aver completato tutte le azioni necessarie per attivare BigQuery Data Transfer Service.

  3. 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 di dati BigQuery Data Transfer Service, chiedi all'amministratore di concederti il ruolo IAM Amministratore BigQuery (roles/bigquery.admin) nel tuo progetto. 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 di dati BigQuery Data Transfer Service. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare un trasferimento di dati di BigQuery Data Transfer Service sono necessarie le seguenti autorizzazioni:

  • Autorizzazioni BigQuery Data Transfer Service:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Autorizzazioni BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Per maggiori informazioni, vedi Concedere l'accesso a bigquery.admin.

Prepara il bucket di gestione temporanea

Per completare un trasferimento di dati Snowflake, devi creare un bucket di staging e poi configurarlo per consentire l'accesso in scrittura da Snowflake.

Seleziona una delle seguenti opzioni:

AWS

Bucket di staging per l'account Snowflake ospitato su AWS

Per l'account Snowflake ospitato su AWS, crea un bucket Amazon S3 per preparare i dati Snowflake prima che vengano caricati in BigQuery.

  1. Crea un bucket Amazon S3.

  2. Crea e configura un oggetto di integrazione dell'archiviazione Snowflake per consentire a Snowflake di scrivere dati nel bucket Amazon S3 come area di gestione temporanea esterna.

Per consentire l'accesso in lettura al tuo bucket Amazon S3, devi anche:

  1. Crea un utente Amazon IAM dedicato e concedigli la policy AmazonS3ReadOnlyAccess.

  2. Crea una coppia di chiavi di accesso Amazon per l'utente IAM.

Azure

Container Azure Blob Storage di staging per l'account Snowflake ospitato su Azure

Per gli account Snowflake ospitati su Azure, crea un container Azure Blob Storage per preparare i dati Snowflake prima che vengano caricati in BigQuery.

  1. Crea un account di archiviazione Azure e un container di archiviazione al suo interno.
  2. Crea e configura un oggetto di integrazione dell'archiviazione Snowflake per consentire a Snowflake di scrivere dati nel container di archiviazione Azure come area di gestione temporanea esterna. Tieni presente che il passaggio 3: creazione di uno stage esterno può essere ignorato perché non lo utilizziamo.

Per consentire l'accesso in lettura al tuo contenitore Azure, genera un token SAS.

Google Cloud

Bucket di staging per l'account Snowflake ospitato su Google Cloud

Per gli account Snowflake ospitati da Google Cloud, crea un bucket Cloud Storage per preparare i dati Snowflake prima che vengano caricati in BigQuery.

  1. Crea un bucket Cloud Storage.
  2. Crea e configura un oggetto di integrazione dell'archiviazione Snowflake per consentire a Snowflake di scrivere dati nel bucket Cloud Storage come area di staging esterna.
  3. Per consentire l'accesso al bucket di staging, concedi all'agente di servizio DTS il ruolo roles/storage.objectViewer con il seguente comando:

    gcloud storage buckets add-iam-policy-binding gs://STAGING_BUCKET_NAME \
      --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com \
      --role=roles/storage.objectViewer

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 creando
  • WAREHOUSE_NAME: il nome del data warehouse
  • DATABASE_NAME: il nome del database Snowflake
  • SCHEMA_NAME: il nome dello schema Snowflake
  • TABLE_NAME: il nome di Snowflake incluso in questo trasferimento di dati
  • STORAGE_INTEGRATION_OBJECT_NAME: il nome dell'oggetto di integrazione dell'archiviazione Snowflake.

Generare una coppia di chiavi per l'autenticazione

A causa del ritiro degli accessi con password a un solo fattore da parte di Snowflake, ti consigliamo di utilizzare la coppia di chiavi per l'autenticazione.

Puoi configurare una coppia di chiavi generando una coppia di chiave RSA criptata o non criptata, quindi assegnando la chiave pubblica a un utente Snowflake. Per saperne di più, consulta Configurazione dell'autenticazione con coppie di chiavi.

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. Per saperne di più, consulta Configura le policy di rete per i trasferimenti Snowflake.

Rilevamento e mappatura dello schema

Per definire lo schema, puoi utilizzare BigQuery Data Transfer Service per rilevare automaticamente lo schema e il mapping dei tipi di dati durante il trasferimento dei dati da Snowflake a BigQuery. In alternativa, puoi utilizzare il motore di traduzione per definire manualmente lo schema e i tipi di dati.

Per saperne di più, vedi Rilevamento e mappatura dello schema.

Attiva i trasferimenti incrementali

Per configurare un trasferimento incrementale dei dati di Snowflake, vedi Configurare i trasferimenti incrementali per Snowflake.

Abilita la connettività privata

Se vuoi creare un trasferimento di dati Snowflake privato, devi configurare la rete per la connettività privata.

Raccogliere informazioni sul trasferimento

Raccogli le informazioni necessarie per configurare la migrazione con BigQuery Data Transfer Service:

Configura un trasferimento Snowflake

Seleziona una delle seguenti opzioni:

Console

  1. Vai alla pagina Trasferimenti di dati nella console Google Cloud .

    Vai a Trasferimenti dati

  2. Fai clic su Crea trasferimento.

  3. Nella sezione Tipo di origine, seleziona Migrazione Snowflake dall'elenco Origine.

  4. 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.

  5. Nella sezione Impostazioni destinazione, scegli il set di dati che hai creato dall'elenco Set di dati.

  6. Nella sezione Credenziali Snowflake, segui questi passaggi:

    1. 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.
    2. 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.
    3. Per Authentication Mechanism (Meccanismo di autenticazione), seleziona un metodo di autenticazione utente Snowflake:

      PASSWORD

      • In Password, inserisci la password dell'utente Snowflake.

      KEY_PAIR

      • Per Chiave privata, inserisci la chiave privata collegata alla chiave pubblica associata all'utente Snowflake.
      • Per Is Private Key Encrypted (La chiave privata è criptata), seleziona questo campo se la chiave privata è criptata con una passphrase.
      • In Passphrase chiave privata, inserisci la passphrase per la chiave privata criptata. Questo campo è obbligatorio se hai selezionato Is Private Key Encrypted. Per saperne di più, vedi Generare una coppia di chiavi per l'autenticazione.
    • Per Warehouse, inserisci un warehouse utilizzato per l'esecuzione di questo trasferimento di dati.
    • In Database Snowflake, inserisci il nome del database Snowflake che contiene le tabelle incluse in questo trasferimento di dati.
    • Per Schema Snowflake, inserisci il nome dello schema Snowflake che contiene le tabelle incluse in questo trasferimento di dati.
  7. Nella sezione Configurazione dell'archiviazione, segui questi passaggi:

    1. Per Nome oggetto integrazione storage, inserisci il nome dell'oggetto integrazione storage Snowflake.
    2. (Facoltativo) Per Dimensioni massime file, specifica la dimensione massima di ogni file scaricato da Snowflake nella posizione di staging (in MB).
    3. Per Cloud provider, seleziona AWS, AZURE o GCP a seconda del cloud provider che ospita il tuo account Snowflake.

      AWS

      Azure

      Google Cloud

  8. Nella sezione Service Account, segui questi passaggi:

    1. In Service account, inserisci un account di servizio da utilizzare con questo trasferimento di dati. Il 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 e storage.objects.get.
  9. Nella sezione Configurazione schema, segui questi passaggi:

    1. Per Tipo di importazione, seleziona Completa o Incrementale. Per maggiori informazioni, consulta Comportamento dell'importazione dati.
    2. 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 denominate lineitem e ordertb.
      • .* corrisponde a tutte le tabelle.
    3. (Facoltativo) Per Utilizza l'output di BigQuery Translation Engine, seleziona questo campo se vuoi specificare un percorso di output di traduzione personalizzato.
    4. (Facoltativo) Per Percorso GCS di output della traduzione, specifica un percorso della cartella Cloud Storage che contiene i file di mapping dello schema del motore di traduzione. Puoi lasciare questo campo vuoto per consentire al connettore Snowflake di rilevare automaticamente lo schema.
      • Il percorso deve seguire il formato translation_target_base_uri/metadata/config/db/schema/ e deve terminare con /.
    5. (Facoltativo) Per Percorso file schema personalizzato, specifica il percorso Cloud Storage di un file di schema personalizzato.
    6. (Facoltativo) Per Mappa NUMERO Snowflake di scala zero a INT64 BigQuery, seleziona questo campo se vuoi che i tipi NUMBER(p, 0) di Snowflake vengano mappati a INT64 di BigQuery.
  10. Nella sezione Connettività di rete, segui questi passaggi:

    1. Per Utilizza rete privata, se stai creando un trasferimento di dati privati, seleziona True.
    2. Per il collegamento di servizio PSC, se stai creando una connessione privata, inserisci l'URI del collegamento di servizio. Per saperne di più, consulta Creare una configurazione di trasferimento privato Snowflake.
    3. Per Private Network Service, se stai creando un trasferimento privato di dati, inserisci il self-link di Service Directory. Per saperne di più, consulta Creare una configurazione di trasferimento privato Snowflake.
  11. (Facoltativo) Nella sezione Opzioni di notifica, segui questi passaggi:

    1. 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.
    2. 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.
  12. Se utilizzi le CMEK, nella sezione Opzioni avanzate, seleziona Chiave gestita dal cliente. Viene visualizzato un elenco di CMEK disponibili tra cui scegliere. Per informazioni su come funzionano le CMEK con BigQuery Data Transfer Service, vedi Specificare la chiave di crittografia con i trasferimenti.

  13. Fai clic su Salva.

  14. 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 del 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"}'.

Puoi configurare i seguenti parametri per la configurazione del trasferimento Snowflake:

  • account_identifier: specifica 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: specifica il nome utente dell'utente Snowflake le cui credenziali e autorizzazione vengono utilizzate per accedere al tuo database per trasferire le tabelle Snowflake.
  • auth_mechanism: specifica il metodo di autenticazione utente Snowflake. I valori supportati sono PASSWORD e KEY_PAIR. Per saperne di più, vedi Generare una coppia di chiavi per l'autenticazione.
  • password: specifica la password dell'utente Snowflake. Questo campo è obbligatorio se hai specificato PASSWORD nel campo auth_mechanism.
  • private_key : specifica la chiave privata collegata alla chiave pubblica associata all'utente Snowflake. Questo campo è obbligatorio se hai specificato KEY_PAIR nel campo auth_mechanism.
  • is_private_key_encrypted : specifica true se la chiave privata è criptata con una passphrase.
  • private_key_passphrase : specifica la passphrase per la chiave privata criptata. Questo campo è obbligatorio se hai specificato KEY_PAIR nel campo auth_mechanism e true nel campo is_private_key_encrypted.
  • warehouse: specifica un warehouse utilizzato per l'esecuzione di questo trasferimento di dati.
  • service_account: specifica un account di servizio da utilizzare con questo trasferimento di dati. Il account di servizio deve appartenere allo stesso progetto Google 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 e storage.objects.get.
  • database: specifica il nome del database Snowflake che contiene le tabelle incluse in questo trasferimento di dati.
  • schema: specifica 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 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 denominate lineitem e ordertb.
    • .* corrisponde a tutte le tabelle.

      Puoi anche lasciare vuoto questo campo per eseguire la migrazione di tutte le tabelle dallo schema specificato.

  • ingestion_mode: specifica la modalità di importazione per il trasferimento. I valori supportati sono FULL e INCREMENTAL. Per maggiori informazioni, vedi Comportamento dell'importazione dati.

  • translation_output_gcs_path: (Facoltativo) specifica un percorso della cartella Cloud Storage che contiene i file di mappatura dello schema del motore di traduzione. Puoi lasciare questo campo vuoto per consentire al connettore Snowflake di rilevare automaticamente lo schema.

    • Il percorso deve seguire il formato gs://translation_target_base_uri/metadata/config/db/schema/ e deve terminare con /.
  • storage_integration_object_name: specifica il nome dell'oggetto di integrazione dell'archiviazione Snowflake.

  • cloud_provider: inserisci AWS, AZURE o GCP a seconda del provider di servizi cloud che ospita il tuo account Snowflake.

  • staging_s3_uri: inserisci l'URI del bucket S3 da utilizzare come area di staging. Obbligatorio solo quando cloud_provider è AWS.

  • aws_access_key_id: inserisci la coppia di chiavi di accesso. Obbligatorio solo quando cloud_provider è AWS.

  • aws_secret_access_key: inserisci la coppia di chiavi di accesso. Obbligatorio solo quando cloud_provider è AWS.

  • azure_storage_account: inserisci il nome dell'account di archiviazione da utilizzare come area di gestione temporanea. Obbligatorio solo quando cloud_provider è AZURE.

  • staging_azure_container: inserisci il container in Azure Blob Storage da utilizzare come area di staging. Obbligatorio solo quando cloud_provider è AZURE.

  • azure_sas_token: inserisci il token SAS. Obbligatorio solo quando cloud_provider è AZURE.

  • staging_gcs_uri : inserisci l'URI di Cloud Storage da utilizzare come area di gestione temporanea. Obbligatorio solo quando cloud_provider è GCP.

  • use_private_network: se stai creando un trasferimento di dati privati, imposta questo campo su TRUE.

  • service_attachment: se stai creando un trasferimento di dati privato, specifica l'URI del collegamento al servizio. Per saperne di più, consulta Creare una configurazione di trasferimento privato Snowflake.

  • private_network_service: se stai creando un trasferimento di dati privato, specifica il self-link del servizio NLB. Per saperne di più, consulta Creare una configurazione di trasferimento privato Snowflake.

Ad esempio, per un account Snowflake ospitato su AWS, 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",
  "auth_mechanism": "KEY_PAIR",
  "aws_access_key_id": "your_access_key_id",
  "aws_secret_access_key": "your_aws_secret_access_key",
  "cloud_provider": "AWS",
  "database": "your_sf_database",
  "ingestion_mode": "INCREMENTAL",
  "private_key": "-----BEGIN PRIVATE KEY----- privatekey\nseparatedwith\nnewlinecharacters=-----END PRIVATE KEY-----",
  "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.

Specifica la chiave di crittografia con i trasferimenti

Puoi specificare le chiavi di crittografia gestite dal cliente (CMEK) per criptare i dati per un'esecuzione del trasferimento. Puoi utilizzare una chiave CMEK per supportare i trasferimenti da Snowflake.

Quando specifichi una CMEK con un trasferimento, BigQuery Data Transfer Service la applica a qualsiasi cache su disco intermedia dei dati importati, in modo che l'intero flusso di lavoro di trasferimento dei dati sia conforme alla CMEK.

Non puoi aggiornare un trasferimento esistente per aggiungere una chiave CMEK se il trasferimento non è stato originariamente creato con una chiave CMEK. Ad esempio, non puoi modificare una tabella di destinazione che originariamente era criptata per impostazione predefinita in modo che ora sia criptata con CMEK. Al contrario, non puoi modificare una tabella di destinazione criptata con CMEK in modo che abbia un tipo di crittografia diverso.

Puoi aggiornare una CMEK per un trasferimento se la configurazione del trasferimento è stata originariamente creata con una crittografia CMEK. Quando aggiorni una CMEK per una configurazione di trasferimento, BigQuery Data Transfer Service la propaga alle tabelle di destinazione alla successiva esecuzione del trasferimento, durante la quale BigQuery Data Transfer Service sostituisce le CMEK obsolete con la nuova CMEK. Per saperne di più, vedi Aggiornare un trasferimento.

Puoi anche utilizzare le chiavi predefinite del progetto. Quando specifichi una chiave predefinita del progetto con un trasferimento, BigQuery Data Transfer Service utilizza la chiave predefinita del progetto come chiave predefinita per qualsiasi nuova configurazione di trasferimento.

Quote e limiti

Per impostazione predefinita, 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. Per caricare tabelle più grandi di 15 TB, contatta dts-migration-preview-support@google.com.

Per migliorare i tempi di caricamento delle tabelle più grandi, specifica il tipo di prestazione PIPELINE per l'assegnazione della prenotazione.

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