Lettura di file di input in gruppi di grandi dimensioni - 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à.

Lettura di file di input in gruppi di grandi dimensioni

Puoi impostare le proprietà delle tabelle per permettere a un processo ETL AWS Glue di raggruppare i file quando vengono letti da un datastore Amazon S3. Queste proprietà permettono a ogni attività ETL di leggere un gruppo di file di input in una singola partizione in memoria. Ciò è particolarmente utile quando è presente un numero elevato di file di piccole dimensioni nel datastore Amazon S3. Quando imposti determinate proprietà, indichi ad AWS Glue di raggruppare i file in una partizione dati Amazon S3 e di impostare la dimensione dei gruppi da leggere. Puoi anche impostare queste opzioni durante la lettura da un datastore Amazon S3 con il metodo create_dynamic_frame.from_options.

Per abilitare il raggruppamento di file in una tabella, devi impostare coppie di valore chiave nel campo parametri della struttura della tabella. Utilizza la notazione JSON per impostare un valore per il campo parametri della tabella. Per ulteriori informazioni sulle modifiche delle proprietà di una tabella, consulta Visualizzazione e gestione dei dettagli della tabella.

Puoi usare questo metodo per abilitare il raggruppamento per le tabelle nel catalogo dati con i datastore Amazon S3.

groupFiles

Imposta groupFiles su inPartition per abilitare il raggruppamento dei file all'interno di una partizione dati Amazon S3. AWS Glue abilita automaticamente il raggruppamento se ci sono più di 50.000 file di input, come nel seguente esempio.

'groupFiles': 'inPartition'
groupSize

Imposta groupSize (Dimensione gruppo) alla dimensione target dei gruppi in byte. La proprietà groupSize è facoltativa e se non è presente AWS Glue calcola una dimensione per usare tutti i core della CPU nel cluster, riducendo comunque il numero complessivo di attività ETL e di partizioni in memoria.

Ad esempio, di seguito viene impostata la dimensione del gruppo su 1 MB.

'groupSize': '1048576'

È necessario impostare groupsize con il risultato di un calcolo. Ad esempio 1024 * 1024 = 1048576.

recurse

Imposta recurse su True per leggere in modo ricorsivo i file in tutte le sottodirectory quando si specifica paths come una matrice di percorsi. Non è necessario impostare recurse se paths è una matrice di chiavi di oggetti in Amazon S3 o se il formato di input è parquet/orc, come nell'esempio seguente.

'recurse':True

Se leggi da Amazon S3 utilizzando direttamente il metodo create_dynamic_frame.from_options, aggiungi queste opzioni di connessione. Ad esempio, i seguenti tentativi di raggruppare file in gruppi da 1 MB.

df = glueContext.create_dynamic_frame.from_options("s3", {'paths': ["s3://s3path/"], 'recurse':True, 'groupFiles': 'inPartition', 'groupSize': '1048576'}, format="json")
Nota

groupFiles è supportato per DynamicFrames creati dai seguenti formati di dati: csv, ion, grokLog, json e xml. Questa opzione non è supportata per avro, parquet e orc.