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
importante
Amazon S3 Select ya no está disponible para los nuevos clientes. Los clientes actuales de Amazon S3 Select pueden seguir utilizando la característica de la forma habitual. Más información
Con la versión 5.18.0 y posteriores de Amazon EMR, puede usar S3 SelectSELECT
) y de las operaciones de predicado (por ejemplo, WHERE
) en Amazon S3. Esto permite que las consultas recuperen únicamente los datos necesarios desde 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 clúster de Amazon EMR tiene una buena velocidad de transferencia y ancho de banda disponible. Amazon S3 no comprime las respuestas HTTP, 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 formato CSV. 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 admiten el cifrado del servidor de Amazon S3 con claves de cifrado proporcionadas por el cliente (SSE-C) ni el cifrado del cliente.
-
S3 Select Pushdown no sustituye al uso de formatos de archivo comprimido o en columnas como ORC o Parquet.
-
Amazon S3 Select no admite consultas entre regiones para Presto y Trino.
Habilitar S3 Select Pushdown con PrestoDB o Trino
Para habilitar S3 Select Pushdown para PrestoDB en Amazon EMR, utilice la clasificación de configuración presto-connector-hive
para establecer hive.s3select-pushdown.enabled
en true
, tal y como se muestra en el siguiente ejemplo. 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
Para PrestoSQL en las versiones 6.1.0 a 6.3.0 de EMR, sustituya
en el siguiente ejemplo por presto-connector-hive
prestosql-connector-hive
.
Las versiones 6.4.0 y posteriores de Amazon EMR utilizan el nuevo nombre Trino en lugar de PrestoSQL. 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 utiliza EMRFS como sistema de archivos. El ajuste fs.s3.maxConnections
de la clasificación de configuración emrfs-site
especifica el número máximo permitido de conexiones de cliente a Amazon S3 a través de EMRFS para Presto. El valor predeterminado es 500. S3 Select Pushdown no utiliza EMRFS al obtener acceso a Amazon S3 para las operaciones de predicado. 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, para todas las solicitudes a Amazon S3 iniciadas por Presto y que no se delegan, como, por ejemplo, las operaciones GET, se sigue teniendo en cuenta 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
.