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 Amazon EMR 5.18.0 e versioni successive, puoi utilizzare Pushdown 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, cosa che può migliorare le prestazioni e ridurre la quantità di dati trasferiti tra Amazon EMR e 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 connessione di rete tra Amazon S3 e il cluster Amazon EMR ha una buona velocità di trasferimento e larghezza di banda disponibile. Amazon S3 non comprime le risposte HTTP, pertanto è probabile che le dimensioni della risposta aumentino per file di input compressi.
Considerazioni e limitazioni
-
Sono supportati solo gli oggetti archiviati in formato CSV. 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 con chiavi di crittografia fornite dal cliente (SSE-C) e la crittografia lato client di Amazon S3 non sono supportate.
-
Pushdown S3 Select non è un'alternativa per l'uso di formati di file compressi o basati su colonne, ad esempio ORC o Parquet.
-
Amazon S3 Select non supporta le query interregionali per Presto e Trino.
Abilitare Pushdown S3 Select con PrestoDB o Trino
Per abilitare pushdown S3 Select con PrestoDB su Amazon EMR, utilizza la classificazione di configurazione presto-connector-hive
per impostare hive.s3select-pushdown.enabled
su true
come illustrato nell'esempio 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 PrestoSQL su EMR versioni 6.1.0 - 6.3.0, sostituisci
nell'esempio sottostante con presto-connector-hive
prestosql-connector-hive
.
Amazon EMR versione 6.4.0 e successive utilizza il nuovo nome Trino anziché PrestoSQL. 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 usa EMRFS come file system. L'impostazione fs.s3.maxConnections
nella classificazione di configurazione emrfs-site
specifica il numero massimo consentito di connessioni client ad Amazon S3 tramite EMRFS per Presto. Per impostazione predefinita, questo è 500. Pushdown S3 Select ignora EMRFS durante l'accesso ad Amazon S3 per le operazioni di predicato. 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 spinte verso il basso, ad esempio le operazioni GET, continuano ad 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
.