La necessità di ricavare insight significativi e tempestivi aumenta proporzionalmente alla quantità di dati raccolti. I data warehouse svolgono un ruolo chiave nell'archiviazione, nella trasformazione e nel rendere i dati facilmente accessibili per consentire un'ampia gamma di casi d'uso, come data mining, business intelligence (BI) e reporting e diagnostica, nonché predittivo, prescrittivo e cognitivo analisi.
Diverse nuove funzionalità di Amazon RedShift soddisfare un'ampia gamma di requisiti di dati e migliorare le prestazioni dei processi e delle query di estrazione, caricamento e trasformazione (ELT). Ad esempio, il ridimensionamento della concorrenza, i nuovi tipi di istanza RA3, il ridimensionamento elastico, le viste materializzate e la query federata, che consente di eseguire query sui dati archiviati nel Amazon Aurora or Servizio di database relazionale Amazon (Amazon RDS) Database operativi Postgres direttamente da Amazon Redshift e il SUPER tipo di dati, che può memorizzare dati o documenti semi-strutturati come valori. La nuova cache distribuita e con accelerazione hardware con AQUA (Advanced Query Accelerator) per Amazon Redshift offre prestazioni fino a 10 volte superiori rispetto ad altri magazzini cloud. La funzionalità di ottimizzazione automatica basata sull'apprendimento automatico (ML) per impostare le chiavi di ordinamento e distribuzione per le tabelle migliora significativamente le prestazioni delle query che in precedenza venivano gestite manualmente. Per le ultime versioni delle funzionalità per i servizi AWS, vedere Cosa c'è di nuovo con AWS?
Per sfruttare queste funzionalità e l'innovazione futura, devi migrare dal tuo attuale data warehouse, come Snowflake, ad Amazon Redshift, che prevede due passaggi principali:
- Migrazione di dati grezzi, trasformati e preparati da Snowflake a Servizio di archiviazione semplice Amazon (Amazon S3)
- Riconfigurare le pipeline di dati per spostare i dati dalle origini ad Amazon Redshift e Amazon S3, che forniscono un livello di storage unificato e nativamente integrato della nostra Lake House Architecture
In questo post, ti mostriamo come migrare i dati da Snowflake ad Amazon Redshift. Tratteremo il secondo passaggio, la riconfigurazione delle pipeline, in un post successivo.
Panoramica della soluzione
La nostra soluzione è progettata in due fasi, come illustrato nel seguente diagramma dell'architettura.
La prima parte della nostra architettura Lake House consiste nell'inserire i dati nel data lake. Noi usiamo AWS Colla Studio con Colla AWS connettori personalizzati per connetterci al database Snowflake di origine ed estrarre le tabelle che vogliamo e archiviarle in Amazon S3. Per accelerare l'estrazione di informazioni aziendali, carichiamo i dati a cui si accede di frequente in un cluster Amazon Redshift. I dati a cui si accede di rado sono catalogati nel Catalogo dati di AWS Glue come tabelle esterne a cui è possibile accedere facilmente dal nostro cluster.
Per questo post, consideriamo tre tabelle: Customer
, Lineitem
e Orders
, dall'open source TCPH_SF10 insieme di dati. Un lavoro AWS Glue ETL, creato da AWS Glue Studio, sposta il Customers
ed Orders
tabelle da Snowflake nel cluster Amazon Redshift e il Lineitem
table viene copiato in Amazon S3 come tabella esterna. Viene creata una vista in Amazon Redshift per combinare set di dati interni ed esterni.
Prerequisiti
Prima di iniziare, completa i passaggi necessari per configurare e distribuire la soluzione:
- Creare un AWS Secrets Manager secret con le credenziali per connettersi a Snowflake: nome utente, password e dettagli del magazzino. Per le istruzioni, vedere Tutorial: creazione e recupero di un segreto.
- Scarica l'ultima File JDBC JAR del fiocco di neve e caricalo in un bucket S3. Troverai questo bucket indicato come SnowflakeConnectionbucket nella fase di cloudformation.
- Identifica le tabelle nel database Snowflake che desideri migrare.
Crea un connettore Snowflake utilizzando AWS Glue Studio
Per completare una connessione corretta, dovresti avere familiarità con il Ecosistema fiocco di neve e i parametri associati per le tabelle del database Snowflake. Questi possono essere passati come parametri del lavoro durante il runtime. La seguente schermata di un account di prova Snowflake mostra i valori dei parametri utilizzati nel lavoro di esempio.
La schermata seguente mostra le credenziali dell'account e il database di Secrets Manager.
Per creare il tuo connettore personalizzato AWS Glue per Snowflake, completa i seguenti passaggi:
- Sulla Console AWS Glue Studio, sotto Connettori RFscegli Crea un connettore personalizzato.
- Nel URL connettore S3, vai alla posizione S3 in cui hai caricato il Connettore JDBC fiocco di neve JAR file.
- Nel Nome, immettere un nome logico.
- Nel Tipo di connettorescegli JDBC.
- Nel Nome della classe, accedere
net.snowflake.client.jdbc.SnowflakeDriver
. - Immettere la base dell'URL JDBC nel seguente formato:
jdbc:snowflake://<snowflakeaccountinfo>/?user=${Username}&password=${Password}&warehouse=${warehouse}
. - Nel Delimitatore del parametro URL, accedere &.
- Facoltativamente, inserisci una descrizione per identificare il connettore.
- Scegli Crea connettore.
Configurare una connessione JDBC Snowflake
Per creare una connessione JDBC a Snowflake, completare i seguenti passaggi:
- Nella console di AWS Glue Studio, scegli Connettori RF.
- Scegli il connettore che hai creato.
- Scegli Crea connessione.
- Nel Nome ed Descrizione, inserisci un nome logico e una descrizione come riferimento.
- Nel Tipo di credenziale di connessionescegli difetto.
- Nel Segreto AWS, scegli il segreto creato come parte dei prerequisiti.
- Facoltativamente, è possibile specificare le credenziali in formato testo normale.
- Sotto Opzioni aggiuntive, aggiungi le seguenti coppie chiave-valore:
- Le
db
con il nome del database Snowflake - Le
schema
con lo schema del database Snowflake - Le
warehouse
con il nome del magazzino Snowflake
- Le
- Scegli Crea connessione.
Configura altre risorse e autorizzazioni utilizzando AWS CloudFormation
In questo passaggio, creiamo risorse aggiuntive con AWS CloudFormazione, che include un cluster Amazon Redshift, Gestione dell'identità e dell'accesso di AWS (IAM) con policy, bucket S3 e job AWS Glue per copiare tabelle da Snowflake ad Amazon S3 e da Amazon S3 ad Amazon Redshift.
- Accedi al Console di gestione AWS come utente esperto di IAM, preferibilmente un utente amministratore.
- Scegli la tua regione come
us-east-1
. - Scegli Avvia Stack:
- Scegli Avanti.
- Nel Nome dello stack, inserisci un nome per lo stack, ad esempio
snowflake-to-aws-blog
. - Nel Nomesegreto, inserisci il nome segreto creato nei prerequisiti.
- Nel Nome connessione fiocco di neve, inserisci la connessione JDBC Snowflake che hai creato.
- Nel Secchio di connessione fiocco di neve, inserisci il nome del bucket S3 in cui viene caricato il connettore del fiocco di neve
- Nel Fiocco di neve, inserisci l'elenco delle tabelle di cui eseguire la migrazione da Snowflake. Per esempio,
Lineitem
,customers
,order
. - Nel Redshift TableNames, inserisci l'elenco delle tabelle da caricare nel tuo magazzino (Amazon Redshift). Per esempio,
customers
,order
. - Puoi specificare la tua scelta di tipo di nodo Amazon Redshift, numero di nodi e nome utente e password Amazon Redshift oppure utilizzare i valori predefiniti.
- Per la MasterUtentePassword, inserisci una password per il tuo utente principale tenendo presente quanto segue vincoli : Deve essere lungo da 8 a 64 caratteri. Deve contenere almeno una lettera maiuscola, una lettera minuscola e un numero.
- Scegli Crea stack.
Esegui processi AWS Glue per il caricamento dei dati
Il completamento dello stack richiede circa 7 minuti. Dopo che lo stack è stato distribuito correttamente, eseguire le seguenti azioni:
- Nella console AWS Glue Studio, in Databasescegli Connessioni.
- Seleziona la connessione
redshiftconnection
dalla lista e scegli Test di connessione. - Scegli il ruolo IAM
ExecuteGlueSnowflakeJobRole
dal menu a tendina e scegli Verificare la connessione.
Se ricevi un errore, verifica o modifica il nome utente e la password e riprova.
- Dopo che la connessione è stata testata correttamente, nella console di AWS Glue Studio, seleziona il lavoro
Snowflake-s3-load-job
. - Sulla Action menù, scegliere Esegui lavoro.
Quando il lavoro è completo, tutte le tabelle menzionate nel SnowflakeTableNames
parametri vengono caricati nel tuo bucket S3. Il tempo necessario per completare questo lavoro varia a seconda del numero e delle dimensioni delle tabelle.
Ora carichiamo le tabelle identificate in Amazon Redshift.
- Esegui il lavoro
s3-redshift-load-job
. - Al termine del lavoro, accedi alla console Amazon Redshift.
- Usa l'editor di query per connetterti al tuo cluster per verificare che le tabelle specificate in
RedshiftTableNames
vengono caricati con successo.
Ora puoi visualizzare ed eseguire query su set di dati da Amazon Redshift. Il set di dati di Lineitem è su Amazon S3 ed è interrogato da Spettro Amazon Redshift. Lo screenshot seguente mostra come creare uno schema esterno Amazon Redshift che ti consente di eseguire query sui dati Amazon S3 da Amazon Redshift.
Le tabelle caricate nello storage associato ad Amazon Redshift vengono visualizzate come nella schermata seguente.
Il lavoro AWS Glue, utilizzando il tipo di lavoratore standard per spostare i dati Snowflake in Amazon S3, è stato completato in circa 21 minuti, caricando complessivamente 2.089 GB (circa 76.5 milioni di record). La seguente schermata della console Snowflake mostra le tabelle e le loro dimensioni, che abbiamo copiato su Amazon S3.
Hai la possibilità di personalizzare il tipo di lavoratore AWS Glue, i nodi di lavoro e la concorrenza massima per regolare la distribuzione e il carico di lavoro.
AWS Glue consente letture dati parallele dall'archivio dati partizionando i dati su una colonna. È necessario specificare la colonna della partizione, il limite della partizione inferiore, il limite della partizione superiore e il numero di partizioni. Questa funzionalità consente di usare il parallelismo dei dati e più esecutori Spark allocati all'applicazione Spark.
Questo completa la nostra migrazione da Snowflake ad Amazon Redshift che abilita un'architettura Lake House e la capacità di analizzare i dati in più modi. Vorremmo fare un ulteriore passo avanti e parlare delle funzionalità di Amazon Redshift che possono aiutare a estendere questa architettura per la democratizzazione dei dati e modernizzare il tuo data warehouse.
Modernizza il tuo data warehouse
Amazon Redshift potenzia l'architettura Lake House, che consente query da data lake, data warehouse e altri store. Amazon Redshift può accedere al data lake utilizzando Redshift Spectrum. Amazon Redshift impegna automaticamente i nodi di una flotta separata di nodi Redshift Spectrum. Questi nodi eseguono query direttamente su Amazon S3, eseguono scansioni e aggregazioni e restituiscono i dati ai nodi di calcolo per un'ulteriore elaborazione.
Formazione AWS Lake fornisce una soluzione di governance per i dati archiviati in un data lake basato su Amazon S3 e offre un modello di autorizzazione centrale con controlli di accesso granulari a livello di colonna e riga. Lake Formation utilizza il catalogo dati di AWS Glue come repository di metadati centrale e semplifica l'acquisizione e la catalogazione dei dati utilizzando blueprint e crawler.
Lo screenshot seguente mostra le tabelle di Snowflake rappresentate nel Catalogo dati di AWS Glue e gestite da Lake Formation.
Con il data lake Amazon Redshift funzione di esportazione, puoi anche salvare i dati in Amazon S3 in formati aperti come Apache Parquet, da utilizzare con altri servizi di analisi come Amazzone Atena ed Amazon EMR.
Archiviazione distribuita
AmazonRedshift RA3 offre la flessibilità di scalare elaborazione e archiviazione in modo indipendente. I dati di Amazon Redshift sono archiviati nello storage gestito di Amazon Redshift supportato da Amazon S3. La distribuzione dei set di dati tra lo storage del cluster e Amazon S3 ti consente di trarre vantaggio dal portare il calcolo appropriato ai dati a seconda del tuo caso d'uso. Puoi eseguire query sui dati da Amazon S3 senza accedere ad Amazon Redshift.
Diamo un'occhiata a un esempio con lo schema a stella. Possiamo salvare una tabella dei fatti che prevediamo cresca rapidamente in Amazon S3 con lo schema salvato nel Catalogo dati e le tabelle delle dimensioni nello storage cluster. Puoi utilizzare le viste con i dati di unione sia di Amazon S3 che dello storage gestito Amazon Redshift collegato.
Un altro modello per la distribuzione dei dati può essere basato sullo stato dei dati a caldo oa freddo, con dati a caldo nello storage gestito di Amazon Redshift e dati a freddo in Amazon S3. In questo esempio, abbiamo i set di dati lineitem
, customer
e orders
. customer
ed orders
portfolio sono set di dati aggiornati di rado rispetto a lineitem
. Possiamo creare una tabella esterna da leggere lineitem
dati da Amazon S3 e lo schema dal database Data Catalog, e caricare customer
ed orders
alle tabelle Amazon Redshift. Lo screenshot seguente mostra una query di join tra i set di dati.
Sarebbe interessante conoscere le statistiche di esecuzione complessive per questa query, che possono essere interrogate dalle tabelle di sistema. Il codice seguente ottiene le statistiche dalla query precedente utilizzando svl_s3query_summary
:
La schermata seguente mostra l'output della query.
Per ulteriori informazioni su questa query, vedere Utilizzo della vista SVL_QUERY_SUMMARY.
Ottimizzazione automatizzata della tabella
Le chiavi di distribuzione e ordinamento sono proprietà della tabella che definiscono il modo in cui i dati vengono archiviati fisicamente. Questi sono gestiti da Amazon Redshift. L'ottimizzazione automatica delle tabelle osserva continuamente il modo in cui le query interagiscono con le tabelle e utilizza il machine learning per selezionare le migliori chiavi di ordinamento e distribuzione per ottimizzare le prestazioni per il carico di lavoro del cluster. Per migliorare le prestazioni, Amazon Redshift sceglie la chiave e le tabelle vengono modificate automaticamente.
Nello scenario precedente, il lineitem
il tavolo aveva distkey (L_ORDERKEY)
, le customer
il tavolo aveva distribution ALL
, e gli ordini avevano distkey (O_ORDERKEY)
.
Ottimizzazione dello spazio di archiviazione
La scelta di un formato dati dipende dalla dimensione dei dati (JSON, CSV o Parquet). Redshift Spectrum attualmente supporta i formati di dati Avro, CSV, Grok, Amazon Ion, JSON, ORC, Parquet, RCFile, RegexSerDe, Sequence, Text e TSV. Quando scegli il tuo formato, considera i dati complessivi scansionati e l'efficienza di I/O, ad esempio con un piccolo set di dati in formato CSV o JSON rispetto allo stesso set di dati in formato Parquet a colonne. In questo caso, per scansioni più piccole, Parquet consuma più capacità di calcolo rispetto a CSV e potrebbe richiedere all'incirca lo stesso tempo di CSV. Nella maggior parte dei casi, Parquet è la scelta ottimale, ma è necessario considerare altri input come volume, costo e latenza.
Tipo di dati SUPER
Il SUPER tipo di dati offre supporto nativo per dati semi-strutturati. Supporta formati di dati nidificati come file JSON e Ion. Ciò consente di acquisire, archiviare ed eseguire query sui dati nidificati in modo nativo in Amazon Redshift. Puoi memorizzare dati in formato JSON in colonne SUPER.
È possibile interrogare il tipo di dati SUPER tramite un'estensione SQL di facile utilizzo che è alimentata da PartiQL. PartiQL è un linguaggio SQL che semplifica l'interrogazione efficiente dei dati indipendentemente dal formato, indipendentemente dal fatto che i dati siano strutturati o semistrutturati.
Metti in pausa e riprendi
Metti in pausa e riprendi ti consente di avviare e arrestare facilmente un cluster per risparmiare sui costi per i carichi di lavoro intermittenti. In questo modo, puoi gestire in modo conveniente un cluster con dati a cui si accede di rado.
Puoi mettere in pausa e riprendere tramite la console, l'API e le pianificazioni definite dall'utente.
AQUA
AQUA per Amazon Redshift è una grande architettura di cache ad alta velocità su Amazon S3 che può scalare per elaborare i dati in parallelo su molti nodi. Inverte l'attuale paradigma di portare i dati al calcolo: AQUA porta il calcolo al livello di storage in modo che i dati non debbano spostarsi avanti e indietro tra i due, il che consente ad Amazon Redshift di eseguire le query molto più velocemente.
La condivisione dei dati
Il condivisione dei dati La funzionalità consente a più cluster Amazon Redshift di eseguire query sui dati situati nei cluster RA3 e nel relativo storage gestito. Questo è l'ideale per i carichi di lavoro isolati l'uno dall'altro, ma i dati devono essere condivisi per la collaborazione tra gruppi senza effettivamente copiare i dati.
Ridimensionamento della concorrenza
Amazon Redshift aggiunge automaticamente cluster transitori in pochi secondi per servire picchi improvvisi di richieste simultanee con prestazioni costantemente veloci. Per ogni giorno di utilizzo, 1 ora di ridimensionamento della concorrenza è disponibile gratuitamente.
Conclusione
In questo post, abbiamo discusso un approccio per migrare un data warehouse Snowflake in un'architettura Lake House con un data lake centrale accessibile tramite Amazon Redshift.
Abbiamo spiegato come utilizzare AWS Glue per spostare i dati da origini come Snowflake nel tuo data lake, catalogarli e renderli pronti per l'analisi in pochi semplici passaggi. Abbiamo anche visto come utilizzare Lake Formation per abilitare la governance e la sicurezza a grana fine nel data lake. Infine, abbiamo discusso di diverse nuove funzionalità di Amazon Redshift che lo rendono facile da usare, con prestazioni migliori e scalabile per soddisfare le esigenze aziendali.
Informazioni sugli autori
Soujanya Konka è uno specialista di Solutions Architect e Analytics presso AWS, focalizzato sull'aiutare i clienti a costruire le loro idee sul cloud. Competenza nella progettazione e implementazione di sistemi informativi aziendali e soluzioni di data warehousing. Prima di entrare in AWS, Soujanya ha lavorato con aziende come HSBC, Cognizant.
Shraddha Patel è un Solutions Architect e Big Data and Analytics Specialist presso AWS. Collabora con clienti e partner per creare soluzioni scalabili, altamente disponibili e sicure nel cloud AWS.
- '
- &
- 100
- 107
- 7
- acceleratore
- accesso
- Il mio account
- aggiuntivo
- Admin
- Vantaggio
- Tutti
- Amazon
- .
- analitica
- Apache
- api
- Applicazioni
- architettura
- in giro
- AWS
- MIGLIORE
- Big Data
- costruire
- affari
- business intelligence
- Ultra-Grande
- casi
- carica
- Cloud
- codice
- conoscitivo
- consapevole
- collaborazione
- Colonna
- Aziende
- Calcolare
- veloce
- Costi
- Creazione
- Credenziali
- Corrente
- Clienti
- dati
- Lago di dati
- data mining
- data warehouse
- data warehouse
- Banca Dati
- banche dati
- giorno
- Design
- Dimensioni
- documenti
- editore
- efficienza
- FAST
- caratteristica
- Caratteristiche
- Nome
- FLOTTA
- Flessibilità
- formato
- futuro
- la governance
- Crescere
- Hardware
- Casa
- Come
- Tutorial
- HSBC
- HTTPS
- IAM
- identificare
- Identità
- informazioni
- Innovazione
- intuizioni
- Intelligence
- IT
- Lavoro
- Offerte di lavoro
- join
- conservazione
- Le
- Tasti
- Lingua
- grandi
- con i più recenti
- apprendimento
- Livello
- Lista
- caricare
- località
- machine learning
- Fare
- gestione
- milione
- Siti di estrazione mineraria
- ML
- modello
- cambiano
- si muove
- Nuove funzionalità
- nodi
- Offerte
- aprire
- minimo
- ordini
- Altro
- paradigma
- partner
- Password
- performance
- plaintext
- Termini e Condizioni
- lavori
- energia
- gamma
- Crudo
- record
- Uscite
- Requisiti
- Risorse
- Correre
- Scala
- scala
- problemi di
- Servizi
- set
- condiviso
- Un'espansione
- Taglia
- piccole
- So
- Soluzioni
- SQL
- inizia a
- Regione / Stato
- statistica
- stats
- conservazione
- Tornare al suo account
- negozi
- di successo
- supporto
- supporti
- sistema
- SISTEMI DI TRATTAMENTO
- test
- L’ORIGINE
- tempo
- top
- trasformazione
- unione
- contro
- Visualizza
- volume
- Magazzino
- Magazzinaggio
- lavori