Selección de tecnología: ¿Cuál es la mejor tecnología de big data OLAP?
El concepto central de la arquitectura Lambda es la "integración del procesamiento por lotes de transmisión", porque con la mejora continua del rendimiento de la máquina y el marco de datos, a los usuarios en realidad no les importa la operación subyacente, ya sea procesamiento por lotes o transmisión. procesamiento Es suficiente devolver resultados de acuerdo con un modelo unificado. Por eso nació la arquitectura Lambda. Así nació la arquitectura Lambda. Muchas aplicaciones, como Spark y Flink, ahora admiten esta arquitectura, lo que significa que una vez que los datos ingresan a la plataforma, puede optar por ejecutar el procesamiento por lotes o ejecutar el procesamiento de transmisión, pero la coherencia es la misma de todos modos.
Kylin
La característica principal de Kylin es el cálculo previo y el cálculo de varios cubos por adelantado. Por lo tanto, la ventaja es la velocidad de consulta rápida y la desventaja es que el retraso es de varios segundos. También es obvia la falta de flexibilidad. No se pueden realizar algunos análisis de datos exploratorios y correlacionales.
La escena adecuada también es relativamente fija y la escena es clara.
ClickHouse
Clickhouse está desarrollado por la empresa rusa yandex. Diseñado para el análisis de datos en línea.
La característica más importante de Clickhouse es, en primer lugar, que es rápido. Para ser rápido, se utiliza el almacenamiento en columnas para soportar mejor la compresión. El volumen de transmisión de datos comprimidos se vuelve más pequeño, por lo que la velocidad es mayor. más rápido, al mismo tiempo, admite Slicing, admite ejecución distribuida y admite SQL.
ClickHouse es muy liviano, admite la compresión de datos y la eventual coherencia de los datos, y su volumen de datos alcanza niveles de petabytes.
Además, Clickhouse no está diseñado para el análisis de correlación, por lo que el soporte para la correlación de múltiples tablas no es muy bueno.
Asimismo, Clickhouse no puede modificar ni eliminar datos y solo puede utilizarse para eliminación o modificación masiva. No admite transacciones completas, ni índices secundarios, etc. Sus deficiencias también son muy obvias.
En comparación con Kylin, ClickHouse es más flexible y tiene mejor soporte para SQL. Sin embargo, en comparación con Kylin, ClickHouse no admite una gran concurrencia, es decir, no puede permitir que muchas personas accedan en línea al mismo. tiempo.
En resumen, ClickHouse se utiliza para el análisis de datos en línea y admite funciones simples. Alta utilización de CPU y muy rápido. La mejor solución es el análisis estadístico del comportamiento.
Hive
Hive es una herramienta con la que debemos estar muy familiarizados y también es la herramienta elegida por los big data warehouses. Puede asignar archivos de datos estructurados a tablas de bases de datos y proporcionar capacidades completas de consulta SQL.
Su función principal es convertir declaraciones SQL en tareas MapReduce correspondientes para su ejecución, de modo que sea posible procesar lotes masivos de datos.
Hive está estrechamente integrado con HDFS y en. big data En sus primeras etapas, proporcionó un programa que podía usar SQL directamente para acceder a HDFS, eliminando la necesidad de escribir tareas de MapReduce. El umbral para big data se ha reducido considerablemente.
Por supuesto, las deficiencias de Hive también son muy obvias. Se define por la latencia de consulta a nivel de minutos, que se estima que es ideal. Pero como herramienta de procesamiento por lotes diario para almacenes de datos, es de hecho un producto estable y calificado.
Presto
Presto mejora en gran medida la velocidad de consulta de Hive. Presto en sí no almacena datos, pero puede acceder a varias fuentes de datos y admite consultas en cascada entre fuentes de datos, lo que admite consultas complejas. , agregaciones, conexiones, etc.
Presto no utiliza MapReduce, sino un motor de ejecución y consulta personalizado. Todo el procesamiento de consultas se produce en la memoria, que es una de las principales razones de su alto rendimiento.
Dado que Presto está basado en memoria, su desventaja puede ser que es propenso a errores de desbordamiento de memoria al operar múltiples asociaciones de tablas grandes.
Además, Presto no admite escenarios OLTP, por lo que no utilice Presto como base de datos.
En comparación con ClickHouse, la ventaja de Presto radica principalmente en el efecto de conexión de varias mesas. En comparación con el soporte de ClickHouse para funciones simples y un escenario único, Presto admite consultas complejas y tiene una gama de aplicaciones más amplia.
Impala
Cloudera lanza Impala para proporcionar consultas SQL interactivas de alto rendimiento y baja latencia en datos HDFS y Hbase.
Impala utiliza los metadatos de Hive y calcula completamente en la memoria. Es el motor de análisis y consulta en tiempo real preferido para big data a escala de petabytes en la plataforma CDH.
Las deficiencias de Impala también son muy obvias. En primer lugar, depende en gran medida de Hive y es un poco menos estable. Los metadatos deben almacenarse en un mysql/pgsql separado. y no admite una gran cantidad de nosql. Sin embargo, se estima que a Cloudera le ha ido bien en la promoción del mercado nacional, y a Impala también le ha ido bien en el mercado nacional.
SparkSQL
SparkSQL, anteriormente Shark, integra perfectamente consultas SQL con programas Spark para consultar datos estructurados en forma de Spark RDD.
SparkSQL ya no se limita a Hive, simplemente es compatible con Hive.
SparkSQL proporciona acceso SQL y interfaces de acceso API.
Admite el acceso a una variedad de fuentes de datos, incluidas Hive, Avro, Parquet, ORC, JSON y JDBC.
Drill
Drill parece rara vez utilizado en China. Por definición, Drill es un motor de consulta interactivo distribuido de baja latencia para datos masivos, que admite múltiples fuentes de datos, incluidos hadoop y NoSQL. almacenamiento y más.
Además de admitir múltiples fuentes de datos, Drill se integra bien con herramientas de BI.
Druid
Druid está diseñado para realizar OLAP de alto rendimiento en conjuntos de datos masivos y sistemas de análisis y almacenamiento de datos.
La arquitectura de Druid es una arquitectura Lambda, que se divide en capa de tiempo real y capa de procesamiento por lotes.
El diseño central de Druid combina ideas de almacenes de datos, bases de datos de series temporales y sistemas de búsqueda para crear un sistema unificado para análisis en tiempo real en una amplia gama de casos de uso.
Druid incorpora las características clave de estos tres sistemas en su capa de recepción, formato de almacenamiento, capa de consulta y arquitectura central, respectivamente.
Actualmente, la deduplicación de Druid no es precisa. Druid es adecuado para procesar datos en un esquema en estrella y no admite operaciones de unión. No soporta operaciones de asociación. Tampoco admite actualizaciones de datos.
La mayor ventaja de Druid es que admite capacidades de consulta y en tiempo real, lo que alivia gran parte del trabajo de desarrollo.
Kudu
Kudu es un motor de almacenamiento distribuido completamente independiente. Muchos conceptos de diseño se toman prestados de HBase, pero a diferencia de HBase, no requiere HDFS y utiliza balsa para la replicación de datos. La estrategia de corte admite rango de claves y hash, etc.
El formato de datos se ha modificado basándose en parquet para admitir índices secundarios, que se parece más a un almacenamiento en columnas que al método kv no modal de HBase.
Kudu también es un proyecto impulsado por Cloudera, que está mejor integrado con Impala y puede admitir operaciones de actualización a través de Impala.
En comparación con los formatos parquet y ORC originales, kudu realiza principalmente actualizaciones incrementales.
Hbase
Hbase se usa ampliamente, principalmente como base de datos KV, y la velocidad de consulta es muy rápida.
Hawq
Hawq es un motor de análisis SQL paralelo masivo nativo de Hadoop. Hawq utiliza la arquitectura MPP para mejorar el optimizador de consultas basado en costos de Hadoop.
Además de procesar eficientemente sus propios datos internos, también puede acceder a fuentes de datos externas a través de PXF, como HDFS, Hive, HBase, JSON, etc. Hawq es totalmente compatible con el estándar SQL y también puede utilizar SQL para completar la extracción de datos y el aprendizaje automático simples. Ya sean características funcionales o rendimiento, HAWQ es más adecuado para crear aplicaciones de almacén de datos analíticos de Hadoop.