Migrazione da Amazon Redshift a BigQuery: panoramica
Questo documento fornisce indicazioni sulla migrazione da Amazon Redshift ad BigQuery, con particolare attenzione ai seguenti argomenti:
- Strategie per la migrazione
- Best practice per l'ottimizzazione delle query e la modellazione dei dati
- Suggerimenti per la risoluzione dei problemi
- Indicazioni per l'adozione da parte degli utenti
Gli obiettivi del presente documento sono i seguenti:
- Fornisci indicazioni generali alle organizzazioni che migrano da da Amazon Redshift a BigQuery, aiutandoti a ripensare i dati esistenti per sfruttare al meglio BigQuery.
- Aiutarti a confrontare le architetture di BigQuery con Amazon Redshift puoi stabilire come implementare le funzionalità e le capacità esistenti durante la migrazione. L'obiettivo è mostrarti le nuove funzionalità disponibili per della tua organizzazione tramite BigQuery, non per mappare gli elementi uno a uno con Amazon Redshift.
Questo documento è rivolto a enterprise architect, database amministratori, sviluppatori di applicazioni ed esperti della sicurezza IT. it presuppone che tu abbia familiarità con Amazon Redshift.
Puoi anche utilizzare traduzione SQL batch eseguire la migrazione collettiva degli script SQL traduzione SQL interattiva per tradurre query ad hoc. SQL di Amazon Redshift è completamente supportato Servizi di traduzione SQL.
Attività di pre-migrazione
Per garantire una migrazione del data warehouse senza problemi, inizia a pianificare la strategia di migrazione all'inizio del progetto. Questo approccio ti consente valutare le funzionalità di Google Cloud più adatte alle tue esigenze.
Pianificazione della capacità
BigQuery utilizza gli slot per misurare la velocità effettiva dell'analisi. Uno slot BigQuery è l'unità di proprietà di Google necessaria per eseguire query SQL. BigQuery calcola continuamente quanti slot sono richiesti dalle query durante l'esecuzione, ma alloca slot alle query in base fair scheduler.
Puoi scegliere tra i seguenti modelli di prezzi quando pianifichi la capacità per Slot BigQuery:
- Prezzi on demand: Con i prezzi on demand, BigQuery addebita il numero di byte elaborati (dimensioni dei dati), quindi paghi solo per le query che esegui. Per saperne di più su come BigQuery determina i dati dimensioni, consulta Calcolo delle dimensioni dei dati. Poiché gli slot determinano la capacità di calcolo sottostante, puoi pagare per l'utilizzo di BigQuery in base al numero di slot che ti serviranno (anziché i byte elaborati). Per impostazione predefinita, tutte I progetti Google Cloud con un massimo di 2000 slot. BigQuery potrebbe eseguire burst oltre questo limite per accelerare le query, ma il bursting non è garantito.
- Prezzi basati sulla capacità: Con i prezzi basati sulla capacità, acquisti slot BigQuery prenotazioni (un minimo di 100) anziché pagare per i byte elaborati dalle query che esegui. Consigliamo prezzi basati sulla capacità per i carichi di lavoro dei data warehouse aziendali, che di solito prevedono di reporting ed estrazione, trasformazione del carico e trasformazione (ELT) con previsioni il consumo eccessivo.
Per facilitare la stima degli slot, ti consigliamo di configurare Monitoraggio di BigQuery con Cloud Monitoring e analizzare gli audit log utilizzando BigQuery. Puoi utilizzare Looker Studio (ecco un esempio open source di una dashboard di Looker Studio) oppure Looker per visualizzare i dati degli audit log di BigQuery, in particolare per gli slot utilizzo in query e progetti. Puoi anche utilizzare il sistema di BigQuery dati delle tabelle per monitorare l'utilizzo degli slot tra job e prenotazioni (ecco un esempio open source di una dashboard di Looker Studio). Monitoraggio regolare e analizzare il tuo slot ti aiuta a stimare il numero di slot totali di cui la tua organizzazione ha bisogno per far crescere la tua attività su Google Cloud.
Ad esempio, supponiamo che inizialmente prenoti 4000 BigQuery slot per eseguire 100 query a complessità media contemporaneamente. Se noti tempi di attesa elevati nelle query piani di esecuzione, e le tue dashboard mostrano un elevato utilizzo degli slot, il che potrebbe indicare hanno bisogno di altri Slot BigQuery per aiutarti per supportare i tuoi carichi di lavoro. Se vuoi acquistare slot tu stesso con cadenza annuale o tre anni, puoi iniziare a usare BigQuery di Google Cloud utilizzando la console Google Cloud o lo strumento a riga di comando bq. Per ulteriori dettagli sulla gestione dei carichi di lavoro, esecuzione delle query e sull'architettura di BigQuery, consulta Migrazione a Google Cloud: un approfondimento.
Security in Google Cloud Platform
Le seguenti sezioni descrivono i controlli di sicurezza e i controlli di sicurezza comuni di Amazon Redshift come puoi contribuire a garantire che il data warehouse rimanga protetto nell'ambiente Google Cloud.
Gestione di identità e accessi
La configurazione dei controlli di accesso in Amazon Redshift comporta la scrittura di Amazon Redshift Criteri relativi alle autorizzazioni API e come collegarli ai Identità Identity and Access Management (IAM). Le autorizzazioni dell'API Amazon Redshift forniscono l'accesso a livello di cluster, ma fornire accesso più granulari rispetto al cluster. Se vuoi un accesso più granulare di risorse come tabelle o viste, puoi utilizzare gli account utente Database Amazon Redshift.
BigQuery utilizza IAM per gestire l'accesso alle risorse a un livello più dettagliato. La tra i tipi di risorse disponibili in BigQuery sono: organizzazioni, progetti, set di dati tabelle, colonne e viste. Nella gerarchia dei criteri IAM, i set di dati sono secondari delle risorse dei progetti. Una tabella eredita le autorizzazioni dal set di dati la contiene.
Per concedere l'accesso a una risorsa, assegna uno o più ruoli IAM a un utente, un gruppo o un account di servizio. I ruoli di organizzazione e progetto influiscono sulla capacità o gestire il progetto, mentre i ruoli del set di dati influiscono sulla possibilità di accedere o modificare i dati all'interno di un progetto.
IAM offre i seguenti tipi di ruoli:
- Ruoli predefiniti, il cui scopo è supportare casi d'uso comuni e pattern di controllo dell'accesso.
- Ruoli personalizzati, che forniscono un accesso granulare in base a un dell'elenco di autorizzazioni.
All'interno di IAM, BigQuery fornisce 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. Per dati più granulari di accesso, puoi anche valutare l'implementazione di uno o più dei seguenti meccanismi di sicurezza:
- Controllo dell'accesso a livello di colonna, che fornisce un accesso granulare alle colonne sensibili usando i tag di criteri, o la classificazione dei dati basata sul tipo.
- Mascheramento dei dati dinamici a livello di colonna, che ti consente di oscurare selettivamente i dati delle colonne per gruppi di utenti, consentendo comunque l'accesso alla colonna.
- Sicurezza a livello di riga che ti consente di filtrare i dati e di accedere a righe specifiche di una tabella. in base a condizioni di utilizzo idonee.
Crittografia completa del disco
Oltre alla gestione di identità e accessi, la crittografia dei dati aggiunge un ulteriore livello di difesa per la protezione dei dati. In caso di esposizione dei dati, non sono leggibili.
Su Amazon Redshift, la crittografia dei dati at-rest e in transito sono abilitate per impostazione predefinita. La crittografia dei dati at-rest deve essere esplicitamente abilitato Quando viene avviato un cluster o modificandone uno esistente per usare la chiave AWS. Crittografia del servizio di gestione. Anche la crittografia dei dati in transito deve essere esplicitamente abilitati.
BigQuery cripta tutti i dati a riposo e in transito per impostazione predefinita, indipendentemente dall'origine o da qualsiasi altra condizione e non può essere disattivata. BigQuery supporta anche chiavi di crittografia gestite dal cliente (CMEK) se vuoi controllare e gestire le chiavi di crittografia delle chiavi Cloud Key Management Service.
Per saperne di più sulla crittografia in Google Cloud, leggi i white paper crittografia dei dati at-rest e crittografia dei dati in transito.
Per dati in transito su Google Cloud, vengono criptati e autenticati quando si spostano all'esterno confini fisici controllati da Google o per conto di Google. All'interno di questi confini, i dati in transito sono generalmente autenticati, ma non necessariamente criptati.
Prevenzione della perdita di dati
I requisiti di conformità potrebbero limitare i dati su cui è possibile archiviare in Google Cloud. Puoi utilizzare Sensitive Data Protection per eseguire la scansione delle tabelle BigQuery per rilevare e classificare i dati sensibili. Se vengono rilevati dati sensibili, Le trasformazioni di anonimizzazione di Sensitive Data Protection possono mascherare, eliminare o oscurare in altro modo quei dati.
Migrazione a Google Cloud: nozioni di base
Utilizza questa sezione per scoprire di più sull'uso di strumenti e pipeline per per la migrazione.
Strumenti di migrazione
BigQuery Data Transfer Service fornisce uno strumento automatizzato per la migrazione sia schema che dati direttamente da Amazon Redshift a BigQuery. Le seguenti nella tabella che elenca ulteriori strumenti utili per la migrazione da Amazon Redshift a BigQuery:
Strumento | Purpose |
---|---|
BigQuery Data Transfer Service | Esegui un trasferimento batch automatico dei tuoi dati Amazon Redshift su di BigQuery utilizzando questo servizio completamente gestito. |
Storage Transfer Service | Importa rapidamente i dati Amazon S3 in Cloud Storage e configura la ripetizione della pianificazione del trasferimento dei dati utilizzando questo completamente gestito di Google Cloud. |
gcloud |
Copia i file Amazon S3 in Cloud Storage utilizzando questa riga di comando lo strumento a riga di comando gcloud. |
strumento a riga di comando bq | Interagisci con BigQuery utilizzando questo strumento a riga di comando. Comuni le interazioni includono la creazione di schemi delle tabelle BigQuery, il caricamento i dati di Cloud Storage in tabelle ed esecuzione di query. |
Client Cloud Storage biblioteche | Copia i file Amazon S3 in Cloud Storage utilizzando lo strumento personalizzato, basate sulla libreria client di Cloud Storage. |
Librerie client di BigQuery | Interagisci con BigQuery usando il tuo strumento personalizzato, basato su libreria client di BigQuery. |
Pianificazione query BigQuery | Pianifica query SQL ricorrenti utilizzando questa piattaforma BigQuery integrata funzionalità. |
Cloud Composer | Orchestra le trasformazioni e i job di caricamento BigQuery utilizzando questo un ambiente Apache Airflow completamente gestito. |
Apache Sqoop | Inviare job Hadoop utilizzando Sqoop e il driver JDBC di Amazon Redshift per estrarre i dati da Amazon Redshift in HDFS di archiviazione ideale in Cloud Storage. Sqoop viene eseguito in un ambiente Dataproc. |
Per ulteriori informazioni sull'utilizzo di BigQuery Data Transfer Service, consulta Esegui la migrazione di schema e dati da Amazon Redshift.
Migrazione tramite pipeline
La migrazione dei dati da Amazon Redshift a BigQuery può richiedere percorsi diversi in base agli strumenti di migrazione disponibili. Sebbene l'elenco di questa sezione non sia esaustivo, fornisce un senso dei diversi pattern della pipeline di dati disponibili durante lo spostamento dei dati.
Per informazioni più generali sulla migrazione dei dati a BigQuery mediante le pipeline, vedi Eseguire la migrazione delle pipeline di dati.
Estrai e carica (EL)
Puoi automatizzare completamente una pipeline EL utilizzando BigQuery Data Transfer Service, che possono eseguire e copiare le tabelle gli schemi e i dati dal cluster Amazon Redshift in BigQuery. Se vuoi un maggiore controllo sulla pipeline di dati passaggi, puoi creare una pipeline utilizzando le opzioni descritte nelle sezioni seguenti.
Utilizza le estrazioni dei file Amazon Redshift
- Esporta i dati di Amazon Redshift in Amazon S3.
Copia i dati da Amazon S3 a Cloud Storage utilizzando uno dei seguenti metodi opzioni:
Carica i dati di Cloud Storage in BigQuery utilizzando una delle seguenti opzioni:
Utilizzare una connessione JDBC di Amazon Redshift
Utilizza uno dei seguenti prodotti Google Cloud per esportare i dati di Amazon Redshift utilizzando Driver JDBC Amazon Redshift:
-
- Modello fornito da Google: Da JDBC a BigQuery
-
Connettiti ad Amazon Redshift tramite JDBC utilizzando Apache Spark
Utilizza Sqoop e Driver JDBC Amazon Redshift per estrarre i dati da Amazon Redshift in Cloud Storage
Estrai, trasforma e carica (ETL)
Se vuoi trasformare alcuni dati prima di caricarli in BigQuery, segui le gli stessi suggerimenti della pipeline descritti in Estrai e Carica la sezione (EL), aggiungendo un passaggio in più alla trasformare i dati prima di caricarli in BigQuery.
Utilizza le estrazioni dei file Amazon Redshift
Copia i dati da Amazon S3 a Cloud Storage utilizzando uno dei seguenti metodi opzioni:
Trasforma e poi carica i tuoi dati in BigQuery utilizzando uno dei le seguenti opzioni:
-
- Lettura da Cloud Storage
- Scrivi in BigQuery
- Modello fornito da Google: Testo di Cloud Storage in BigQuery
Utilizzare una connessione JDBC di Amazon Redshift
Utilizzare uno dei prodotti descritti nella sezione Estrazione e Carica la sezione (EL), aggiungendo un passaggio in più alla trasformare i dati prima di caricarli in BigQuery. Modifica la pipeline per introdurre uno o più passaggi per trasformare prima di scriverli in BigQuery.
-
- Clona il Da JDBC a BigQuery e modificare il modello per aggiungere trasformazioni Apache Beam.
-
- Trasforma i tuoi dati utilizzando una delle plug-in CDAP.
Estrazione, caricamento e trasformazione (ELT)
Puoi trasformare i tuoi dati utilizzando BigQuery, utilizzando uno qualsiasi dei metodi di estrazione e caricamento (EL) per caricare i dati in una tabella temporanea. Quindi trasformerai il modello in questa tabella temporanea utilizzando SQL che scrivono il loro output nella tabella finale di produzione.
Change Data Capture (CDC)
Change Data Capture (CDC) è uno dei vari pattern di progettazione di software utilizzati per tenere traccia delle modifiche ai dati. È spesso utilizzato nel data warehousing perché viene utilizzato per raccogliere e monitorare i dati e le relative modifiche dai vari sistemi di origine nel tempo.
Strumenti dei partner per la migrazione dei dati
Esistono diversi fornitori nello spazio ETL (Extract, Transform, Load). Consulta le Sito web partner BigQuery per un elenco dei partner principali con le soluzioni fornite.
Migrazione a Google Cloud: approfondimento
Utilizza questa sezione per scoprire di più su come l'architettura del tuo data warehouse, e il dialetto SQL influisce sulla migrazione.
Confronto dell'architettura
Sia BigQuery che Amazon Redshift si basano su una elaborazione parallela dell'architettura (MPP). Le query vengono distribuite su più server accelerarne l'esecuzione. Per quanto riguarda l'architettura di sistema, Amazon Redshift e BigQuery differiscono principalmente nella modalità di archiviazione dei dati come sono le query eseguito. In BigQuery, l'hardware sottostante configurazioni sono astratte di distanza; e risorse di archiviazione e computing consentono al tuo data warehouse di crescere senza un tuo intervento.
Computing, memoria e archiviazione
In Amazon Redshift, CPU, memoria e spazio di archiviazione su disco sono collegati nodi di computing, come illustrato in questo diagramma tratto dalla documentazione di Amazon Redshift. Prestazioni del cluster e capacità di archiviazione sono determinati dal tipo e dalla quantità di nodi di computing, che devono la configurazione iniziale. Per modificare le opzioni di elaborazione o archiviazione, devi ridimensionare il cluster Attraverso un processo (più di un paio d'ore oppure fino a due giorni o più) che crea un cluster e delle copie nuovi di zecca trasferire i dati. Amazon Redshift offre anche nodi RA3 con archiviazione gestita risorse di computing e archiviazione separate. Il nodo più grande della categoria RA3 ha un limite di 64 TB di archiviazione gestita per ciascun nodo.
Fin dall'inizio, BigQuery non unisce calcolo, memoria e archiviazione, ma li trattano separatamente.
Il computing di BigQuery è definito slot, un'unità di capacità di calcolo richiesta per eseguire le query. Google gestisce l'intera infrastruttura incapsulata da uno slot, eliminando tutto tranne l'attività scegliendo la quantità di slot appropriata per i carichi di lavoro BigQuery. Consulta le la pianificazione della capacità per decidere quante sono gli slot che acquisterai per il tuo data warehouse. La memoria BigQuery è fornita da un servizio distribuito remoto, collegati agli slot di calcolo della rete Petabit di Google, il tutto gestito da Google.
BigQuery e Amazon Redshift usano entrambi l'archiviazione a colonne, mentre BigQuery utilizza variazioni e progressi dell'archiviazione a colonne. Durante la codifica delle colonne, diverse statistiche su i dati persistenti e in seguito vengono utilizzati durante l'esecuzione della query per compilare piani ottimali e scegliere l'algoritmo di runtime più efficiente. BigQuery archivia i tuoi dati il file system distribuito di Google, in cui vengono automaticamente compressi, criptati, replicati e distribuiti. Tutto questo senza influire sulla potenza di calcolo disponibile per le tue query. Separando lo spazio di archiviazione dal computing puoi fare lo scale up fino a decine di e petabyte di archiviazione in modo trasparente, senza la necessità di ulteriori costose risorse di calcolo Google Cloud. Una serie di altri vantaggi della separazione di computing e archiviazione esistono.
Scale up o scale down
Quando l'archiviazione o il computing sono vincolati, i cluster Amazon Redshift devono ridimensionati modificando la quantità o i tipi di nodi nel cluster.
Quando ridimensiona un cluster Amazon Redshift, puoi scegliere tra due approcci:
- Ridimensionamento classico: Amazon Redshift crea un cluster in cui vengono vengono copiati, un processo che può richiedere un paio d'ore o fino a due giorni. più a lungo per grandi quantità di dati.
- Ridimensionamento elastico: se modifichi solo il numero di nodi, la query sono temporaneamente in pausa e le connessioni vengono mantenute aperte, se possibile. Durante l'operazione di ridimensionamento, il cluster è di sola lettura. Ridimensionamento elastico in genere richiede da 10 a 15 minuti, ma potrebbe non essere disponibile per tutte le configurazioni.
Poiché BigQuery è una soluzione Platform as a Service (PaaS), devi solo preoccuparti sul numero di slot BigQuery che vuoi prenotare per dell'organizzazione. Prenoti slot BigQuery nelle prenotazioni e poi assegni a queste prenotazioni. Per scoprire come configurare queste prenotazioni, consulta la Pianificazione della capacità.
Esecuzione della query
Il motore di esecuzione di BigQuery è simile a quello di Amazon Redshift in quanto entrambi orchestrare la query suddividendola in passaggi (un piano di query), eseguendo tutti i passaggi (contemporaneamente, se possibile), per poi riassemblare i risultati. Amazon Redshift genera un piano di query statico, al contrario di BigQuery ottimizza in modo dinamico i piani di query man mano che la query viene eseguita. BigQuery esegue lo shuffling dei dati usando il proprio servizio di memoria remoto, mentre Amazon Redshift esegue lo shuffling dei dati utilizzando di memoria locale dei nodi di computing. Per ulteriori informazioni sullo spazio di archiviazione di dati intermedi provenienti dalle varie fasi del piano di query, consulta Esecuzione di query in memoria in Google BigQuery.
Gestione dei carichi di lavoro in BigQuery
BigQuery offre i seguenti controlli per la gestione dei carichi di lavoro (WLM):
- Query interattive, che vengono eseguiti il prima possibile (impostazione predefinita).
- Query in batch, che vengono messi in coda per tuo conto, vengono avviate non appena le risorse inattive disponibili nel pool di risorse condiviso di BigQuery.
Prenotazioni di slot alla prezzi basati sulla capacità. Anziché pagare per le query on demand, puoi crea e gestisci dinamicamente di slot chiamati prenotazioni e assegna progetti, cartelle o organizzazioni a queste prenotazioni. Puoi acquistare slot BigQuery impegni (a partire da un minimo di 100) nel formato flessibile, mensile o annuale per ridurre al minimo i costi. Per impostazione predefinita, le query in esecuzione in una prenotazione usano automaticamente slot da altre prenotazioni.
Come illustrato nel seguente diagramma, supponiamo che tu abbia acquistato una capacità di impegno totale 1000 slot da condividere tra tre tipi di carichi di lavoro: data science, ELT e business intelligence (BI). Per l'assistenza carichi di lavoro, puoi creare le prenotazioni seguenti:
- Puoi creare la prenotazione ds con 500 slot e assegnare tutte per i progetti di data science di Google Cloud nella prenotazione.
- Puoi creare la prenotazione elt con 300 slot e assegnare i progetti che utilizzi per i carichi di lavoro ELT in quella prenotazione.
- Puoi creare la prenotazione bi con 200 slot e assegnare a progetti collegati ai tuoi strumenti BI.
Questa configurazione è mostrata nell'immagine seguente:
Invece di distribuire le prenotazioni ai carichi di lavoro della tua organizzazione, di produzione e test, potresti scegliere di assegnare a singoli team o reparti, a seconda del caso d'uso.
Per ulteriori informazioni, vedi Gestione dei carichi di lavoro tramite le prenotazioni
Gestione dei carichi di lavoro in Amazon Redshift
Amazon Redshift offre due tipi di gestione dei carichi di lavoro (WLM):
- Automatico: Con WLM automatico, Amazon Redshift gestisce la contemporaneità e la memoria delle query l'allocazione delle risorse. Con la classe di servizio vengono create fino a otto code identificatori 100-107. WLM automatico determina la quantità di risorse che le query necessitano regola la contemporaneità in base al carico di lavoro. Per ulteriori informazioni, vedi Priorità delle query.
- Manuale: Al contrario, WLM manuale richiede di specificare i valori per la query contemporaneità e allocazione della memoria. L'impostazione predefinita per il WLM manuale è e la contemporaneità è di cinque query e la memoria è divisa equamente tra tutte e cinque.
Quando scalabilità della contemporaneità è abilitata, Amazon Redshift aggiunge automaticamente ulteriore capacità al cluster ne hai bisogno per elaborare un aumento delle query di lettura simultanee. Contemporaneità la scalabilità richiede alcune considerazioni a livello di regione e query. Per ulteriori informazioni, vedi Candidati per la scalabilità della contemporaneità.
Configurazioni di set di dati e tabelle
BigQuery offre diversi modi per configurare i dati e le tabelle, ad esempio: partizionamento, clustering e località dei dati. Queste configurazioni possono aiutare a mantenere e riducono il carico complessivo dei dati e il tempo di risposta per le query, aumentando così il dell'efficienza operativa dei carichi di lavoro di dati.
Partizionamento
Una tabella partizionata è una tabella divisa in segmenti, chiamati che semplificano la gestione e l'esecuzione di query sui dati. Gli utenti in genere suddividono le tabelle di grandi dimensioni in molte partizioni più piccole, dove ogni partizione contiene un per un totale di giorni. La gestione delle partizioni è una determinante chiave di BigQuery di prestazioni e costo quando si eseguono query in un intervallo di date specifico, BigQuery analizza meno dati per query.
In BigQuery esistono tre tipi di partizionamento delle tabelle:
- Tabelle partizionate per ora di importazione: Le tabelle vengono partizionate in base al tempo di importazione dei dati.
- Tabelle partizionate per colonna:
Le tabelle sono partizionate in base a una colonna
TIMESTAMP
oDATE
. - Tabelle partizionate per intervallo di numeri interi: Le tabelle sono partizionate in base a una colonna di numeri interi.
Una tabella partizionata nel tempo, basata su colonne, evita la necessità di mantenere la partizione di rilevamento indipendente dal filtro dati esistente nella colonna del vincolo. Dati in una tabella partizionata nel tempo, basata su colonne, viene pubblicata automaticamente la partizione appropriata in base al valore dei dati. Analogamente, le query che i filtri espressi nella colonna di partizionamento possono ridurre i dati complessivi analizzati, il che può produrre prestazioni migliori e costi di query ridotti per per query on demand.
Il partizionamento basato su colonne di BigQuery è simile al partizionamento basato su colonne di Amazon Redshift con una motivazione leggermente diversa. Amazon Redshift utilizza delle chiavi basate su colonne per cercare di mantenere i dati correlati archiviati insieme lo stesso nodo di computing, riducendo al minimo data shuffling che si verifica join e aggregazioni. BigQuery separa l'archiviazione dal computing, quindi sfrutta il partizionamento in base a colonne per ridurre al minimo la quantità di dati slot dal disco.
Una volta che i worker di slot leggono i propri dati dal disco, BigQuery può automaticamente determinare uno sharding dei dati ottimale e ripartizionare rapidamente i dati utilizzando Servizio di shuffle in memoria di BigQuery.
Per ulteriori informazioni, vedi Introduzione alle tabelle partizionate.
Raggruppamento e ordinamento delle chiavi
Amazon Redshift supporta la specifica di colonne delle tabelle come composto o con interleaving di ordinamento. In BigQuery, puoi specificare le chiavi di ordinamento composto clustering della tabella. Le tabelle BigQuery in cluster migliorano le prestazioni delle query perché i dati di una tabella vengono ordinati automaticamente in base ai contenuti di un massimo di quattro colonne specificato nello schema della tabella. Queste colonne vengono utilizzate per posizionare e i dati di Google Cloud. L'ordine delle colonne di clustering specificato è importante perché determina l'ordinamento dei dati.
Il clustering può migliorare le prestazioni di alcuni tipi di query, come che usano clausole di filtro e query che aggregano dati. Quando i dati vengono scritto in una tabella in cluster da un job di query o di caricamento, BigQuery ordina automaticamente i dati utilizzando i valori nelle colonne di clustering. Questi vengono utilizzati per organizzare i dati in più blocchi nello spazio di archiviazione di BigQuery. Quando invii una query contenente una clausola che filtra i dati in base alla al clustering delle colonne, BigQuery utilizza i blocchi ordinati per eliminare le analisi i dati non necessari.
Analogamente, quando invii una query che aggrega i dati in base ai valori delle colonne di clustering, le prestazioni sono migliorate perché i blocchi ordinati collocare righe con valori simili.
Utilizza il clustering nelle seguenti circostanze:
- Le chiavi di ordinamento composte sono configurate nelle tabelle Amazon Redshift.
- I filtri o l'aggregazione sono configurati in base a determinate colonne in le tue query.
Quando utilizzi il clustering e il partizionamento insieme, i dati possono essere partizionati in base a una colonna di data, timestamp o numero intero, quindi raggruppati in base a un insieme diverso (fino a quattro colonne in cluster totali). In questo caso, i dati in ogni di clustering viene organizzato in base ai valori delle colonne di clustering.
Quando specifichi le chiavi di ordinamento nelle tabelle di Amazon Redshift, a seconda del carico
sul sistema, Amazon Redshift avvia automaticamente l'ordinamento utilizzando
e la capacità di calcolo del cluster. Potrebbe essere necessario eseguire manualmente
VACUUM
se vuoi ordinare completamente i dati della tabella il prima possibile, ad esempio
ad esempio dopo un grande carico di dati. BigQuery
gestisce automaticamente
a questo ordinamento e non utilizza i dati BigQuery allocati
slot machine, senza influire quindi sulle prestazioni delle query.
Per ulteriori informazioni sull'utilizzo delle tabelle in cluster, consulta Introduzione alle tabelle in cluster.
Chiavi di distribuzione
Amazon Redshift utilizza le chiavi di distribuzione per ottimizzare la posizione dei blocchi di dati per eseguire le proprie query. BigQuery non utilizza la distribuzione perché determina automaticamente e aggiunge fasi a un piano di query (mentre la query è in esecuzione) per migliorare i dati la distribuzione tra i worker delle query.
Sorgenti esterne
Se utilizzi Spettro Amazon Redshift per eseguire query sui dati su Amazon S3, puoi utilizzare allo stesso modo un'origine dati esterna dati e query direttamente dai file su Cloud Storage.
Oltre a eseguire query sui dati in Cloud Storage, BigQuery offre funzioni di query federate per eseguire direttamente query dai seguenti prodotti:
- Cloud SQL (MySQL o PostgreSQL completamente gestito)
- Bigtable (NoSQL completamente gestito)
- Google Drive (CSV, JSON, Avro, Fogli)
Località di dati
Puoi creare i tuoi set di dati BigQuery sia in regioni singole che in più regioni mentre Amazon Redshift offre solo località regionali. BigQuery determina la posizione in cui eseguire i job di caricamento, query o esportazione in base alla ai set di dati a cui viene fatto riferimento nella richiesta. Fai riferimento alla località di BigQuery considerazioni sull'uso di set di dati regionali e multiregionali.
Mappatura dei tipi di dati in BigQuery
I tipi di dati di Amazon Redshift sono diversi da quelli di BigQuery. Per ulteriori dettagli su per i tipi di dati BigQuery: consulta il documentazione.
BigQuery supporta anche i seguenti tipi di dati, che non hanno un indirizzo Analogico Amazon Redshift:
Confronto SQL
GoogleSQL supporta la conformità allo standard SQL 2011 e include estensioni che supportano eseguire query su dati nidificati e ripetuti. SQL di Amazon Redshift si basa su PostgreSQL ma presenta diverse differenze, descritte in dettaglio Documentazione di Amazon Redshift. Per un confronto dettagliato tra la sintassi di Amazon Redshift e GoogleSQL e consulta la guida alla traduzione SQL di Amazon Redshift.
Puoi utilizzare il traduttore SQL batch per convertire script e altro codice SQL dalla tua piattaforma attuale a BigQuery.
Dopo la migrazione
Poiché hai eseguito la migrazione di script che non sono stati progettati per BigQuery, puoi scegliere di implementare tecniche per ottimizzare le prestazioni delle query in BigQuery. Per ulteriori informazioni, vedi Introduzione all'ottimizzazione delle prestazioni delle query.
Passaggi successivi
- Ricevi istruzioni passo passo per eseguire la migrazione di schema e dati da Amazon Redshift.
- Ricevi istruzioni passo passo per eseguire la migrazione di Amazon Redshift a BigQuery con VPC.