Vai al contenuto principale

Introduzione ad AWS Glue: guida passo dopo passo

Impara a configurare AWS Glue, creare un crawler, catalogare i tuoi dati ed eseguire job per convertire i file CSV in formato Parquet, ottimizzando i tuoi processi ETL.
Aggiornato 29 set 2026  · 10 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Le soluzioni cloud-native sono sempre più popolari in vari settori grazie a sicurezza, flessibilità e scalabilità. Una di queste è AWS Glue, che semplifica l’elaborazione dei dati, un elemento chiave per prendere decisioni informate e ottimizzare le operazioni aziendali.

In questo tutorial useremo AWS Glue per mostrare un comune task ETL (Extract, Transform, Load): convertire file CSV archiviati in un bucket S3 in formato Parquet. Usare Parquet migliora sia l’efficienza dell’elaborazione sia le prestazioni delle query.

Presenteremo AWS Glue, le sue funzionalità principali e i vantaggi dell’automazione della preparazione dei dati. Poi ti guideremo nella configurazione dell’account AWS, nella creazione dei ruoli IAM e nell’impostazione dell’accesso al tuo bucket S3. Infine, vedremo come creare un crawler di Glue per scansionare i dataset e generare file Parquet.

Che cos’è AWS Glue?

Prima di passare alla pratica, capiamo cos’è AWS Glue e perché è utile per le attività di data processing.

AWS Glue è un servizio ETL completamente gestito che rende semplice preparare e caricare i dati per l’analisi. Offre un ambiente serverless per creare, eseguire e monitorare job ETL. AWS Glue scopre e profila automaticamente i tuoi dati tramite l’AWS Glue Data Catalog, suggerisce e genera codice ETL e fornisce uno scheduler flessibile per gestire dipendenze, monitoraggio e retry dei job.

Perché usare AWS Glue?

Capire i vantaggi di AWS Glue aiuta ad apprezzarne il valore nel flusso di elaborazione dei dati. Ecco alcuni motivi convincenti per usarlo, illustrati di seguito:

Why choose AWS Glue

Perché scegliere AWS Glue? Immagine dell’autore

  • Serverless: non c’è bisogno di effettuare il provisioning o gestire server, riducendo l’overhead operativo.
  • Generazione automatica del codice: AWS Glue può generare automaticamente codice Python o Scala per i job ETL.
  • Pianificazione e monitoraggio integrati dei job: questa funzionalità rende semplice pianificare e monitorare i job ETL.
  • Scoperta e catalogazione dei dati: i crawler di AWS Glue possono scoprire, catalogare e preparare automaticamente i dati per l’analisi.
  • Integrazione con altri servizi AWS: funziona senza problemi con servizi come Amazon S3, Amazon RDS, and Amazon Redshift.
  • Conveniente: paghi solo per le risorse consumate durante l’esecuzione dei job ETL.

AWS Glue: guida passo dopo passo

Ed ecco la parte interessante: impariamo a usare Glue per un’attività di data processing molto comune, la conversione di file CSV in Parquet.

Se sei nuovo su AWS, il primo passo è creare un account e poi accedere alla console di gestione.

  • Vai su AWS e registrati.
  • Una volta creato l’account, accedi all’AWS Management Console.

AWS Identity and Access Management (IAM) consente di gestire in modo sicuro l’accesso ai servizi e alle risorse AWS.

Dobbiamo creare un ruolo IAM per consentire a Glue di accedere ai servizi rilevanti. Nel nostro caso, il servizio principale è S3, che ospita i nostri file CSV.

Il Tutorial sullo storage AWS è un ottimo modo per i nuovi utenti AWS di approfondire sistemi come S3. 

I passaggi principali per creare quel ruolo IAM sono descritti di seguito, a partire dalla Management Console:

  • Vai al servizio IAM.
  • Fai clic su "Roles" nella barra laterale sinistra, poi su "Create role".
  • Sotto "Choose a use case", seleziona "Glue" e fai clic su "Next: Permissions".
  • Cerca e seleziona le seguenti policy:
    • AWSGlueServiceRole
    • AmazonS3FullAccess (Nota: in produzione dovresti creare una policy più restrittiva).
  • Dai un nome al ruolo (ad es. "GlueETLRole") ed eventualmente una descrizione, ma non è obbligatoria. Infine, fai clic su "Create role".

Steps to create an IAM role in the AWS console

Passaggi per creare un ruolo IAM nella console AWS. Immagine dell’autore

La Guida completa a AWS IAM illustra i passaggi per usare IAM per mettere in sicurezza ambienti AWS, gestire l’accesso con utenti, gruppi e ruoli e descrivere le best practice per una sicurezza solida.

Salveremo sia i file CSV in input sia i file Parquet in output su Amazon S3.

I dati di input per questo esempio sono stati creati a scopo illustrativo e si trovano nel repository GitHub dell’autore:

  • athletes.csv: contiene informazioni sugli atleti, inclusi ID, nome, paese, sport ed età.
  • events.csv: elenca vari eventi, inclusi ID evento, sport, nome evento, data e sede.
  • medals.csv: registra le informazioni sulle medaglie, collegando eventi e atleti alle medaglie vinte.

Ora possiamo configurare il nostro bucket S3 come segue:

  • Vai al servizio S3 nell’AWS Management Console.
  • Fai clic su "Create bucket" e dagli un nome univoco (ad es. "my-glue-csv-etl-bucket").
  • Lascia le impostazioni predefinite del bucket per semplicità e crea il bucket.
  • Crea due cartelle nel tuo bucket: "input" e "output".

AWS S3 bucket and folder creations

Flusso di creazione del bucket e delle cartelle S3. Immagine dell’autore 

Dopo aver creato le due cartelle, il contenuto del tuo bucket dovrebbe apparire così:

View of folders inside an S3 bucket

Vista delle cartelle all’interno del bucket S3. Immagine dell’autore

Ora possiamo caricare questi file CSV di input nella cartella "input".

Files in an S3 bucket

Contenuto della cartella “input” del bucket S3. Immagine dell’autore

Un crawler Glue serve a scoprire e catalogare automaticamente i nostri dati. Questa sezione spiega come creare un crawler che scansioni tutti i file CSV in input.

I passaggi principali sono i seguenti:

  • Vai al servizio AWS Glue nell’AWS Management Console.
  • Nella barra laterale sinistra, sotto "Data catalog", fai clic su "Crawlers".
  • Fai clic su "Create crawler".
  • Dai un nome al crawler (ad es. "CSV-to-Parquet-Crawler") e lascia vuoto il campo descrizione, poi fai clic su "Next".
  • Dobbiamo specificare “S3” come sorgente dati, scegliendo "Add data source" come tipo di sorgente del crawler e facendo clic su "Next".

AWS Glue crawler creation flow in the console

Flusso di creazione del crawler AWS Glue nella console - parte 1. Immagine dell’autore

  • Scegli "S3" come data store e specifica il percorso del tuo bucket S3, selezionando “Browse S3”. Poi fai clic su "Next".
  • Seleziona “Crawl all sub-folders”.
  • Seleziona “Add an S3 data source”, quindi fai clic su "Next".
  • Prima di procedere, verifica il tipo di dati “S3”, poi “Next”.

AWS Glue crawler creation flow in the console

Flusso di creazione del crawler AWS Glue nella console - parte 2. Immagine dell’autore

Dopo aver collegato il bucket S3, dobbiamo associare il ruolo IAM creato in precedenza per consentire a Glue di accedere ai bucket S3. Il nome del nostro ruolo è “GlueETLRole”.

  • Scegli il nome del ruolo dal campo “Existing IAM role”.
  • Fai clic su “Next”.

AWS Glue crawler creation flow in the console

Flusso di creazione del crawler AWS Glue nella console - parte 3. Immagine dell’autore

Il passaggio successivo è creare un database. Il database “paris_olympics_db” che creeremo funge da repository centrale nell’AWS Glue Data Catalog per archiviare e organizzare i metadati dei nostri file CSV.

Il catalogo abiliterà una scoperta efficiente dei dati e semplificherà il nostro processo ETL per combinare e convertire i dati di atleti, eventi e medaglie in formato Parquet.

Al momento non abbiamo ancora alcun database e i passaggi per crearlo sono illustrati di seguito:

  • Seleziona “Add database”, che aprirà una nuova finestra per la creazione del database. Assegnagli il nome “paris_olympics_db”, lasciando tutto il resto come predefinito, e fai clic su “Create database”.

AWS Glue crawler creation flow in the console

Flusso di creazione del crawler AWS Glue nella console - parte 4. Immagine dell’autore

Dalla scheda originale in cui colleghiamo un database, aggiorna la sezione “Target database” e scegli il database appena creato. Poi fai clic su “Next”.

AWS Glue crawler creation flow in the console

Flusso di creazione del crawler AWS Glue nella console - parte 5. Immagine dell’autore

Infine, rivedi tutto e fai clic su “Create crawler”.

AWS Glue crawler review and create view

Vista “Review and create” del crawler AWS Glue. Immagine dell’autore

Dopo aver creato il crawler, dovremmo vedere il seguente risultato che ne conferma la creazione:

Glue crawler successful creation message

Creazione del crawler Glue riuscita. Immagine dell’autore

Ora che abbiamo creato il crawler, è il momento di eseguirlo e vedere come cataloga i nostri dati.

AWS Glue run crawler button

Pulsante “Run crawler” di Glue. Immagine dell’autore

  • Seleziona il tuo crawler dall’elenco.
  • Fai clic su "Run crawler".
  • Attendi che il crawler finisca. Potrebbe richiedere alcuni minuti.
  • Al termine, vai su "Databases" sotto "Data catalog" nella barra laterale sinistra.
  • Fai clic sul database che è stato creato.
  • Dovresti vedere una tabella che rappresenta la struttura dei tuoi dati CSV.

View of tables created in the database from Glue crawler execution

Vista delle tabelle create nel database dall’esecuzione del crawler Glue. Immagine dell’autore

Con il catalogo dati creato, possiamo ora creare un job Glue per combinare i nostri file CSV e convertirli in formato Parquet. Questa sezione ti guida nella creazione del job Glue e fornisce il codice Python necessario.

  • Vai su "Jobs" sotto "ETL" nella console AWS Glue nella barra laterale sinistra.
  • Seleziona lo Script editor per aprire un editor in cui scrivere codice Python e fai clic su “Create script”.

Creating and running an AWS Glue job

Creazione ed esecuzione di un job Glue - parte 1. Immagine dell’autore

La creazione dello script apre la seguente scheda in cui possiamo assegnare un nome al job, nel nostro caso “CS”.

  • Nella sezione del codice, incolla il codice seguente, quindi fai clic su “Save”.

Creating and running a Glue job

Creazione ed esecuzione di un job Glue - parte 2. Immagine dell’autore

Il codice Python corrispondente è riportato di seguito:

import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
from pyspark.sql.functions import col, to_date

# Initialize the Spark and Glue contexts
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)

# Set Spark configurations for optimization
spark.conf.set("spark.sql.adaptive.enabled", "true")
spark.conf.set("spark.sql.adaptive.coalescePartitions.enabled", "true")

# Get job parameters
args = getResolvedOptions(sys.argv, ['JOB_NAME'])

# Set the input and output paths
input_path = "s3://glue-csv-etl-bucket/input/"
output_path = "s3://glue-csv-etl-bucket/output/"

# Function to read CSV and write Parquet
def csv_to_parquet(input_file, output_file):
    try:
        # Read CSV
        df = spark.read.option("header", "true") \
                       .option("inferSchema", "true") \
                       .option("mode", "PERMISSIVE") \
                       .option("columnNameOfCorruptRecord", "_corrupt_record") \
                       .csv(input_file)
        
        # Print schema for debugging
        print(f"Schema for {input_file}:")
        df.printSchema()
        
        # Convert date column if it exists (assuming it's in the format M/d/yyyy)
        if "date" in df.columns:
            df = df.withColumn("date", to_date(col("date"), "M/d/yyyy"))
        
        # Write Parquet
        df.write.mode("overwrite").parquet(output_file)
        
        print(f"Successfully converted {input_file} to Parquet at {output_file}")
        print(f"Number of rows processed: {df.count()}")
    except Exception as e:
        print(f"Error processing {input_file}: {str(e)}")

# List of files to process
files = ["athletes", "events", "medals"]

# Process each file
for file in files:
    input_file = f"{input_path}{file}.csv"
    output_file = f"{output_path}{file}_parquet"
    csv_to_parquet(input_file, output_file)

job.commit()
print("Job completed.")

Vediamo brevemente cosa succede nel codice:

  1. Import: importa le librerie necessarie da AWS Glue, PySpark e dalla libreria standard di Python.
  2. Inizializzazione: inizializza i contesti Spark e Glue e imposta configurazioni Spark per l’ottimizzazione.
  3. Parametri del job: recupera i parametri del job, in particolare il nome del job, dagli argomenti della riga di comando.
  4. Percorsi: definisce i percorsi di input e output per i file CSV e Parquet nel bucket S3.
  5. Definizione di funzione: definisce la funzione csv_to_parquet() per leggere un file CSV, stamparne lo schema, convertire una colonna di data se esiste e scrivere i dati come file Parquet. Gestisce le eccezioni durante l’elaborazione.
  6. Elaborazione dei file: elabora un elenco di file (athletes, events, medals) chiamando la funzione csv_to_parquet() su ciascuno.
  7. Commit del job: effettua il commit del job e stampa un messaggio di completamento.

Prima di eseguire il job, dobbiamo compilare le seguenti configurazioni aggiuntive nella sezione “Job details”:

  • Fornisci il ruolo IAM creato in precedenza per consentire l’esecuzione del job.
  • Imposta il “Type” del Job su “Spark”, lascia gli altri campi predefiniti e fai “Save”.
  • Quindi, esegui il job!

Creating and running a Glue job

Creazione ed esecuzione di un job Glue - parte 3. Immagine dell’autore

Dopo aver eseguito correttamente il job, possiamo vedere ulteriori dettagli sullo stato dell’esecuzione:

AWS Glue job run details view

Vista dei dettagli di esecuzione del job AWS Glue. Immagine dell’autore

Accedere e monitorare i dettagli dell’esecuzione è importante per mantenere pipeline di dati efficienti e affidabili. Queste metriche forniscono informazioni preziose e aiutano a:

  • Ottimizzazione delle prestazioni: tracciare i tempi di esecuzione per migliorare l’efficienza dei job e l’allocazione delle risorse.
  • Gestione dei costi: monitorare l’uso delle risorse (DPU, worker) per allinearsi al budget e ottimizzare le spese.
  • Pianificazione della capacità: usare le metriche di esecuzione per prevedere le esigenze di risorse e pianificare la scalabilità.

L’esecuzione riuscita di questo job ha convertito ciascun file CSV nel corrispondente file Parquet e li ha archiviati nella cartella “output” come mostrato di seguito:

  • A sinistra troviamo cartelle con lo stesso nome del file CSV originale.
  • La parte a destra corrisponde ai file Parquet per ciascun file CSV.

Contents of the output folder inside the S3 bucket

Contenuto della cartella di output all’interno del bucket S3. Immagine dell’autore

Conclusioni e prossimi passi

Questo tutorial ha trattato AWS Glue e le sue funzionalità. Ti ha guidato nella configurazione di un ambiente AWS e nell’esplorazione dell’interfaccia AWS Glue. Ti ha anche mostrato come creare ed eseguire un crawler Glue per catalogare i dati, creare un job Glue per trasformarli e convertire con successo i file CSV in formato Parquet.

Puoi ampliare quanto appreso impostando trigger per automatizzare i workflow, implementando gestione degli errori e logging e ottimizzando i file Parquet per prestazioni ancora migliori. Puoi anche esplorare l’esecuzione di query sui tuoi dati con AWS Athena o Amazon Redshift Spectrum.

Inoltre, monitora l’utilizzo e i costi AWS e pulisci le risorse quando non sono più necessarie per evitare addebiti inutili.

I corsi Introduction to AWS e AWS Cloud Technology and Services possono essere ottimi prossimi passi per continuare a imparare! 

Il primo offre basi solide su AWS e cloud computing, ideale per chi inizia o vuole ripassare i concetti chiave. Il secondo è incentrato sull’apprendimento pratico, per approfondire l’uso dei servizi AWS.

FAQs

Quali sono le best practice per ottimizzare le prestazioni dei file Parquet?

Per ottimizzare le prestazioni dei file Parquet, valuta di regolare le dimensioni dei file (l’ideale è tra 128 MB e 1 GB), partizionare i dati per query efficienti e impostare il codec di compressione appropriato (come Snappy o Gzip). Queste strategie riducono l’I/O e migliorano la velocità delle query quando lavori con dataset di grandi dimensioni in strumenti come AWS Athena.

Come posso implementare la gestione degli errori e il logging nei job AWS Glue?

AWS Glue si integra con Amazon CloudWatch, permettendoti di tracciare stato dei job, errori e log personalizzati. Puoi configurare i tuoi job Glue per scrivere i log su CloudWatch, facilitando il monitoraggio delle prestazioni, la risoluzione dei problemi e l’esecuzione fluida dei processi ETL.

Quali sono alcuni casi d’uso comuni di AWS Glue oltre la conversione da CSV a Parquet?

AWS Glue è versatile e può gestire attività come deduplicazione, arricchimento e trasformazioni di schema. È comunemente usato per integrare dati da più fonti (ad es. RDS, S3, Redshift) in un formato unificato, preparare dati per modelli di machine learning e svolgere trasformazioni per data lake.

Come si confronta AWS Glue con altri strumenti ETL come Apache Airflow o Databricks?

AWS Glue è un servizio ETL completamente gestito e serverless, mentre Apache Airflow è uno strumento open-source di orchestrazione di workflow che richiede più configurazione e gestione dell’infrastruttura. Databricks, invece, è pensato per analisi dati e machine learning su larga scala. AWS Glue è ottimo per facilità d’uso e integrazione con altri servizi AWS, ma per workflow altamente complessi strumenti come Airflow o Databricks possono offrire maggiore flessibilità.

Come posso automatizzare i job AWS Glue con i trigger?

I trigger in AWS Glue ti permettono di automatizzare i workflow ETL pianificando i job perché vengano eseguiti in orari specifici o dopo determinati eventi, ad esempio quando arrivano nuovi dati in un bucket S3. Puoi impostare trigger basati su tempo o eventi tramite la console AWS Glue, abilitando un’elaborazione dei dati senza intervento manuale.


Zoumana Keita 's photo
Author
Zoumana Keita
LinkedIn
Twitter

Un data scientist poliedrico che ama condividere le proprie conoscenze e restituire valore agli altri, Zoumana è un content creator su YouTube e un top writer tech su Medium. Trova soddisfazione nel parlare in pubblico, programmare e insegnare. Zoumana ha due lauree magistrali: la prima in informatica con specializzazione in Machine Learning conseguita a Parigi, Francia, e la seconda in Data Science alla Texas Tech University negli Stati Uniti. Ha iniziato la sua carriera come Software Developer presso Groupe OPEN in Francia, per poi passare a IBM come Machine Learning Consultant, dove ha sviluppato soluzioni di IA end-to-end per compagnie assicurative. Successivamente, è entrato in Axionable, la prima startup di Sustainable AI con sede a Parigi e Montréal. Lì ha lavorato come Data Scientist e ha implementato prodotti di IA, principalmente casi d’uso di NLP, per clienti in Francia, Montréal, Singapore e Svizzera. Inoltre, ha dedicato il 5% del suo tempo ad attività di Ricerca e Sviluppo. Attualmente lavora come Senior Data Scientist presso IFC - World Bank Group.

Argomenti
AWS
Data Engineering

Approfondisci AWS e il data engineering con questi corsi!

Corso

Concetti di sicurezza e gestione dei costi su AWS

3 ore
11.2K
Impara tutto quello che c'è da sapere sulla sicurezza, la governance e l'ottimizzazione dei costi di AWS per prepararti alla certificazione Cloud Practitioner.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro