Connessioni Amazon S3 - 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à.

Connessioni Amazon S3

È possibile utilizzare AWS Glue per Spark per leggere e scrivere file in Amazon S3. AWS Glue per Spark supporta molti formati di dati comuni archiviati in Amazon S3, tra cui CSV, Avro, JSON, Orc e Parquet. Per ulteriori informazioni sui formati di dati supportati, consulta la pagina Opzioni del formato dati per input e output in AWS Glue per Spark. Ogni formato di dati può supportare una diversa gamma di funzionalità di AWS Glue. Consulta la pagina relativa al formato dei dati per le specifiche del supporto delle funzionalità. Inoltre, puoi leggere e scrivere file con versioni diverse archiviati nei framework di data lake Hudi, Iceberg e Delta Lake. Per ulteriori informazioni sui framework di data lake, consulta la pagina Utilizzo di framework data lake con processi ETL di AWS Glue.

Con AWS Glue è possibile partizionare gli oggetti Amazon S3 in una struttura di cartelle durante la scrittura, quindi recuperarli in base alla partizione per migliorare le prestazioni con una configurazione semplice. È inoltre possibile impostare la configurazione per raggruppare file di piccole dimensioni durante la trasformazione dei dati per migliorare le prestazioni. In Amazon S3 è possibile leggere e scrivere archivi bzip2 e gzip.

Configurazione delle connessioni S3

Per connetterti ad Amazon S3 in AWS Glue con un processo Spark, dovrai soddisfare alcuni prerequisiti:

  • Il processo AWS Glue deve disporre delle autorizzazioni IAM per i bucket Amazon S3 pertinenti.

In alcuni casi, è necessario configurare ulteriori prerequisiti:

  • Quando configuri l'accesso multi-account, configura i controlli dell'accesso appropriati nel bucket Amazon S3.

  • Per motivi di sicurezza, è possibile scegliere di instradare le richieste Amazon S3 tramite un Amazon VPC. Questo approccio può introdurre problematiche relative alla larghezza di banda e alla disponibilità. Per ulteriori informazioni, consulta Endpoint Amazon VPC per Amazon S3.

Indicazioni di riferimento alle opzioni di connessione ad Amazon S3

Indica una connessione ad Amazon S3.

Poiché Amazon S3 gestisce i file anziché le tabelle, oltre a specificare le proprietà di connessione fornite in questo documento, dovrai specificare una configurazione aggiuntiva sul tipo di file. Queste informazioni vengono specificate tramite le opzioni di formato dei dati. Per ulteriori informazioni sulle opzioni di formato, consulta la pagina Opzioni del formato dati per input e output in AWS Glue per Spark. È inoltre possibile specificare queste informazioni mediante l'integrazione con Catalogo dati AWS Glue.

Per un esempio della distinzione tra opzioni di connessione e opzioni di formato, prendi in considerazione come il metodo create_dynamic_frame_from_options recepisce connection_type, connection_options, format e format_options. Questa sezione illustra in modo specifico i parametri forniti a connection_options.

Utilizzare le seguenti opzioni di connessione con "connectionType": "s3":

  • "paths": (Obbligatorio) un elenco dei percorsi Amazon S3 da cui leggere.

  • "exclusions": (facoltativo) una stringa contenente un elenco di JSON di modelli glob in stile Unix da escludere. Ad esempio "[\"**.pdf\"]" esclude tutti i file PDF. Per ulteriori informazioni sulla sintassi glob supportata da AWS Glue, vedere Modelli di inclusione e di esclusione.

  • "compressionType": o "compression": (facoltativo) specifica il modo in cui i dati sono compressi. Utilizza "compressionType" per origini Amazon S3 e "compression" per destinazioni Amazon S3. In genere questo non è necessario se i dati hanno un'estensione del file standard. I valori possibili sono "gzip" e "bzip2"). È possibile che vengano supportati formati di compressione aggiuntivi per formati specifici. Per i dettagli sul supporto delle varie funzionalità, consulta la pagina relativa al formato dei dati.

  • "groupFiles": (facoltativo) il raggruppamento di file è attivato per impostazione predefinita quando l'input contiene più di 50.000 file. Per attivare il raggruppamento con meno di 50.000 file, imposta questo parametro su "inPartition". Per disabilitare il raggruppamento in presenza di più di 50.000 file, imposta il parametro su "none".

  • "groupSize": (facoltativo) dimensione del gruppo target in byte. Il valore di default viene calcolato in base alla dimensione dei dati di input e alle dimensioni del cluster. Quando sono presenti meno di 50.000 file di input, "groupFiles" deve essere impostato su "inPartition" per rendere effettiva la modifica.

  • "recurse": (facoltativo) se è impostato su "true", legge i file in modo ricorsivo in tutte le sottodirectory dei percorsi specificati.

  • "maxBand": (facoltativo, avanzato) questa opzione controlla la durata in millisecondi dopo la quale è probabile che l'elenco s3 sia coerente. I file con timestamp di modifica che rientrano negli ultimi maxBand secondi, vengono tracciati in modo specifico quando si usano JobBookmarks per verificare la consistenza finale in Amazon S3. Per la maggior parte degli utenti non è necessario impostare questa opzione. Il valore di default è 900.000 millisecondi o 15 minuti.

  • "maxFilesInBand": (Facoltativo, avanzato) questa opzione specifica il numero massimo di file da salvare negli ultimi maxBand secondi. Se si supera questo valore, i file aggiuntivi vengono saltati e solo elaborati nella successiva esecuzione del processo. Per la maggior parte degli utenti non è necessario impostare questa opzione.

  • "isFailFast": (Facoltativo) questa opzione determina se un processo ETL AWS Glue generi eccezioni di analisi del lettore. Se impostato su true, i processi non riescono rapidamente se quattro tentativi del processo Spark non riescono a analizzare correttamente i dati.

  • "catalogPartitionPredicate": (facoltativo) utilizzato per la lettura. Il contenuto di una clausola WHERE in SQL. Utilizzato per la lettura dalle tabelle di Catalogo dati con una quantità molto elevata di partizioni. Recupera le partizioni corrispondenti dagli indici di Catalogo dati. Utilizzato con push_down_predicate, un'opzione sul metodo create_dynamic_frame_from_catalog (e altri metodi simili). Per ulteriori informazioni, consulta Filtraggio lato server utilizzando predicati delle partizioni di catalogo.

  • "partitionKeys": (facoltativo) utilizzato per la scrittura. Un array di stringhe di etichette di colonne. AWS Glue partizionerà i dati come specificato da questa configurazione. Per ulteriori informazioni, consulta Scrittura delle partizioni.

  • "excludeStorageClasses": (facoltativo) utilizzato per la lettura. Un array di stringhe che specificano le classi di archiviazione di Amazon S3. AWS Glue escluderà gli oggetti Amazon S3 in base a questa configurazione. Per ulteriori informazioni, consulta Esclusione delle classi di storage Amazon S3.

Sintassi di connessione obsolete per i formati di dati

È possibile accedere a determinati formati di dati utilizzando una sintassi specifica per il tipo di connessione. Questa sintassi è obsoleta. Pertanto, si consiglia di specificare i formati utilizzando il tipo di connessione s3 e le opzioni di formato fornite in Opzioni del formato dati per input e output in AWS Glue per Spark.

"connectionType": "Orc"

Indica una connessione a file archiviati in Amazon S3 nel formato Apache Hive Optimized Row Columnar (ORC).

Utilizzare le seguenti opzioni di connessione con "connectionType": "orc":

  • paths: (Obbligatorio) un elenco dei percorsi Amazon S3 da cui leggere.

  • (altro nome opzione/coppie di valori): qualsiasi opzione aggiuntiva, incluso le opzioni di formattazione, vengono passate direttamente a SparkSQL DataSource.

"connectionType": "parquet"

Indica una connessione a file archiviati in Amazon S3 nel formato di file Apache Parquet.

Utilizzare le seguenti opzioni di connessione con "connectionType": "parquet":

  • paths: (Obbligatorio) un elenco dei percorsi Amazon S3 da cui leggere.

  • (altro nome opzione/coppie di valori): qualsiasi opzione aggiuntiva, incluso le opzioni di formattazione, vengono passate direttamente a SparkSQL DataSource.