Saltar a contenido

Introducción

ClickHouse es un sistema gestor de base de datos OLAP SQL de alto rendimiento con almacenamiento orientado a columnas, disponible tanto como solución de código abierto y como servicio en la nube. Está diseñado para realizar análisis de alto rendimiento sobre datos a escala de petabytes con tasas de ingesta excepcionalmente altas. El sistema se desarrolló inicialmente a nivel interno en 2009 para dar soporte a la plataforma de análisis Yandex Metrica. Esta compañía facilita a sus clientes la creación de informes personalizados, proporcionando información en tiempo real basada en las visitas y sesiones de los usuarios. Ello implicar soportar la creación de agregados complejos con datos casi en tiempo real

En abril de 2014, Yandex Metrica registraba alrededor de 12.000 millones de eventos (páginas vistas y clics) al día, todos los cuales debían almacenarse para la generación de informes personalizados. Una sola consulta podía escanear millones de filas en unos pocos cientos de milisegundos. ClickHouse se diseñó para permitir la generación de estos informes personalizados sobre la marcha directamente a partir de datos no agregados. ClickHouse se convirtió en código abierto en 2016 y, desde entonces, ha continuado evolucionando hasta convertirse en un sistema OLAP robusto y potente

En internet se pueden encontrar fácilmente múltiples pruebas de rendimiento que demuestran la potencia de ClickHouse en cuanto a velocidad. En concreto, a continuación se muestran diferentes resultados de consultas contra 1.100 millones de registros en formato CSV no comprimido correspondientes a servicios de taxi en NYC

Resumen de características

  • Altas tasas de ingesta: Las aplicaciones basadas en datos, como la analítica web, las finanzas y el comercio electrónico, generan ingentes cantidades de datos. Las bases de datos analíticas necesitan una indexación y una compresión más eficientes, así como la capacidad de distribuir los datos entre múltiples nodos. Además, los datos recientes suelen tener más valor para obtener información en tiempo real que los datos históricos. Por ello, es esencial que las bases de datos puedan ingestar nuevos datos a un ritmo elevado y constante —incluso en ráfagas— al tiempo que procesan los datos más antiguos de manera eficiente. Este equilibrio garantiza que las consultas de generación de informes se ejecuten sin problemas, incluso a medida que los datos aumentan, sin devaluar el rendimiento
  • Latencias bajas: Las consultas suelen dividirse en dos categorías: ad hoc, como el análisis exploratorio de datos, o recurrentes, como las consultas habituales a paneles de control. Cuanto más interactiva es una consulta, más exigentes son los límites sobre los tiempos de respuesta lo que plantea retos en cuanto a optimización y ejecución. Las consultas recurrentes, sin embargo, ofrecen la oportunidad de adaptar la estructura física de la base de datos a estas cargas de trabajo, lo que hace que las técnicas de poda sean esenciales para un procesamiento eficiente de los datos. Además, las bases de datos deben asignar los recursos compartidos —CPU, memoria, disco y E/S de red— en función de la prioridad de las consultas. Esto garantiza que cada consulta reciba un acceso equitativo o prioritario incluso bajo cargas elevadas de consultas, manteniendo el rendimiento en todas las operaciones simultáneas
  • Adaptabilidad: Las bases de datos analíticas modernas deben ser altamente adaptables para facilitar una integración perfecta con la arquitectura de datos existente
  • Disponibilidad: Dada la escasa fiabilidad del hardware/software comercial, las bases de datos deben incluir la replicación de datos para mantener su resiliencia ante fallos en los nodos. ClickHouse es un sistema de bases de datos multinodo que permite el escalado horizontal capaz de ejecutar partes de las consultas en varios nodos simultaneamente
  • El uso del almacenamiento en columnas en ClickHouse, junto con el motor de consultas vectorizadas, mejora la eficiencia de las consultas analíticas. Estas características resultan especialmente útiles para las consultas analíticas típicas que agregan un gran número de filas