Red de conocimiento informático - Material del sitio web - ¿Qué tan bueno es el "gigante" del análisis de big data Apache Kylin?

¿Qué tan bueno es el "gigante" del análisis de big data Apache Kylin?

1. ¿Qué es Apache Kylin?

En la era actual del big data, cada vez más empresas están empezando a utilizar Hadoop para gestionar datos, pero las herramientas de análisis empresarial existentes (como Tableau, Microstrategy, etc.)

a menudo Hay grandes problemas (Tableau, Microstrategy, etc.)

Generalmente tienen grandes limitaciones, como dificultad en la escalabilidad horizontal, incapacidad para manejar datos a muy gran escala y falta de soporte para Hadoop al usar Hadoop; Para el análisis de datos todavía existen muchas barreras, como la mayoría del hardware de análisis y la falta de soporte para Hadoop. Todavía existen muchos obstáculos para usar Hadoop para el análisis de datos. Por ejemplo, la mayoría de los analistas solo están acostumbrados a usar SQL y Hadoop es difícil de implementar consultas interactivas rápidas. Apache Kylin está diseñado para resolver estos problemas.

Apache Kylin, nombre chino Qilin (Ki (shen) Lin (shou)), es un miembro importante del zoológico de Hadoop.

Apache Kylin es un motor de análisis distribuido de código abierto desarrollado originalmente por eBay y contribuido a la comunidad de código abierto. Proporciona una interfaz de consulta SQL basada en Hadoop y funciones de análisis multidimensional (OLAP) para admitir grandes datos

, puede manejar tareas de análisis a nivel de TB o incluso PB y puede realizar consultas en menos de un segundo en tablas de Hive enormes. internamente y al mismo tiempo admite una alta concurrencia.

Apache

Kylin fue de código abierto en github en octubre de 2014, se unió rápidamente a la incubadora de Apache en noviembre de 2014 y se actualizó oficialmente a un proyecto de nivel superior de Apache en noviembre de 2015

, convirtiéndose en el primer proyecto Apache de alto nivel diseñado y desarrollado íntegramente por un equipo chino. En marzo de 2016, los desarrolladores principales de Apache

Kylin crearon la empresa Kyligence para promover mejor el rápido desarrollo del proyecto y la comunidad.

Kyligence es una empresa de tecnología de datos centrada en la innovación del análisis de big data, que proporciona plataformas y productos de análisis inteligente de nivel empresarial basados ​​en Apache

Kylin, así como soluciones confiables, profesionales y de origen. soporte empresarial de nivel; llevar a cabo capacitación para desarrolladores de Apache Kylin y emitir la única certificación de desarrollador de Apache Kylin del mundo.

2. Los principios básicos y la arquitectura de Kirin

Lo siguiente es el comienzo de una conversación sobre los principios básicos y la arquitectura de Kirin. En pocas palabras, el concepto central de Kylin es el precálculo, es decir, precalcular indicadores que pueden usarse en análisis multidimensionales y guardar los resultados del cálculo en Cube para acceso directo durante el tiempo de consulta. . La conversión de operaciones de alta complejidad, como operaciones de agregación y uniones de tablas múltiples, en consultas sobre resultados precalculados determina la capacidad de Kylin para proporcionar consultas muy rápidas y alta concurrencia

.

La figura anterior muestra un ejemplo de un cubo, asumiendo que tenemos 4 dimensiones, cada nodo en el cubo (llamado cubo) es una combinación diferente de estas 4 dimensiones

, cada una La combinación define un conjunto de dimensiones de análisis (por ejemplo, agrupar

por). El resultado agregado de la métrica se almacena en cada Cuboid. La consulta busca el Cuboide correspondiente según SQL, lee el valor de la métrica y lo devuelve.

Para adaptarse mejor al entorno de big data, Kylin lee los datos de origen del almacén de datos más utilizado, Hive, utiliza

MapReduce como motor para construir Cube y precalcula el resultados almacenados en HBase, mientras se expone la interfaz de consulta a Rest

API/JDBC/ODBC. Dado que Kylin admite el estándar ANSI

SQL, se puede conectar sin problemas con herramientas de análisis de uso común (como Tableau, Excel, etc.). El siguiente es el diagrama de arquitectura de Kylin.

Cuando se trata de construcción de cubos, Kylin proporciona un algoritmo llamado cubo de capas. En pocas palabras, comienza con un cubo base ordenado en orden descendente por número de dimensiones y los reagrega secuencialmente según los resultados de la capa de cubos anterior. Cada nivel de cálculo es una tarea de Map Reduce separada. Como se muestra a continuación.

Los resultados de los cálculos de MapReduce eventualmente se guardarán en HBase, donde la clave de fila de cada registro de fila se compone de dimensiones y el valor de la medición se guarda en la

columna

medio familiar. Para minimizar los costos de almacenamiento, las dimensiones y medidas están codificadas aquí. En la fase de consulta, utilizar las funciones del almacenamiento de columnas HBase garantizará que Kylin tenga una buena respuesta rápida y una alta concurrencia.

Con estos resultados precalculados, al recibir la solicitud SQL del usuario, Kylin ejecutará el plan de consulta para SQL y reescribirá la Unión, Suma, Conteo Distinto, etc. que deben ejecutarse como operaciones de consulta de Cubo. funcionar.

Kylin proporciona una interfaz web nativa donde los usuarios pueden crear y configurar cubos fácilmente, administrar el progreso de la construcción del cubo y proporcionar visualización básica de consultas y resultados SQL.

Según datos disponibles públicamente, el rendimiento de las consultas de Kylin se aplica no solo a un único SQL, sino también a un promedio de decenas de miles de SQL. En un entorno de producción, el 90% de las consultas se devuelven en 3 segundos. . En la reunión Apache Kylin

celebrada el mes pasado, las empresas de Internet de Meituan, JD.com y Baidu compartieron su uso. Tomando a JD Yunhai como ejemplo, un solo cubo tiene un máximo de 8 dimensiones, un máximo de 400 millones de entradas de datos y un espacio de almacenamiento máximo de 800G. 30 cubos ocupan aproximadamente 4T de espacio de almacenamiento. En términos de rendimiento de consultas, cuando el QPS es de aproximadamente 50, el tiempo promedio de todas las consultas está dentro de los 200 ms; cuando el QPS es de aproximadamente 200, el tiempo de respuesta promedio está dentro de 1 s.

Beijing Mobile también demostró los casos de uso de Kylin entre los operadores de telecomunicaciones en la reunión. A juzgar por los datos, Kylin puede lograr un mejor rendimiento de consultas que Hive/SparkSQL en configuraciones de hardware más débiles. En la actualidad, cada vez más empresas nacionales y extranjeras han utilizado Kylin como una parte importante de su entorno de producción de big data, como eBay, UnionPay, Baidu, China Mobile, etc. Si quieres conocer más casos y dinámicas de la comunidad, puedes visitar el sitio web oficial de Apache Kylin o el blog de Kyligence.

3. Nuevas características de Kylin

La última versión 1.5.x de Kylin introduce muchas características nuevas e interesantes y la arquitectura escalable desacopla por completo las tres dependencias principales de Kylin (fuente de datos, motor de cubo y almacenamiento). motor)

Kylin ya no dependerá directamente de Hadoop/HBase/Hive, sino que tratará a Kylin como un sistema único, integrado y consolidado.

Kylin ya no dependerá directamente de Hadoop/HBase/Hive, sino que tratará a Kylin como un sistema único e integrado. Kylin ya no dependerá directamente de Hadoop/HBase/Hive, sino que expondrá la interfaz abstracta como una plataforma extensible y especificará las fuentes de datos, los motores y el almacenamiento utilizados en forma de complementos a través de implementaciones específicas.

Los desarrolladores y usuarios pueden personalizar Kylin para acceder a sistemas de big data distintos de Hadoop/HBase/Hive, como usar Kafka en lugar de Hive como fuente de datos y

Spark en lugar de MapReduce. como motor de cálculo, además de utilizar Cassandra en lugar de HBase como almacenamiento, estos serán más simples. Esto también garantiza que Kylin pueda evolucionar con el desarrollo de la tecnología de plataforma y mantenerse al día con las tendencias tecnológicas.

En Kylin,

1.5.x también ajustó la estructura de almacenamiento de HBase, mejorando el almacenamiento de cortes Cuboid grandes y el escaneo lineal a escaneo paralelo. Los resultados de la comparación de pruebas basadas en decenas de miles de consultas muestran que la estructura de almacenamiento dividida

puede acelerar en gran medida las consultas originales más lentas de 5 a 10 veces, pero la velocidad de las consultas originales más rápidas no es obvia. y la mejora general de la velocidad promedio aproximadamente 2 veces.

Además, 1.5.x introduce el algoritmo de cubo

rápido, que utiliza el lado del mapeador del cálculo para completar la mayor parte de la agregación primero y luego entrega los resultados de la agregación al reductor. , aliviando así la presión del cuello de botella de la red. Experimentos con más de 500 tareas de cubos

muestran que la introducción de cubos rápidos aumenta la velocidad general de las tareas de construcción de cubos en 1,5 veces.

La comunidad se está preparando actualmente para el lanzamiento de Apache Kylin 1.5.2, que actualmente se encuentra en la etapa de votación de la lista de correo de Apache y se espera que esté disponible para su descarga en el sitio web de Kylin esta semana.

En esta versión 1.5.2, Kylin ha solucionado un total de

36 errores, ha mejorado 33 funciones y ha añadido 6 funciones nuevas. Algunas de las principales mejoras funcionales incluyen mejorar la eficiencia de los cálculos de HyperLogLog, acelerar el paso de convertir datos

a hfile durante la creación del cubo, optimizar la experiencia de la interfaz de usuario de las indicaciones de función, admitir vistas de colmena como tablas de búsqueda, etc. .

Otro nuevo anuncio es que Kylin admitirá distribuciones Hadoop de MapR y CDH, como lo demuestran KYLIN-1515 y KYLIN-1672. Las versiones de prueba correspondientes son MapR 5.1 y CDH 5.7.

La interfaz de usuario proporciona una actualización importante que permite a los usuarios personalizar la configuración a nivel de cubo para anular la configuración global en kylin.properties. Por ejemplo, definir kylin.hbase.region.count.max en un cubo establece el número máximo de sectores de región en hbase para ese cubo.

Otra

función importante es la del diagnóstico. Los usuarios a menudo encuentran algunos problemas difíciles, como fallas en la tarea de construcción del cubo, fallas en la consulta SQL o el tiempo de construcción del cubo es demasiado largo, el intervalo de tiempo de la consulta SQL es demasiado largo, etc. Sin embargo, dado que el personal de operación y mantenimiento no está familiarizado con Kylin.hbase.region.count.max, solo pueden establecer el número máximo de sectores de región en hbase para este cubo. Sin embargo, debido a la falta de comprensión profunda del sistema Kylin, es difícil para el personal de operación y mantenimiento encontrar rápidamente la causa raíz.

También vemos a muchos usuarios pidiendo ayuda en la lista de correo y es difícil para la comunidad dar consejos precisos porque no proporcionan suficiente información.

Cuando el usuario encuentre una consulta o un problema de gestión de cubo/modelo, haga clic en el botón de diagnóstico en la página del sistema y el sistema obtendrá automáticamente información relevante sobre el proyecto actual y la empaquetará en un

El archivo zip se descarga en la ubicación local del usuario. El paquete contendrá metadatos relevantes, registros, configuración de HBase, etc. Este paquete también se puede adjuntar cuando un usuario necesita ayuda en la lista de correo.