ClickHouse

Sistema de gestión de bases de datos de código abierto
Casa de clics
Desarrollador(es)ClickHouse, Inc.
Lanzamiento inicial15 de junio de 2016 ; hace 8 años (2016-06-15)
Versión estable
v24.6.2.17-stable / 5 de julio de 2024 ; hace 5 meses [1] (2024-07-05)
Repositoriogithub.com/ClickHouse/ClickHouse/
Escrito enC++
Sistema operativoLinux , FreeBSD , macOS
LicenciaLicencia Apache 2.0
Sitio webclickhouse.com

ClickHouse es un sistema de gestión de bases de datos en columnas (DBMS) de código abierto orientado a columnas para el procesamiento analítico en línea (OLAP) que permite a los usuarios generar informes analíticos mediante consultas SQL en tiempo real. ClickHouse Inc. tiene su sede en el área de la bahía de San Francisco y su filial, ClickHouse BV, tiene su sede en Ámsterdam (Países Bajos ) .

En septiembre de 2021, en San Francisco, California, ClickHouse se constituyó para albergar la tecnología de código abierto con una inversión inicial de 50 millones de dólares de Index Ventures y Benchmark Capital con la participación de Yandex NV [2] y otros. El 28 de octubre de 2021, la empresa recibió financiación de serie B por un total de 250 millones de dólares con una valoración de 2.000 millones de dólares de Coatue Management , Altimeter Capital y otros inversores. La empresa sigue desarrollando el proyecto de código abierto y la tecnología de la nube de ingeniería.

Historia

La tecnología de ClickHouse se desarrolló por primera vez hace más de 10 años en Yandex , la empresa de tecnología más grande de Rusia. [3] En 2009, Alexey Milovidov y los desarrolladores comenzaron un proyecto experimental para comprobar la hipótesis de si era viable generar informes analíticos en tiempo real a partir de datos no agregados que también se agregan constantemente en tiempo real. Los desarrolladores dedicaron 3 años a probar esta hipótesis y, en 2012, ClickHouse se lanzó en producción por primera vez para impulsar Yandex.Metrica .

A diferencia de las estructuras de datos personalizadas que se utilizaban antes, ClickHouse se podía aplicar de forma más general como sistema de gestión de bases de datos. La potencia y la utilidad de ClickHouse ofrecían un verdadero DBMS orientado a columnas , que permitía a los sistemas generar informes a partir de petabytes de datos sin procesar con latencias inferiores a un segundo. ClickHouse fue ampliamente adoptado en Yandex, incluso para la herramienta de prueba de carga Yandex.Tank y Yandex.Market para supervisar la accesibilidad del sitio y los KPI.

En junio de 2016, el proyecto ClickHouse se lanzó como software de código abierto bajo la licencia Apache 2 para impulsar casos de uso analítico en todo el mundo. Los sistemas que en ese momento ofrecían un rendimiento de servidor de cien mil filas por segundo, ClickHouse los superó con un rendimiento de cientos de millones de filas por segundo [ cita requerida ] .

Desde que ClickHouse estuvo disponible como código abierto en 2016, su popularidad ha crecido exponencialmente, como lo demuestra su adopción por parte de empresas líderes de la industria como Uber, Comcast, eBay y Cisco. [4] ClickHouse también se implementó en el experimento LHCb del CERN para almacenar y procesar metadatos en 10 mil millones de eventos con más de 1000 atributos por evento.

Características

Las principales características del DBMS ClickHouse son: [5]

  • DBMS orientado a columnas . No se almacena nada con los valores. Por ejemplo, se admiten valores de longitud constante para evitar almacenar su "número" de longitud junto a los valores.
  • Escalabilidad lineal. Es posible ampliar un clúster agregando servidores.
  • Tolerancia a fallos. El sistema es un clúster de fragmentos, donde cada fragmento es un grupo de réplicas. ClickHouse utiliza replicación asincrónica multimaestro. Los datos se escriben en cualquier réplica disponible y luego se distribuyen a todas las réplicas restantes. ZooKeeper se utiliza para coordinar procesos, pero no participa en el procesamiento y la ejecución de consultas.
  • Capacidad de almacenar y procesar petabytes de datos.
  • Compatibilidad con SQL . ClickHouse admite unlenguaje extendido similar a SQL que incluye matrices y estructuras de datos anidadas, funciones aproximadas y URI , y la posibilidad de conectar un almacén de clave-valor externo.
  • Alto rendimiento. [6]
    • Se utilizan cálculos vectoriales. Los datos no solo se almacenan en columnas, sino que se procesan en vectores (partes de columnas). Este enfoque permite lograr un alto rendimiento de la CPU .
    • Se admiten muestreos y cálculos aproximados.
    • Está disponible el procesamiento de consultas paralelas y distribuidas (incluidas JOIN ).
  • Compresión de datos.
  • Optimización del disco duro (HDD). El sistema puede procesar datos que no caben en la memoria de acceso aleatorio (RAM).
  • Clientes para la conectividad de bases de datos (DB). Las opciones de conexión a bases de datos incluyen el cliente de consola, la API HTTP o uno de los envoltorios (los envoltorios están disponibles para Python , PHP , [7] NodeJS , [8] Perl , [9] Ruby [10] y R [11] ). El controlador ODBC y el controlador JDBC también están disponibles para ClickHouse. [12] [13]

Limitaciones

ClickHouse tiene algunas características que pueden considerarse desventajas:

  • No hay soporte para transacciones .
  • Falta de implementación completa de ACTUALIZACIÓN/ELIMINACIÓN.

Casos de uso

ClickHouse fue diseñado para consultas OLAP . [5] ClickHouse funciona bien cuando:

  • Funciona con un número pequeño de tablas que contienen una gran cantidad de columnas.
  • Las consultas pueden utilizar una gran cantidad de filas extraídas de la base de datos , pero solo un pequeño subconjunto de columnas.
  • Las consultas son relativamente raras (normalmente alrededor de 100 solicitudes por segundo por servidor).
  • Los valores de las columnas son bastante pequeños y generalmente consisten en números y cadenas cortas (por ejemplo, 60 bytes por URL ).
  • Se requiere un alto rendimiento al procesar una sola consulta (hasta miles de millones de filas por segundo por servidor).
  • El resultado de una consulta suele estar filtrado o agregado.
  • La actualización de datos utiliza un escenario simple (generalmente solo por lotes, sin transacciones complicadas).

Para consultas simples, las latencias de 50 ms son típicas.

Uno de los casos más habituales de ClickHouse es el análisis de registros de servidores. Tras configurar la carga periódica de datos en ClickHouse (se recomienda insertar datos en lotes bastante grandes con más de 1000 filas), es posible analizar incidentes con consultas instantáneas o supervisar las métricas de un servicio, como las tasas de error, los tiempos de respuesta, etc.

ClickHouse también se puede utilizar como almacén de datos interno para analistas internos. ClickHouse puede almacenar datos de diferentes sistemas (como Hadoop o ciertos registros) y los analistas pueden crear paneles internos con los datos o realizar análisis en tiempo real para fines comerciales.

Resultados de referencia

Según pruebas de referencia realizadas por sus desarrolladores, [6] para consultas OLAP ClickHouse es más de 100 veces más rápido que Hive (un DBMS basado en la pila de tecnología Hadoop ) o MySQL (un RDBMS común ).

Véase también

Referencias

  1. ^ "v24.6.2.17-stable". Github . Consultado el 6 de julio de 2024 .
  2. ^ "ClickHouse recauda 250 millones de dólares en la Serie B para ampliar el innovador sistema de gestión de bases de datos OLAP a nivel mundial". 28 de octubre de 2021.
  3. ^ "Yandex, la mayor empresa tecnológica de Rusia, celebra 20 años". The Economist . 30 de septiembre de 2017.
  4. ^ Lardinois, Frederic (6 de diciembre de 2022). «ClickHouse lanza ClickHouse Cloud y amplía su Serie B». TechCrunch . Consultado el 24 de julio de 2023 .
  5. ^ ab "Guía de ClickHouse". clickhouse.yandex . Consultado el 10 de noviembre de 2016 .
  6. ^ ab "Comparación de rendimiento de DBMS analíticos". clickhouse.yandex . Consultado el 10 de noviembre de 2016 .
  7. ^ "smi2/phpClickHouse". GitHub . Consultado el 10 de noviembre de 2016 .
  8. ^ "apla/node-clickhouse". GitHub . Consultado el 10 de noviembre de 2016 .
  9. ^ "elcamlost/perl-DBD-ClickHouse". GitHub . Consultado el 10 de noviembre de 2016 .
  10. ^ "archan937/clickhouse". GitHub . Consultado el 10 de noviembre de 2016 .
  11. ^ "hannesmuehleisen/clickhouse-r". GitHub . Consultado el 10 de noviembre de 2016 .
  12. ^ "ClickHouse/clickhouse-odbc". GitHub . 13 de diciembre de 2021.
  13. ^ "ClickHouse/clickhouse-jdbc". GitHub . 11 de diciembre de 2021.
  • Sitio web oficial de ClickHouse
Retrieved from "https://en.wikipedia.org/w/index.php?title=ClickHouse&oldid=1262911223"