Uso di pushdown S3 Select con Presto per migliorare le prestazioni - Amazon EMR

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 select Pushdown con Presto su Amazon. EMR Questa funzione consente a Presto di "eseguire il pushdown" dell'attività di calcolo delle operazioni di proiezione (ad esempio, SELECT) 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 500 dovrebbe essere adeguata. Per ulteriori informazioni, consulta Comprensione e ottimizzazione di hive.s3select-pushdown.max-connections di seguito.

Per Presto SQL EMR nelle versioni 6.1.0 - 6.3.0, presto-connector-hive sostituiscilo nell'esempio seguente con. prestosql-connector-hive

EMRLe versioni di Amazon 6.4.0 e successive utilizzano il nuovo nome Trino anziché Presto. SQL Se usi Trino, sostituisci presto-connector-hive nell'esempio sottostante con 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.