Tutorial: scrittura di uno script ETL in AWS Glue per Ray - AWS Glue

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

Tutorial: scrittura di uno script ETL in AWS Glue per Ray

Ray ti dà la possibilità di scrivere e dimensionare attività distribuite in modo nativo in Python. AWS Glue per Ray offre ambienti Ray serverless a cui è possibile accedere sia dai processo sia dalle sessioni interattive. Le sessioni interattive di Ray sono disponibili in anteprima. Il sistema di processo AWS Glue fornisce un modo ottimizzato per gestire ed eseguire le tue attività attraverso una pianificazione, da un trigger o dalla console AWS Glue.

La combinazione di questi strumenti di AWS Glue crea una potente toolchain che puoi utilizzare per i carichi di lavoro di estrazione, trasformazione e caricamento (ETL), un caso d'uso molto comune per AWS Glue. Questo tutorial ti illustrerà le basi per creare questa soluzione.

Supportiamo anche l'utilizzo di AWS Glue per Spark per i tuoi carichi di lavoro ETL. Per un tutorial sulla scrittura di script AWS Glue per Spark, consulta la pagina Tutorial: Scrivere uno script di AWS Glue for Spark. Per ulteriori informazioni sui motori disponibili, consulta la pagina AWS Glue per Spark e AWS Glue per Ray. Ray è in grado di affrontare vari tipi di attività nell'ambito dell'analisi, del machine learning (ML) e dello sviluppo di applicazioni.

In questo tutorial, estrarrai, trasformerai e caricherai un set di dati CSV ospitato in Amazon Simple Storage Service (Amazon S3). Inizierai con il set di dati dei dati di record di viaggio della New York City Taxi and Limousine Commission (TLC), archiviato in un bucket Amazon S3 pubblico. Per ulteriori informazioni su questo set di dati, consulta il Registry of Open Data su AWS.

Trasformerai i tuoi dati con le trasformazioni predefinite disponibili nella libreria Ray Data. Ray Data è una libreria per la preparazione di set di dati progettata da Ray e inclusa per impostazione predefinita negli ambienti AWS Glue per Ray. Per ulteriori informazioni sulle librerie incluse in modo predefinito, consulta la pagina Moduli disponibili con i processi Ray. Potrai quindi scrivere i dati trasformati in un bucket Amazon S3 da te controllato.

Prerequisiti: per questo tutorial, è necessario disporre di un account AWS con accesso ad AWS Glue e Amazon S3.

Passaggio 1: creazione di un bucket in Amazon S3 per contenere i dati di output

Avrai bisogno di un bucket Amazon S3 da te controllato che funga da sink per i dati creati in questo tutorial. È possibile creare questo bucket con la procedura seguente.

Nota

Se desideri scrivere i tuoi dati in un bucket esistente sotto il tuo controllo, puoi saltare questo passaggio. Prendi nota di yourBucketName, il nome del bucket esistente, da utilizzare nei passaggi successivi.

Creazione di un bucket per l'output del processo Ray
  • Crea un bucket seguendo i passaggi descritti in Creating a bucket nella Guida per l'utente di Amazon S3.

    • Quando scegli un nome per il bucket, prendi nota di yourBucketName, al quale farai riferimento nei passaggi successivi.

    • Per altre configurazioni, le impostazioni suggerite fornite nella console Amazon S3 dovrebbero funzionare correttamente in questo tutorial.

    Ad esempio, la finestra di dialogo per la creazione del bucket potrebbe avere questo aspetto nella console Amazon S3.

    Una finestra di dialogo nella console Amazon S3 utilizzata per configurare un nuovo bucket.

Passaggio 2: creazione di un ruolo e una policy IAM per il processo Ray

Il tuo processo richiederà un ruolo AWS Identity and Access Management (IAM) dotato di quanto segue:

  • Autorizzazioni concesse dalla policy gestita da AWSGlueServiceRole. Queste sono le autorizzazioni di base necessarie per eseguire un processo AWS Glue.

  • Autorizzazioni Read a livello di accesso per la risorsa nyc-tlc/* Amazon S3.

  • Autorizzazioni Write a livello di accesso per la risorsa yourBucketName/* Amazon S3.

  • Una relazione di fiducia che consente al principale glue.amazonaws.com di assumere il ruolo.

È possibile creare questo ruolo con la procedura seguente.

Creazione di un ruolo IAM per il processo AWS Glue per Ray
Nota

È possibile creare un ruolo IAM seguendo molte procedure diverse. Per ulteriori informazioni o opzioni su come effettuare il provisioning delle risorse IAM, consulta la documentazione di AWS Identity and Access Management.

  1. Crea una policy che definisca le autorizzazioni Amazon S3 precedentemente delineate seguendo i passaggi descritti in Creating IAM policies (console) with the visual editor nella Guida per l'utente di IAM.

    • Quando selezioni un servizio, scegli Amazon S3.

    • Quando selezioni le autorizzazioni per la tua policy, collega i seguenti set di operazioni per le seguenti risorse (menzionate in precedenza):

      • Autorizzazioni con livello di accesso di lettura per la risorsa nyc-tlc/* Amazon S3.

      • Autorizzazioni con livello di accesso di scrittura per la risorsa yourBucketName/* di Amazon S3.

    • Quando scegli un nome per la policy, prendi nota di YourPolicyName, al quale farai riferimento nei passaggi successivi.

  2. Crea un ruolo per il processo AWS Glue per Ray seguendo i passaggi descritti nella sezione Creating a role for an AWS service (console) nella Guida per l'utente di IAM.

    • Quando selezioni un'entità di servizio AWS attendibile, scegli Glue. Questo creerà automaticamente la relazione di attendibilità necessaria per il processo.

    • Quando selezioni le policy per la policy delle autorizzazioni, collega le seguenti policy:

      • AWSGlueServiceRole

      • YourPolicyName

    • Quando scegli il nome del ruolo, prendi nota di YourRoleName, al quale farai riferimento nei passaggi successivi.

Passaggio 3: creazione ed esecuzione di un processo AWS Glue per Ray

In questo passaggio, crei un processo AWS Glue utilizzando la AWS Management Console, fornisci uno script di esempio ed esegui il processo. Quando crei un processo, nella console viene creato uno spazio in cui archiviare, configurare e modificare lo script Ray. Per informazioni su come creare i processi, consulta Accesso alla console AWS Glue.

In questo tutorial, affrontiamo il seguente scenario ETL: hai la necessità di leggere i record di Gennaio 2022 dal set di dati di New York City TLC Trip Record, aggiungere una nuova colonna (tip_rate) al set di dati combinando i dati nelle colonne esistenti, rimuovere una certa quantità di colonne che non sono rilevanti per la tua analisi corrente e quindi scrivere i risultati su yourBucketName. Il seguente script Ray esegue questi passaggi:

import ray import pandas from ray import data ray.init('auto') ds = ray.data.read_csv("s3://nyc-tlc/opendata_repo/opendata_webconvert/yellow/yellow_tripdata_2022-01.csv") # Add the given new column to the dataset and show the sample record after adding a new column ds = ds.add_column( "tip_rate", lambda df: df["tip_amount"] / df["total_amount"]) # Dropping few columns from the underlying Dataset ds = ds.drop_columns(["payment_type", "fare_amount", "extra", "tolls_amount", "improvement_surcharge"]) ds.write_parquet("s3://yourBucketName/ray/tutorial/output/")
Creazione ed esecuzione di un processo AWS Glue per Ray
  1. Nella AWS Management Console, accedi alla pagina di destinazione di AWS Glue.

  2. Nel riquadro di navigazione laterale, scegli Processi ETL.

  3. In Crea processo, scegli Ray script editor, quindi scegli Crea, come nella figura seguente.

    Una finestra di dialogo nella console AWS Glue utilizzata per creare un processo Ray.
  4. Incolla il testo completo dello script nel riquadro Script e sostituisci l'eventuale testo presente.

  5. Vai ai Dettagli del processo e imposta la proprietà Ruolo IAM su YourRoleName.

  6. Seleziona Salva, quindi scegli Esegui.

Passaggio 4: ispezione dell'output

Dopo aver eseguito il processo AWS Glue, è necessario verificare che l'output corrisponda alle aspettative di questo scenario. È possibile farlo con la seguente procedura.

Verifica della corretta esecuzione del processo Ray
  1. Nella pagina dei dettagli del processo, vai a Esecuzioni.

  2. Dopo alcuni minuti, dovresti vedere un'esecuzione con lo Stato di esecuzione impostato su Operazione riuscita.

  3. Accedi alla console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3/ e controlla yourBucketName. Dovresti visualizzare i file scritti nel tuo bucket di output.

  4. Leggi i file Parquet e verificane il contenuto. Puoi farlo utilizzando gli strumenti esistenti. Se non disponi di un processo per la convalida dei file Parquet, puoi farlo nella console AWS Glue con una sessione interattiva AWS Glue, utilizzando Spark o Ray (in anteprima).

    In una sessione interattiva, hai accesso alle librerie Ray Data, Spark o pandas, fornite per impostazione predefinita (in base al motore scelto). Per verificare i contenuti del tuo file, è possibile utilizzare i metodi di ispezione comuni disponibili in tali librerie, ad esempio count, schema e show. Per ulteriori informazioni sulle sessioni interattive nella console, consulta la pagina Using notebooks with AWS Glue Studio and AWS Glue.

    Poiché hai confermato che i file sono stati scritti nel bucket, puoi affermare con relativa certezza che se l'output presenta problemi, non sono correlati alla configurazione IAM. Configura la sessione con yourRoleName per avere accesso ai file pertinenti.

Se non vedi i risultati previsti, esamina i contenuti per la risoluzione dei problemi in questa guida per identificare e correggere l'origine dell'errore. Per interpretare gli stati di errore durante l'esecuzione del processo, consulta la pagina Stati di esecuzione dei processi AWS Glue. Puoi trovare i contenuti relativi alla risoluzione dei problemi nel capitolo Risoluzione dei problemi relativi a AWS Glue. Per errori specifici relativi ai processi Ray, consulta la sezione Risoluzione dei problemi relativi agli errori di AWS Glue per Ray nei log nel capitolo sulla risoluzione dei problemi.

Passaggi successivi

Ora hai visto ed eseguito un processo ETL utilizzando AWS Glue per Ray dall'inizio alla fine. Puoi utilizzare le seguenti risorse per capire quali strumenti AWS Glue per Ray mette a disposizione per trasformare e interpretare i tuoi dati su larga scala.