¿Qué es ClickHouse?
ClickHouse® es un sistema de gestión de bases de datos SQL (DBMS) orientado a columna para el procesamiento analítico en línea (OLAP). Está disponible tanto como software de código abierto como servicio en la nube.
ClickHouse® es un sistema de gestión de bases de datos SQL (DBMS) de alto rendimiento, orientado a columna, para procesamiento analítico en línea (OLAP). Está disponible tanto como software de código abierto como servicio en la nube.
Puedes ejecutar esta consulta en el ClickHouse SQL Playground, que selecciona y filtra solo unas pocas de las más de 100 columnas existentes, y devuelve el resultado en cuestión de milisegundos:
Como puedes ver en la sección de estadísticas del diagrama anterior, la consulta procesó 100 millones de filas en 92 milisegundos, con un rendimiento de algo más de 1.000 millones de filas por segundo, o algo menos de 7 GB de datos transferidos por segundo.
DBMS orientado a filas
En una base de datos orientada a filas, aunque la consulta anterior solo procesa unas pocas de las columnas existentes, el sistema sigue necesitando cargar en memoria desde disco los datos de otras columnas existentes. Esto se debe a que los datos se almacenan en disco en fragmentos llamados bloques (normalmente de tamaño fijo, p. ej., 4 KB u 8 KB). Los bloques son las unidades de datos más pequeñas que se leen del disco a la memoria. Cuando una aplicación o base de datos solicita datos, el subsistema de E/S de disco del sistema operativo lee del disco los bloques necesarios. Aunque solo se necesite una parte de un bloque, se lee el bloque completo en memoria (esto se debe al diseño del disco y del sistema de archivos):
DBMS orientado a columna
Dado que los valores de cada columna se almacenan secuencialmente en disco, uno tras otro, no se cargan datos innecesarios cuando se ejecuta la consulta anterior.
Como el almacenamiento y la transferencia por bloques del disco a la memoria se ajustan al patrón de acceso a los datos de las consultas analíticas, solo se leen del disco las columnas necesarias para una consulta, lo que evita operaciones de E/S innecesarias sobre datos que no se utilizan. Esto es mucho más rápido en comparación con el almacenamiento basado en filas, donde se leen filas completas (incluidas las columnas irrelevantes):
La analítica, también conocida como OLAP (Online Analytical Processing), se refiere a consultas SQL con cálculos complejos (p. ej., agregaciones, procesamiento de cadenas y operaciones aritméticas) sobre grandes volúmenes de datos.
A diferencia de las consultas transaccionales (u OLTP, Online Transaction Processing), que leen y escriben solo unas pocas filas por consulta y, por tanto, se completan en milisegundos, las consultas analíticas procesan habitualmente miles de millones y billones de filas.
En muchos casos de uso, las consultas analíticas deben ser “en tiempo real”, es decir, devolver un resultado en menos de un segundo.
Ese nivel de rendimiento solo puede lograrse con la “orientación” de datos adecuada.
Las bases de datos almacenan los datos por filas o por columnas.
En una base de datos orientada a filas, las filas consecutivas de una tabla se almacenan secuencialmente una tras otra. Esta disposición permite recuperar filas rápidamente, ya que los valores de las columnas de cada fila se almacenan juntos.
ClickHouse es una base de datos orientada a columna. En estos sistemas, las tablas se almacenan como una colección de columnas; es decir, los valores de cada columna se almacenan secuencialmente uno tras otro. Esta disposición hace que sea más difícil reconstruir filas individuales (ya que ahora hay huecos entre los valores de una fila), pero las operaciones sobre columnas, como los filtros o la agregación, se vuelven mucho más rápidas que en una base de datos orientada a filas.
La diferencia se explica mejor con una consulta de ejemplo que se ejecuta sobre 100 millones de filas de datos reales anonimizados de analítica web:
ClickHouse utiliza un esquema de replicación multimaestro asíncrono para garantizar que los datos se almacenen de forma redundante en varios nodos. Una vez que se escriben en cualquier réplica disponible, todas las demás réplicas obtienen su copia en segundo plano. El sistema mantiene datos idénticos en las distintas réplicas. La recuperación tras la mayoría de los fallos se realiza de forma automática o, en casos complejos, semiautomática.
ClickHouse implementa la gestión de cuentas de usuario mediante consultas SQL y permite configurar el control de acceso basado en roles, de forma similar a lo que se encuentra en el estándar ANSI SQL y en los sistemas de gestión de bases de datos relacionales más populares.
ClickHouse admite un lenguaje de consultas declarativo basado en SQL que coincide con el estándar ANSI SQL en muchos casos. Entre las cláusulas de consulta admitidas se incluyen GROUP BY, ORDER BY, subconsultas en FROM, la cláusula JOIN, el operador IN, funciones de ventana y subconsultas escalares.
ClickHouse ofrece formas de sacrificar precisión a cambio de rendimiento. Por ejemplo, algunas de sus funciones de agregación calculan de forma aproximada el recuento de valores distintos, la mediana y los cuantiles. Además, las consultas pueden ejecutarse sobre una muestra de los datos para obtener rápidamente un resultado aproximado. Por último, las agregaciones pueden ejecutarse con un número limitado de claves en lugar de hacerlo para todas ellas. Dependiendo de lo sesgada que esté la distribución de las claves, esto puede proporcionar un resultado razonablemente preciso usando muchos menos recursos que un cálculo exacto.
ClickHouse elige el algoritmo de join de forma adaptativa: comienza con hash joins rápidos y recurre a merge joins si hay más de una tabla grande.
ClickHouse es ampliamente conocido por ofrecer un rendimiento de consulta extremadamente rápido.
Para saber por qué ClickHouse es tan rápido, consulta la guía Why is ClickHouse fast?.
Última modificación el 10 de junio de 2026
Anterior
¿Por qué ClickHouse es tan rápido?Fue diseñado para ser rápido. El rendimiento de ejecución de consultas siempre ha sido una prioridad absoluta durante el proceso de desarrollo, pero también se tuvieron en cuenta otras características importantes, como la facilidad de uso, la escalabilidad y la seguridad, para que ClickHouse pudiera convertirse en un verdadero sistema de producción.
Siguiente