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à.
Uso di pushdown S3 Select con Presto per migliorare le prestazioni
Importante
Amazon S3 Select non è più disponibile per i nuovi clienti. I clienti esistenti di Amazon S3 Select possono continuare a utilizzare la funzionalità come di consueto. Ulteriori informazioni
Con la EMR versione 5.18.0 e successive di Amazon, puoi usare S3 selectSELECT
) e le operazioni di predicato (ad esempio, WHERE
) ad Amazon S3. Ciò consente alle query di recuperare solo i dati richiesti da Amazon S3, il che può migliorare le prestazioni e ridurre la quantità di dati trasferiti tra Amazon e EMR Amazon S3 in alcune applicazioni.
Pushdown S3 Select è adatto alla mia applicazione?
È consigliabile eseguire analisi comparative delle applicazioni con e senza pushdown S3 Select per vedere se l'utilizzo di tale funzionalità può risultare idoneo per l'applicazione.
Per determinare se l'applicazione è idonea per l'uso di S3 Select, utilizza le seguenti linee guida:
-
La query filtra più di metà del set di dati originale.
-
I predicati del filtro della query utilizzano colonne che dispongono di un tipo di dati supportato da Presto e S3 Select. I tipi di dati timestamp, reali e doppi non sono supportati da pushdown S3 Select. Ti consigliamo di usare il tipo di dati decimale per i dati numerici. Per ulteriori informazioni sui tipi di dati supportati per S3 Select, consulta Tipi di dati nella Guida per l'utente di Amazon Simple Storage Service.
-
La tua connessione di rete tra Amazon S3 e il EMR cluster Amazon ha una buona velocità di trasferimento e larghezza di banda disponibile. Amazon S3 non comprime HTTP le risposte, quindi è probabile che la dimensione della risposta aumenti per i file di input compressi.
Considerazioni e limitazioni
-
Sono supportati solo gli oggetti archiviati in CSV formato. Gli oggetti possono essere decompressi o facoltativamente compressi con gzip o bzip2.
-
La proprietà
AllowQuotedRecordDelimiters
non è supportata. Se questa proprietà è specificata, la query ha esito negativo. -
La crittografia lato server di Amazon S3 con chiavi di crittografia fornite dal cliente (SSE-C) e la crittografia lato client non sono supportate.
-
S3 Select Pushdown non sostituisce l'utilizzo di formati di file a colonne o compressi come Parquet. ORC
-
Amazon S3 Select non supporta le query interregionali per Presto e Trino.
Abilitare Pushdown S3 Select con PrestoDB o Trino
Per abilitare S3 Select Pushdown for PrestoDB su AmazonEMR, utilizza la classificazione di presto-connector-hive
configurazione da impostare true
come mostrato nell'esempio hive.s3select-pushdown.enabled
seguente. Per ulteriori informazioni, consulta Configurazione delle applicazioni. Imposta anche il valore hive.s3select-pushdown.max-connections. Per la maggior parte delle applicazioni, l'impostazione di
dovrebbe essere adeguata. Per ulteriori informazioni, consulta Comprensione e ottimizzazione di hive.s3select-pushdown.max-connections di seguito.500
Per Presto SQL EMR nelle versioni 6.1.0 - 6.3.0,
sostituiscilo nell'esempio seguente con. presto-connector-hive
prestosql-connector-hive
EMRLe versioni di Amazon 6.4.0 e successive utilizzano il nuovo nome Trino anziché Presto. SQL Se usi Trino, sostituisci
nell'esempio sottostante con presto-connector-hive
trino-connector-hive
[ { "classification": "
presto-connector-hive
", "properties": { "hive.s3select-pushdown.enabled": "true", "hive.s3select-pushdown.max-connections": "500" } } ]
Comprensione e ottimizzazione di hive.s3select-pushdown.max-connections
Per impostazione predefinita, Presto utilizza EMRFS come file system. L'impostazione fs.s3.maxConnections
nella classificazione della emrfs-site
configurazione specifica il numero massimo di connessioni client consentite ad Amazon S3 EMRFS tramite Presto. Per impostazione predefinita, questo è 500. S3 Select Pushdown bypassa EMRFS quando si accede ad Amazon S3 per operazioni con predicati. In questo caso, il valore di hive.s3select-pushdown.max-connections
determina il numero massimo di connessioni client consentite per tali operazioni dai nodi di lavoro. Tuttavia, tutte le richieste ad Amazon S3 avviate da Presto che non vengono respinte, ad esempio le GET operazioni, continuano a essere regolate dal valore di. fs.s3.maxConnections
Se l'applicazione riceve l'errore di timeout in attesa di connessione dal pool, aumentare il valore di hive.s3select-pushdown.max-connections
e di fs.s3.maxConnections
.