Aceleración de consultas de Azure Data Lake Storage

Mediante el uso de aceleración de consultas, las aplicaciones y los marcos de análisis pueden optimizar el procesamiento de datos. Solo recuperan los datos que necesitan para realizar una operación determinada. Este enfoque reduce el tiempo y la potencia de procesamiento necesarios para obtener información sobre los datos almacenados.

Información general

La aceleración de consultas acepta predicados filtrados y proyecciones en columnas. Al usar estos predicados y proyecciones, las aplicaciones pueden filtrar filas y columnas al leer datos del disco. Solo los datos que cumplen las condiciones de un predicado se transfieren a través de la red a la aplicación. Este enfoque reduce la latencia de red y el coste de cómputo.

Utiliza SQL para especificar los predicados del filtro de fila y las proyecciones de columnas en una solicitud de aceleración de consultas. Tenga en cuenta las siguientes restricciones:

  • Una solicitud solo procesa un archivo.
  • La aceleración de consultas no soporta funciones relacionales avanzadas de SQL, como uniones y agrupaciones por agregados.
  • La aceleración de consultas admite datos con formato CSV y JSON como entrada para cada solicitud.

La característica de aceleración de consultas no se limita a Data Lake Storage (cuentas de almacenamiento que tienen habilitado el espacio de nombres jerárquico en ellos). La aceleración de consultas es compatible con los blobs de las cuentas de almacenamiento que no tienen habilitado un espacio de nombres jerárquico. Esta compatibilidad significa que puedes lograr la misma reducción en la latencia de red y los costes de cálculo cuando procesas datos que ya tienes almacenados como blobs en cuentas de almacenamiento.

Para obtener un ejemplo de cómo usar la aceleración de consultas en una aplicación cliente, consulte Filtrado de datos mediante la aceleración de consultas de Azure Data Lake Storage.

Flujo de datos

En el diagrama siguiente se muestra cómo una aplicación típica usa la aceleración de consultas para procesar datos.

Diagrama que muestra cómo una aplicación utiliza la aceleración de consultas para filtrar y procesar datos.

  1. La aplicación cliente solicita datos de archivo especificando predicados y proyecciones de columna.

  2. La aceleración de consultas analiza la consulta SQL especificada y distribuye el trabajo para analizar y filtrar los datos.

  3. Los procesadores leen los datos del disco, analizan los datos usando el formato adecuado y luego filtran los datos aplicando los predicados y proyecciones en columna especificados.

  4. La aceleración de consultas combina los fragmentos de respuesta para fluir de vuelta a la aplicación cliente.

  5. La aplicación cliente recibe y analiza la respuesta transmitida. La aplicación no necesita filtrar ningún otro dato y puede aplicar directamente el cálculo o transformación deseados.

Mejor rendimiento a un costo menor

La aceleración de consultas optimiza el rendimiento al reducir la cantidad de datos que tu aplicación transfiere y procesa.

Para calcular un valor agregado, las aplicaciones suelen recuperar todos los datos de un archivo y, a continuación, procesar y filtrar los datos localmente. Un análisis de los patrones de entrada y salida (E/S) para cargas de trabajo analíticas revela que las aplicaciones suelen requerir solo 20% de los datos que leen para realizar cualquier cálculo dado. Esta estadística es cierta incluso después de aplicar técnicas como la poda de particiones. Este resultado significa que las aplicaciones transfieren, analizan y filtran innecesariamente 80% de los datos. Este patrón, diseñado para quitar datos innecesarios, incurre en un costo de proceso significativo.

Aunque Azure cuenta con una red de alto rendimiento, tanto en rendimiento como en latencia, transferir datos innecesariamente a través de esa red sigue siendo costoso para el rendimiento de las aplicaciones. Al filtrar los datos no deseados durante la solicitud de almacenamiento, la aceleración de consultas elimina este costo.

Además, la carga de CPU necesaria para analizar y filtrar datos innecesarios requiere que tu aplicación provea más y más máquinas virtuales grandes para hacer su trabajo. Al transferir esta carga de proceso a la aceleración de consultas, las aplicaciones pueden obtener ahorros significativos en los costos.

Aplicaciones que pueden beneficiarse de la aceleración de consultas

La aceleración de consultas está diseñada para marcos de análisis distribuido y aplicaciones de procesamiento de datos:

  • Los frameworks de análisis distribuido como Apache Spark y Apache Hive incluyen una capa de abstracción de almacenamiento dentro del framework. Estos motores también incluyen optimizadores de consultas que pueden incorporar conocimiento de las funcionalidades del servicio de E/S subyacente al determinar un plan de consulta óptimo para las consultas de usuario. Estos frameworks integran la aceleración de consultas. Como resultado, los usuarios de estos marcos ven una latencia de consulta mejorada y un menor costo total de propiedad sin tener que realizar ningún cambio en las consultas.

  • Las aplicaciones de procesamiento de datos suelen realizar transformaciones de datos a gran escala que pueden no conducir directamente a insights analíticos, por lo que no siempre utilizan marcos de análisis distribuidos ya establecidos. Estas aplicaciones suelen tener una relación más directa con el servicio de almacenamiento subyacente, por lo que pueden beneficiarse directamente de funciones como la aceleración de consultas.

Para obtener un ejemplo de cómo una aplicación puede integrar la aceleración de consultas, consulte Filtrado de datos mediante la aceleración de consultas de Azure Data Lake Storage.

Precios

Debido al aumento de la carga de cómputo dentro del servicio Azure Data Lake Storage, el modelo de precios para la aceleración de consultas difiere del modelo normal de transacciones de Azure Data Lake Storage. La aceleración de consultas cobra un costo por la cantidad de datos examinados, así como un costo por la cantidad de datos devueltos al autor de la llamada. Para más información, consulte Precios de Azure Data Lake Storage.

A pesar del cambio en el modelo de facturación, el modelo de precios de la aceleración de consultas está diseñado para reducir el coste total de propiedad de una carga de trabajo, dada la reducción de los costes de VM mucho más caros.

Pasos siguientes