Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Questo tutorial spiega come sfruttare i notebook AWS Glue Studio per creare e ottimizzare in modo interattivo i processi di ETL per un'elaborazione dei dati quasi in tempo reale. Questa guida, indicata tanto per chi è ai primi passi con AWS Glue quanto per chi desideri migliorare le proprie competenze, illustra ogni fase del processo, consentendo di sfruttare tutto il potenziale dei notebook con le sessioni interattive di AWS Glue.
Con AWS Glue Streaming, è possibile creare processi in streaming di estrazione, trasformazione e caricamento (ETL) che vengono eseguiti continuamente e utilizzano dati da origini di streaming in Flusso di dati Amazon Kinesis, Apache Kafka e Streaming gestito da Amazon per Apache Kafka (Amazon MSK).
Prerequisiti
Per seguire questo tutorial è necessario un utente munito delle autorizzazioni della console AWS per utilizzare AWS Glue, Amazon Kinesis, Amazon S3, Amazon Athena, AWS CloudFormation, AWS Lambda e Amazon Cognito.
Utilizzo dei dati in streaming da Amazon Kinesis
Argomenti
Generazione di dati fittizi con Kinesis Data Generator
Nota
Se hai già completato i passaggi del precedente Tutorial: creazione del primo carico di lavoro di streaming utilizzando AWS Glue Studio e hai già installato Kinesis Data Generator sull'account, puoi saltare i passaggi da 1 a 8 riportati di seguito e andare direttamente alla sezione Creazione di un processo di streaming di AWS Glue con AWS Glue Studio.
È possibile generare sinteticamente dati di esempio in formato JSON utilizzando Kinesis Data Generator (KDG). Puoi trovare le istruzioni complete e i dettagli nella documentazione dello strumento
Per iniziare, fai clic su
per eseguire un modello AWS CloudFormation nel tuo ambiente AWS. Nota
Potresti riscontrare un errore nel modello CloudFormation perché alcune risorse, come l'utente Amazon Cognito per Kinesis Data Generator, esistono già nel tuo account AWS. Ciò potrebbe essere dovuto al fatto che l'hai già configurato in un altro tutorial o da un post di un blog. Per risolvere questo problema, puoi provare a utilizzare il modello in un nuovo account AWS oppure in un'altra regione AWS. Queste opzioni consentono di eseguire il tutorial senza entrare in conflitto con le risorse esistenti.
Il modello fornisce un flusso di dati Kinesis e un account Kinesis Data Generator.
Immetti un Nome utente e una Password che KDG utilizzerà per l'autenticazione. Prendi nota del nome utente e della password per utilizzarli in seguito.
Seleziona Avanti fino all'ultimo passaggio. Esprimi il consenso alla creazione di risorse IAM. Verifica la presenza di eventuali errori nella parte superiore dello schermo, ad esempio la password che non soddisfa i requisiti minimi, e implementa il modello.
Vai alla scheda Output dello stack. Una volta implementato, il modello mostrerà la proprietà generata KinesisDataGeneratorUrl. Fai clic su quell'URL.
Inserisci il Nome utente e la Password di cui hai preso nota.
Seleziona la regione che stai utilizzando e seleziona il flusso Kinesis
GlueStreamTest-{AWS::AccountId}
.Immetti il seguente modello:
{ "ventilatorid": {{random.number(100)}}, "eventtime": "{{date.now("YYYY-MM-DD HH:mm:ss")}}", "serialnumber": "{{random.uuid}}", "pressurecontrol": {{random.number( { "min":5, "max":30 } )}}, "o2stats": {{random.number( { "min":92, "max":98 } )}}, "minutevolume": {{random.number( { "min":5, "max":8 } )}}, "manufacturer": "{{random.arrayElement( ["3M", "GE","Vyaire", "Getinge"] )}}" }
Ora puoi visualizzare i dati fittizi con Modello di prova e importare i dati fittizi in Kinesis con Invia dati.
Fai clic su Invia dati e genera 5-10.000 record su Kinesis.
Creazione di un processo di streaming di AWS Glue con AWS Glue Studio
AWS Glue Studio è un'interfaccia visiva che semplifica il processo di progettazione, orchestrazione e monitoraggio delle pipeline di integrazione dei dati. Consente agli utenti di creare pipeline di trasformazione dei dati senza scrivere codice esteso. Oltre all'esperienza di creazione visiva dei processi, AWS Glue Studio include anche un notebook Jupyter supportato dalle sessioni interattive di AWS Glue che utilizzerai nel resto di questo tutorial.
Configurazione del processo delle sessioni interattive di AWS Glue Streaming
Scarica il file del notebook
fornito e salvalo in una directory locale Apri la console AWS Glue e nel riquadro sinistro fai clic su Notebook > Notebook Jupyter > Carica e modifica un notebook esistente. Carica il notebook dal passaggio precedente e fai clic su Crea.
Fornisci un nome e un ruolo per il processo e seleziona il kernel Spark predefinito. Quindi fai clic su Avvia notebook. Per Ruolo IAM, seleziona il ruolo fornito dal modello CloudFormation. Puoi visualizzarlo nella scheda Output di CloudFormation.
Il notebook contiene tutte le istruzioni necessarie per continuare il tutorial. Puoi eseguire le istruzioni sul notebook o seguire questo tutorial per continuare con lo sviluppo del processo.
Esecuzione delle celle del notebook
(Facoltativo) La prima cella di codice,
%help
, elenca tutte le funzioni magic disponibili per il notebook. Per ora puoi saltare questa cella, ma se desideri puoi esplorarla.Inizia con il blocco di codice successivo,
%streaming
. Questa funzione magic imposta il tipo di processo sullo streaming, che consente di sviluppare, eseguire il debug e implementare un processo ETL in streaming di AWS Glue.Esegui la cella successiva per creare una sessione interattiva di AWS Glue. La cella di output contiene un messaggio che conferma la creazione della sessione.
La cella successiva definisce le variabili. Sostituisci i valori con quelli appropriati per il tuo processo ed esegui la cella. Per esempio:
Poiché i dati vengono già trasmessi in streaming a Flussi di dati Kinesis, la cella successiva utilizzerà i risultati del flusso. Esegui la cella successiva. Poiché non ci sono istruzioni di stampa, non è previsto alcun output per questa cella.
Nella cella seguente, esplori il flusso in entrata prelevando un set di esempio e stampandone lo schema e i dati effettivi. Per esempio:
Successivamente, definisci la logica di trasformazione dei dati effettiva. La cella è costituita dal metodo
processBatch
che viene attivato durante ogni microbatch. Esegui la cella. Ad alto livello, eseguiamo le operazioni seguenti per il flusso in entrata:Seleziona un sottoinsieme delle colonne di input.
Rinomina una colonna (o2stats in oxygen_stats).
Ricava nuove colonne (serial_identifier, ingest_year, ingest_month e ingest_day).
Archivia i risultati in un bucket Amazon S3 e crea anche una tabella del catalogo di AWS Glue partizionata.
Nell'ultima cella, il batch di processo si attiva ogni 10 secondi. Esegui la cella e attendi circa 30 secondi affinché compili il bucket Amazon S3 e la tabella del catalogo AWS Glue.
Infine, esplora i dati archiviati utilizzando l'editor di query di Amazon Athena. Puoi visualizzare la colonna rinominata e le nuove partizioni.
Il notebook contiene tutte le istruzioni necessarie per continuare il tutorial. Puoi eseguire le istruzioni sul notebook o seguire questo tutorial per continuare con lo sviluppo del processo.
Salvataggio ed esecuzione del processo AWS Glue
Una volta completato lo sviluppo e il test dell'applicazione utilizzando il notebook delle sessioni interattive, fai clic su Salva nella parte superiore dell'interfaccia del notebook. Una volta salvata l'applicazione, puoi anche eseguirla come processo.
Eliminazione
Per evitare addebiti aggiuntivi sul tuo account, interrompi il processo di streaming che hai avviato seguendo le istruzioni. Puoi farlo arrestando il notebook, operazione che termina la sessione. Svuota il bucket Amazon S3 ed elimina lo stack AWS CloudFormation di cui hai effettuato il provisioning in precedenza.
Conclusioni
In questo tutorial, abbiamo dimostrato come eseguire le operazioni seguenti tramite il notebook AWS Glue Studio:
Creazione di un processo di ETL in streaming utilizzando i notebook
Visualizzazione in anteprima dei flussi di dati in entrata
Codifica e risoluzione dei problemi senza dover pubblicare processi di AWS Glue
Revisione di ogni porzione del codice in uso, rimozione di eventuali errori di debug e stampa delle istruzioni o delle celle del notebook
Pubblicazione del codice come processo di AWS Glue
L'obiettivo di questo tutorial è fornirti un'esperienza di utilizzo pratica di AWS Glue Streaming e delle sessioni interattive. Ti invitiamo a utilizzarlo come riferimento per i tuoi casi d'uso specifici di AWS Glue Streaming. Per ulteriori informazioni, consulta Nozioni di base su AWS Glue sessioni interattive.