Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de S3 Select Pushdown con Presto para mejorar el rendimiento
Con la EMR versión 5.18.0 y posteriores de Amazon, puedes usar S3 SelectSELECT
) y de las operaciones de predicado (por ejemplo, WHERE
) en Amazon S3. Esto permite que las consultas recuperen solo los datos necesarios de Amazon S3, lo que puede mejorar el rendimiento y reducir la cantidad de datos transferidos entre Amazon EMR y Amazon S3 en algunas aplicaciones.
¿Es S3 Select Pushdown adecuado para mi aplicación?
Le recomendamos que realice un análisis comparativo sus aplicaciones con y sin S3 Select Pushdown para ver si su uso puede ser adecuado para su aplicación.
Utilice las siguientes directrices para determinar si la aplicación es candidata a utilizar S3 Select:
-
La consulta filtra más de la mitad del conjunto de datos original.
-
Los predicados del filtro de consulta utilizan columnas que tienen un tipo de datos compatible con Presto y con S3 Select. Los tipos de datos de marca de tiempo, real y doble no son compatibles con S3 Select Pushdown. Le recomendamos que utilice el tipo de datos decimal para los datos numéricos. Para obtener más información acerca de los tipos de datos compatibles con S3 Select, consulte Tipos de datos en la Guía del usuario de Amazon Simple Storage Service.
-
La conexión de red entre Amazon S3 y el EMR clúster de Amazon tiene una buena velocidad de transferencia y ancho de banda disponible. Amazon S3 no comprime HTTP las respuestas, por lo que es probable que el tamaño de la respuesta aumente en el caso de los archivos de entrada comprimidos.
Consideraciones y limitaciones
-
Solo se admiten los objetos almacenados en CSV formato. Los objetos se pueden estar sin comprimir o comprimidos con gzip o bzip2.
-
No se admite la propiedad
AllowQuotedRecordDelimiters
. Si se especifica esta propiedad, se producirá un error en la consulta. -
No se admite el cifrado del lado del servidor de Amazon S3 con claves de cifrado proporcionadas por el cliente (SSE-C) ni el cifrado del lado del cliente.
-
S3 Select Pushdown no sustituye el uso de formatos de archivos comprimidos o en columnas, como Parquet. ORC
Habilitar S3 Select Pushdown con PrestoDB o Trino
Para habilitar S3 Select Pushdown para PrestoDB en EMR Amazon, presto-connector-hive
utilice la clasificación hive.s3select-pushdown.enabled
de configuración que desee true
establecer, tal como se muestra en el ejemplo siguiente. Para obtener más información, consulte Configuración de aplicaciones. El valor de hive.s3select-pushdown.max-connections también se debe establecer. Para la mayoría de las aplicaciones, la configuración predeterminada,
, debería ser suficiente. Para obtener más información, consulte Descripción y ajuste de hive.s3select-pushdown.max-connections más abajo.500
En el caso de Presto SQL en EMR las versiones 6.1.0 a 6.3.0,
sustitúyalo en el siguiente ejemplo por. presto-connector-hive
prestosql-connector-hive
EMRLas versiones 6.4.0 y posteriores de Amazon usan el nuevo nombre Trino en lugar de Presto. SQL Si usa Trino, sustituya
en el ejemplo siguiente por presto-connector-hive
trino-connector-hive
[ { "classification": "
presto-connector-hive
", "properties": { "hive.s3select-pushdown.enabled": "true", "hive.s3select-pushdown.max-connections": "500" } } ]
Descripción y ajuste de hive.s3select-pushdown.max-connections
De forma predeterminada, Presto usa EMRFS como sistema de archivos. La configuración de fs.s3.maxConnections
la clasificación emrfs-site
de configuración especifica el número máximo de conexiones de cliente permitidas desde Amazon S3 hasta EMRFS Presto. El valor predeterminado es 500. S3 Seleccione las desviaciones de Pushdown EMRFS al acceder a Amazon S3 para realizar operaciones de predicados. En este caso, el valor de hive.s3select-pushdown.max-connections
determina el número máximo de conexiones de cliente permitidas para dichas operaciones desde los nodos de trabajo. Sin embargo, cualquier solicitud a Amazon S3 que Presto inicie y que no se retrase (por ejemplo, las GET operaciones) seguirá rigiéndose por el valor de. fs.s3.maxConnections
Si la aplicación muestra el error "Timeout waiting for connection from pool" (Tiempo de espera esperando la conexión desde el grupo), incremente los valores de hive.s3select-pushdown.max-connections
y fs.s3.maxConnections
.