Lettura in parallelo dalle tabelle JDBC - 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 in parallelo dalle tabelle JDBC

Puoi impostare le proprietà della tabella JDBC per permettere a AWS Glue di leggere i dati in parallelo. Quando imposti determinate proprietà, indichi a AWS Glue di eseguire query SQL parallele su partizioni logiche dei dati. Puoi controllare il partizionamento impostando un campo hash o un'espressione hash. Puoi anche controllare il numero di operazioni di lettura parallele usate per accedere ai dati.

La lettura delle tabelle JDBC in parallelo è una tecnica di ottimizzazione che può migliorare le prestazioni. Per ulteriori informazioni sul processo di identificazione del momento in cui questa tecnica è appropriata, consulta Ridurre la quantità di scansione dei dati nella guida Best practice per l'ottimizzazione delle prestazioni dei processi AWS Glue per Apache Spark nel Prontuario AWS.

Per abilitare le letture parallele, puoi impostare coppie chiave/valore nel campo dei 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 anche abilitare le letture parallele chiamando i metodi ETL (Extract, Transform and Load, estrazione, trasformazione e caricamento) create_dynamic_frame_from_options e create_dynamic_frame_from_catalog. Per ulteriori informazioni sulla definizione delle opzioni in questi metodi, consulta from_options e from_catalog.

Puoi usare questo metodo per le tabelle JDBC, ovvero la maggior parte delle tabelle i cui dati dai base costituiscono un datastore JDBC. Queste proprietà vengono ignorate quando viene eseguita la lettura delle tabelle Amazon Redshift e Amazon S3.

hashfield

Imposta hashfield sul nome di una colonna nella tabella JDBC da usare per dividere i dati in partizioni. Per ottenere risultati ottimali, questa colonna deve avere una distribuzione uniforme dei valori per distribuire i dati tra le partizioni. Questa colonna può contenere qualsiasi tipo di dati. AWS Glue genera query non sovrapposte eseguite in parallelo per leggere i dati partizionati in base a questa colonna. Ad esempio, se i dati sono distribuiti in modo uniforme in base al mese, è possibile usare la colonna month per leggere ogni mese di dati in parallelo.

'hashfield': 'month'

AWS Glue crea una query per l'hashing del valore di campo a un numero di partizione ed esegue la query per tutte le partizioni in parallelo. Per usare la query personalizzata per partizionare la lettura di una tabella, fornisci un oggetto hashexpression al posto di un oggetto hashfield.

hashexpression

Imposta hashexpression su un'espressione SQL (conforme alla grammatica del motore di database JDBC) che restituisce un numero intero. Un'espressione semplice è il nome di qualsiasi colonna numerica nella tabella. AWS Glue genera query SQL per leggere i dati JDBC in parallelo usando hashexpression nella clausola WHERE per partizionare i dati.

Ad esempio, è possibile usare la colonna numerica customerID per leggere i dati partizionati in base a un numero cliente.

'hashexpression': 'customerID'

Per fare in modo che AWS Glue controlli il partizionamento, fornisci un oggetto hashfield al posto di un oggetto hashexpression.

hashpartitions

Imposta hashpartitions sul numero di letture parallele della tabella JDBC. Se questa proprietà non viene impostata, il valore predefinito è 7.

Imposta, ad esempio, il numero di letture parallele su 5, in modo che AWS Glue legga i dati con cinque query (o meno).

'hashpartitions': '5'