Saltar al contenido principal
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.

¿Qué es la analítica?

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.

Almacenamiento orientado a filas vs. orientado a columna

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:
SELECT MobilePhoneModel, COUNT() AS c
FROM metrica.hits
WHERE
      RegionID = 229
  AND EventDate >= '2013-07-01'
  AND EventDate <= '2013-07-31'
  AND MobilePhone != 0
  AND MobilePhoneModel not in ['', 'iPad']
GROUP BY MobilePhoneModel
ORDER BY c DESC
LIMIT 8;
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):

Replicación e integridad de los datos

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.

Control de acceso basado en roles

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.

Compatibilidad con SQL

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.

Cálculo aproximado

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.

Algoritmos de join adaptativos

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.

Rendimiento superior de las consultas

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