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à.
Considerazioni
Nota questi comportamenti e limitazioni quando utilizzi il connettore DynamoDB con Apache Spark o Apache Hive.
Considerazioni sull'utilizzo del connettore DynamoDB con Apache Spark
-
Spark SQL non supporta la creazione di una tabella Hive con l'opzione storage-handler. Per ulteriori informazioni, consulta Specificare il formato di archiviazione per le tabelle Hive
nella documentazione di Apache Spark. -
Spark SQL non supporta il funzionamento con il
STORED BY
gestore di archiviazione. Se desideri interagire con una tabella DynamoDB tramite una tabella Hive esterna, usa Hive per creare prima la tabella. -
Per tradurre una query in una query DynamoDB, il connettore DynamoDB utilizza il pushdown dei predicati. Predicate pushdown filtra i dati in base a una colonna mappata alla chiave di partizione di una tabella DynamoDB. Predicate pushdown funziona solo quando si utilizza il connettore con Spark e non con. SQL MapReduce API
Considerazioni sull'utilizzo del connettore DynamoDB con Apache Hive
Ottimizzazione del numero massimo di mappatori
-
Se si utilizza la
SELECT
query per leggere i dati da una tabella Hive esterna mappata a DynamoDB, il numero di attività di mappa EMR su Serverless viene calcolato come il throughput di lettura totale configurato per la tabella DynamoDB, diviso per il throughput per task di mappa. La velocità effettiva predefinita per attività di mappa è 100. -
Il job Hive può utilizzare il numero di attività di mappa oltre al numero massimo di contenitori configurati per applicazione EMR Serverless, a seconda del throughput di lettura configurato per DynamoDB. Inoltre, una query Hive a esecuzione prolungata può consumare tutta la capacità di lettura assegnata alla tabella DynamoDB. Ciò ha un impatto negativo sugli altri utenti.
-
È possibile utilizzare la
dynamodb.max.map.tasks
proprietà per impostare un limite superiore per le attività di mappatura. È inoltre possibile utilizzare questa proprietà per ottimizzare la quantità di dati letti da ogni attività della mappa in base alla dimensione del contenitore dell'attività. -
È possibile impostare la
dynamodb.max.map.tasks
proprietà a livello di query Hive o nellahive-site
classificazione del start-job-run comando. Questo valore deve essere maggiore o uguale a 1. Quando Hive elabora la tua query, il job Hive risultante utilizza solo i valori didynamodb.max.map.tasks
quando legge dalla tabella DynamoDB.
Ottimizzazione della velocità di scrittura per attività
-
Il throughput di scrittura per attività su EMR Serverless viene calcolato come il throughput di scrittura totale configurato per una tabella DynamoDB, diviso per il valore della proprietà.
mapreduce.job.maps
Per Hive, il valore predefinito di questa proprietà è 2. Pertanto, le prime due attività nella fase finale del processo Hive possono consumare tutta la velocità di scrittura. Ciò comporta una riduzione delle scritture di altre attività nello stesso lavoro o in altri lavori. -
Per evitare la limitazione della scrittura, è possibile impostare il valore della
mapreduce.job.maps
proprietà in base al numero di attività nella fase finale o alla velocità di scrittura che si desidera allocare per attività. Imposta questa proprietà nellamapred-site
classificazione del comando su Serverless. start-job-run EMR