Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo presenta la semántica general de la agregación y analiza las diferencias entre los resultados calculados usando consultas por lotes, vistas materializadas y procesamiento de flujos.
Agregados por lotes
La agregación por lotes es el comportamiento predeterminado observado al ejecutar una consulta ad hoc en SQL o procesar datos con DataFrames de Apache Spark.
Una consulta de funciones agregadas escrita sobre una tabla o un origen de datos calcula las estadísticas agregadas de todos los registros del origen de datos. Azure Databricks aprovecha las optimizaciones y los metadatos siempre que es posible para optimizar estas consultas, y puede calcular muchos agregados de forma eficiente para grandes conjuntos de datos.
La latencia de la agregación por lotes y los costes de proceso pueden aumentar a medida que crece el tamaño de los datos, y los valores agregados precalculados de referencia frecuente pueden ahorrar a los usuarios mucho tiempo y dinero. Databricks recomienda usar vistas materializadas para actualizar incrementalmente los valores agregados. Consulte Agregados incrementales.
Agregados con estado
Los agregados definidos en las cargas de trabajo de procesamiento de flujos tienen estado. Los agregados con estado realizan un seguimiento de los registros observados a lo largo del tiempo y vuelven a calcular los resultados al procesar nuevos datos.
Debe usar marcas de agua al calcular agregados con estado. Si se omite una marca de agua de una consulta de agregado con estado, la información de estado se acumula infinitamente con el tiempo. Esto da como resultado la ralentización del procesamiento y puede provocar errores de memoria insuficiente.
No debe usar un agregado con estado para calcular las estadísticas en todo el conjunto de datos. Databricks recomienda usar vistas materializadas para el cálculo de agregado incremental en todo el conjunto de datos. Consulte Agregados incrementales.
Configurar cargas de trabajo que procesan agregados con estado de forma eficiente y correcta requiere comprender cómo llegan los datos desde los sistemas de origen y cómo Azure Databricks usa las marcas de agua, los modos de salida y los intervalos desencadenadores para controlar el estado de la consulta y el cálculo de los resultados.
Agregados incrementales
Puede usar vistas materializadas para calcular muchos valores agregados de forma incremental. Las vistas materializadas realizan un seguimiento automático de los cambios en el origen de datos y aplican las actualizaciones adecuadas a los valores agregados en la actualización. Los resultados devueltos por una vista materializada son equivalentes a los devueltos al volver a calcular los resultados agregados sobre los orígenes de datos con un trabajo por lotes o una consulta ad hoc.
Agregados aproximados
Aunque Azure Databricks destaca en la computación en conjuntos de datos extremadamente grandes, el uso de la aproximación de agregados puede acelerar el procesamiento de consultas y reducir los costos cuando no se requieren resultados precisos.
Usar instrucciones LIMIT a veces es suficiente para obtener una instantánea rápida de los datos, pero no introduce aleatoriedad ni garantiza que el muestreo se distribuya por el conjunto de datos.
Spark SQL tiene los siguientes métodos nativos para aproximar agregaciones sobre datos numéricos o categóricos:
-
approx_count_distinctfunción de agregación -
approx_percentilefunción de agregación -
approx_top_kfunción de agregación
También puede especificar un porcentaje de muestra con TABLESAMPLE para generar una muestra aleatoria a partir de un conjunto de datos y calcular agregados aproximados. Consulte la cláusula TABLESAMPLE.
Supervisión de conjuntos de datos usando estadísticas agregadas
La generación de perfiles de datos usa estadísticas agregadas y distribuciones de datos para realizar un seguimiento de la calidad de los datos a lo largo del tiempo. Puede generar informes para visualizar las tendencias y programar alertas para marcar cambios inesperados en los datos. Consulte Generación de perfiles de datos.