Red de conocimiento informático - Aprendizaje de programación - ¿Cuáles son las diferencias y ventajas de Kylin en comparación con Spark SQL?

¿Cuáles son las diferencias y ventajas de Kylin en comparación con Spark SQL?

SparkSQL es esencialmente MPP basado en el modelo DAG. El núcleo de Kirin es el cubo. La diferencia entre MPP y preprocesamiento de cubos se repite de la siguiente manera:

& gt

MPP [1]

La idea básica es aumentar la computación paralela de las máquinas, de modo que mejorando la velocidad de consulta. Por ejemplo, escanear 800 millones de registros lleva una hora en una máquina, pero si se utilizan 100 máquinas para procesarlo en paralelo, sólo lleva menos de un minuto. Luego conecte el almacén de columnas

y algunos índices para devolver la consulta más rápido. Cabe señalar que la cantidad de cálculos en línea aquí no se ha reducido. Aún es necesario escanear 800 millones de registros una vez, pero hay más máquinas involucradas, por lo que es más rápido.

& gt

Cubo MOLAP[2][3]

Es una tecnología de precomputación. La idea básica es indexar los datos por adelantado y escanear el índice solo durante la consulta sin acceder a los datos originales, lo que acelera la consulta. Un índice tridimensional con 800 millones de registros puede tener solo decenas de miles de registros, lo que tiene una escala muy reducida.

Es pequeño, por lo que la cantidad de cálculo en línea se reduce considerablemente y la consulta puede ser muy rápida. Las tablas de índice también pueden utilizar tecnologías MPP comunes, como el almacenamiento de columnas y el escaneo paralelo. Sin embargo, los índices multidimensionales requieren calcular previamente los grupos multidimensionales y crear el índice fuera de línea.

Requiere mucho cálculo y tiempo, y el índice final también ocupará más espacio en disco.

Excepto...

Además de la diferencia en el preprocesamiento, SparkSQL y Kylin también tienen diferentes preferencias en cuanto al tamaño del conjunto de datos. Si los datos básicamente se pueden guardar en la memoria, la memoria caché de Spark permitirá que SparkSQL funcione bien. Pero para conjuntos de datos muy grandes, Spark no puede evitar lecturas y escrituras frecuentes en el disco, y el rendimiento se reducirá considerablemente. A su vez, el preprocesamiento del cubo de Kylin reducirá en gran medida el tamaño de los datos en línea.

Es más ventajoso para datos a muy gran escala.