{"id":54918,"date":"2020-01-07T00:00:00","date_gmt":"2020-01-06T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb"},"modified":"2020-02-18T14:02:58","modified_gmt":"2020-02-18T11:02:58","slug":"ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb","title":{"rendered":"Uso de Clickhouse como reemplazo de ELK, Big Query y TimescaleDB","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/\">Clickhouse<\/a><\/noindex> \u2014 es un sistema de gesti\u00f3n de bases de datos columnar para el procesamiento en l\u00ednea de consultas anal\u00edticas (OLAP) de c\u00f3digo abierto, desarrollado por Yandex. Es utilizado por Yandex, CloudFlare, VK.com, Badoo y otros servicios en todo el mundo para almacenar realmente grandes vol\u00famenes de datos (insertando miles de filas por segundo o petabytes de datos almacenados en disco).<\/p>\n<p>En una base de datos \u2018de fila\u2019, cuyos ejemplos son MySQL, Postgres, MS SQL Server, los datos se almacenan en el siguiente orden: <\/p>\n<p><img decoding=\"async\" alt=\"Uso de Clickhouse como reemplazo de ELK, Big Query y TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/398f260de0152baf3cc11d884fa0d52d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn este caso, los valores asociados a una fila se almacenan f\u00edsicamente uno al lado del otro. En las bases de datos columnar, los valores de diferentes columnas se almacenan por separado, mientras que los datos de una columna se almacenan juntos:<\/p>\n<p><img decoding=\"async\" alt=\"Uso de Clickhouse como reemplazo de ELK, Big Query y TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/938a2ee3d588ac866ec92bb3ea09c253.png\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Ejemplos de bases de datos columnar incluyen Vertica, Paraccel (Actian Matrix, Amazon Redshift), Sybase IQ, Exasol, Infobright, InfiniDB, MonetDB (VectorWise, Actian Vector), LucidDB, SAP HANA, Google Dremel, Google PowerDrill, Druid, kdb+.<\/p>\n<p>La empresa es un reenv\u00edo de correo <noindex><a rel=\"nofollow\" href=\"https:\/\/qwintry.com\/\">Qwintry<\/a><\/noindex> comenz\u00f3 a usar Clickhouse en 2018 para generar informes y qued\u00f3 muy impresionada por su simplicidad, escalabilidad, soporte SQL y velocidad. La rapidez de esta base de datos era casi m\u00e1gica.<\/p>\n<h3>Simplicidad<\/h3>\n<p>\nClickhouse se instala en Ubuntu con un solo comando. Si conoces SQL, puedes comenzar a usar Clickhouse de inmediato para tus necesidades. Sin embargo, esto no significa que puedas ejecutar \u2018show create table\u2019 en MySQL y hacer un copiado y pegado de SQL en Clickhouse. <\/p>\n<p>En comparaci\u00f3n con MySQL, hay diferencias importantes en los tipos de datos en las definiciones de esquemas de tablas, por lo que necesitar\u00e1s algo de tiempo para modificar las definiciones de los esquemas de tablas y estudiar los motores de las tablas.<\/p>\n<p>Clickhouse funciona perfectamente sin ning\u00fan software adicional, pero si deseas usar la replicaci\u00f3n, necesitar\u00e1s instalar ZooKeeper. El an\u00e1lisis de rendimiento de las consultas muestra resultados excelentes: las tablas del sistema contienen toda la informaci\u00f3n y todos los datos se pueden obtener mediante el viejo y aburrido SQL.<\/p>\n<h3>Rendimiento<\/h3>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/benchmark.html#%5B%2522100000000%2522,%5B%2522ClickHouse%2522,%2522Vertica%2522,%2522MySQL%2522%5D,%5B%25220%2522,%25221%2522%5D%5D\">Benchmark<\/a><\/noindex> comparaciones de Clickhouse con Vertica y MySQL en la configuraci\u00f3n del servidor: dos sockets Intel\u00ae Xeon\u00ae CPU E5-2650 v2 @ 2.60GHz; 128 GiB RAM; md RAID-5 en 8 discos duros SATA de 6TB, ext4.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.altinity.com\/blog\/2017\/6\/20\/clickhouse-vs-redshift\">Benchmark<\/a><\/noindex> comparaciones de Clickhouse con el almacenamiento de datos en la nube Amazon RedShift.<\/li>\n<li>Extractos del blog <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/how-cloudflare-analyzes-1m-dns-queries-per-second\/\">Cloudflare sobre el rendimiento de Clickhouse<\/a><\/noindex>:<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Uso de Clickhouse como reemplazo de ELK, Big Query y TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/b6ef9fbad8e8c864a227bcffd97ec0fe.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa base de datos ClickHouse tiene un dise\u00f1o muy simple: todos los nodos en el cl\u00faster tienen la misma funcionalidad y solo utilizan ZooKeeper para la coordinaci\u00f3n. Construimos un peque\u00f1o cl\u00faster de varios nodos y realizamos pruebas, durante las cuales descubrimos que el sistema tiene un rendimiento bastante impresionante, que se corresponde con las ventajas declaradas en los benchmarks de bases de datos anal\u00edticas. Decidimos examinar m\u00e1s detenidamente el concepto detr\u00e1s de ClickHouse. El primer obst\u00e1culo para la investigaci\u00f3n fue la falta de herramientas y la escasez de la comunidad de ClickHouse, por lo que profundizamos en el dise\u00f1o de esta base de datos para entender c\u00f3mo funciona.<\/p>\n<p>ClickHouse no admite la recepci\u00f3n de datos directamente desde Kafka, ya que es solo una base de datos, por lo que escribimos nuestro propio servicio de adaptadores en el lenguaje Go. Le\u00eda los mensajes codificados de Cap\u2019n Proto de Kafka, los transformaba en TSV y los insertaba en ClickHouse en paquetes a trav\u00e9s de la interfaz HTTP. Posteriormente, reescribimos este servicio para utilizar la biblioteca Go junto con nuestra propia interfaz de ClickHouse para mejorar el rendimiento. Al evaluar el rendimiento de la recepci\u00f3n de paquetes, descubrimos algo importante: el rendimiento de ClickHouse depende en gran medida del tama\u00f1o del paquete, es decir, de la cantidad de filas insertadas simult\u00e1neamente. Para entender por qu\u00e9 ocurre esto, estudiamos c\u00f3mo ClickHouse almacena los datos.<\/p>\n<p>El motor principal, o m\u00e1s bien, el conjunto de motores para tablas, utilizado por ClickHouse para el almacenamiento de datos es MergeTree. Este motor es conceptualmente similar al algoritmo LSM utilizado en Google BigTable o Apache Cassandra, sin embargo, evita la construcci\u00f3n de una tabla intermedia en memoria y escribe los datos directamente en el disco. Esto le otorga una excelente capacidad de escritura, ya que cada paquete insertado se clasifica solo por la 'clave primaria' primary key, se comprime y se escribe en el disco para formar un segmento. <\/p>\n<p>La ausencia de una tabla de memoria o de cualquier concepto de \"frescura\" de los datos tambi\u00e9n significa que solo se pueden agregar, ya que el sistema no admite modificaciones o eliminaciones. Hasta hoy, la \u00fanica forma de eliminar datos es eliminarlos por meses calendario, ya que los segmentos nunca cruzan el l\u00edmite del mes. El equipo de ClickHouse est\u00e1 trabajando activamente para hacer que esta funci\u00f3n sea configurable. Por otro lado, esto hace que la escritura y la fusi\u00f3n de segmentos sean sin conflictos, por lo que el ancho de banda de recepci\u00f3n se escala linealmente con el n\u00famero de inserciones paralelas hasta que se produce la saturaci\u00f3n de I\/O o n\u00facleos. <br \/>\nSin embargo, esta circunstancia tambi\u00e9n significa que el sistema no es adecuado para peque\u00f1os paquetes, por lo que se utilizan servicios de Kafka y ensertores para la acumulaci\u00f3n. Adem\u00e1s, ClickHouse contin\u00faa fusionando segmentos en segundo plano, de modo que muchas peque\u00f1as partes de informaci\u00f3n se unir\u00e1n y se grabar\u00e1n m\u00e1s veces, aumentando as\u00ed la intensidad de escritura. No obstante, demasiadas partes no relacionadas provocar\u00e1n una reducci\u00f3n agresiva de las inserciones hasta que se complete la fusi\u00f3n. Hemos encontrado que el mejor compromiso entre la recepci\u00f3n de datos en tiempo real y el rendimiento de recepci\u00f3n es la aceptaci\u00f3n de un n\u00famero limitado de inserciones por segundo en la tabla.<\/p>\n<p>La clave para el rendimiento de la lectura de tablas es la indexaci\u00f3n y la ubicaci\u00f3n de los datos en el disco. Independientemente de cu\u00e1n r\u00e1pida sea el procesamiento, cuando el motor necesita escanear terabytes de datos desde el disco y solo utilizar una parte de ellos, tomar\u00e1 tiempo. ClickHouse es un almac\u00e9n columnar, por lo que cada segmento contiene un archivo para cada columna con valores ordenados para cada fila. As\u00ed, columnas enteras que no est\u00e1n en la consulta pueden omitirse en primer lugar, y luego varias celdas pueden procesarse en paralelo con ejecuci\u00f3n vectorizada. Para evitar un escaneo completo, cada segmento tiene un peque\u00f1o archivo de \u00edndice. <\/p>\n<p>Dado que todas las columnas est\u00e1n ordenadas por \"clave primaria\", el archivo de \u00edndice contiene solo las marcas (filas capturadas) de cada N-\u00e9sima fila, para poder almacenarlas en memoria incluso para tablas muy grandes. Por ejemplo, se puede establecer una configuraci\u00f3n predeterminada de \"marcar cada 8192 filas\", entonces el \"escaso\" \u00edndice de una tabla con 1 bill\u00f3n de filas, que f\u00e1cilmente cabe en memoria, ocupar\u00e1 solo 122,070 caracteres. <\/p>\n<h3>Desarrollo del sistema<\/h3>\n<p>\nEl desarrollo y perfeccionamiento de ClickHouse se puede seguir en <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/yandex\/ClickHouse\/pulse\">el repositorio de Github<\/a><\/noindex> y verificar que el proceso de \"maduraci\u00f3n\" se est\u00e1 llevando a cabo a un ritmo impresionante. <\/p>\n<p><img decoding=\"async\" alt=\"Uso de Clickhouse como reemplazo de ELK, Big Query y TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/19211da28e42178d26dff7623689df71.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Popularidad<\/h3>\n<p>\nParece que la popularidad de ClickHouse est\u00e1 creciendo exponencialmente, especialmente en la comunidad de habla rusa. La conferencia del a\u00f1o pasado High Load 2018 (Mosc\u00fa, 8-9 de noviembre de 2018) mostr\u00f3 que monstruos como vk.com y Badoo utilizan ClickHouse, con el que insertan datos (como registros) desde decenas de miles de servidores simult\u00e1neamente. En un video de 40 minutos, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=pbbcMcrQoXw\">Yuri Nasriddinov del equipo de VKontakte explica c\u00f3mo se hace esto<\/a><\/noindex>. Pronto publicaremos la transcripci\u00f3n en Habr para facilitar el trabajo con el material.<\/p>\n<h3>\u00c1reas de aplicaci\u00f3n<\/h3>\n<p>\nDespu\u00e9s de dedicar un tiempo a la investigaci\u00f3n, creo que hay \u00e1reas en las que ClickHouse puede ser \u00fatil o capaz de reemplazar completamente a otras soluciones m\u00e1s tradicionales y populares como MySQL, PostgreSQL, ELK, Google Big Query, Amazon RedShift, TimescaleDB, Hadoop, MapReduce, Pinot y Druid. A continuaci\u00f3n se detallan los usos de ClickHouse para modernizar o reemplazar por completo las bases de datos mencionadas anteriormente. <\/p>\n<h3>Ampliaci\u00f3n de MySQL y PostgreSQL<\/h3>\n<p>\nRecientemente reemplazamos en parte MySQL por ClickHouse para la plataforma de boletines informativos <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mautic.org\/\">Mautic newsletter<\/a><\/noindex>. El problema era que MySQL, debido a un dise\u00f1o poco acertado, registraba cada correo enviado y cada enlace en ese correo con un hash base64, creando una enorme tabla MySQL (email_stats). Despu\u00e9s de enviar a los suscriptores del servicio solo 10 millones de correos, esta tabla ocupaba 150 GB de espacio en disco, y MySQL comenzaba a 'ralentizarse' en consultas simples. Para resolver el problema del espacio en disco, utilizamos con \u00e9xito la compresi\u00f3n de la tabla InnoDB, que la redujo a una cuarta parte. Sin embargo, a\u00fan no tiene sentido almacenar m\u00e1s de 20-30 millones de correos electr\u00f3nicos en MySQL solo para leer el historial, ya que cualquier consulta simple que por alguna raz\u00f3n deba realizar un escaneo completo provoca swapping y una gran carga en I\/O, lo que nos generaba regularmente alertas de Zabbix.<\/p>\n<p><img decoding=\"async\" alt=\"Uso de Clickhouse como reemplazo de ELK, Big Query y TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/11b3ee4b1a8b7c9457bd3871bd12049f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nClickhouse utiliza dos algoritmos de compresi\u00f3n que reducen el volumen de datos aproximadamente en <noindex><a rel=\"nofollow\" href=\"https:\/\/www.altinity.com\/blog\/2017\/11\/21\/compression-in-clickhouse\">3-4 veces<\/a><\/noindex>, pero en este caso particular, los datos eran especialmente 'compresibles'. <\/p>\n<p><img decoding=\"async\" alt=\"Uso de Clickhouse como reemplazo de ELK, Big Query y TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/d192502073d57967620aa07da0bbfa0c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Reemplazo de ELK<\/h3>\n<p>\nDesde mi propia experiencia, la pila ELK (ElasticSearch, Logstash y Kibana, en este caso particular ElasticSearch) requiere muchos m\u00e1s recursos para ejecutarse de los realmente necesarios para almacenar logs. ElasticSearch es un excelente motor si necesitas una buena b\u00fasqueda de texto completo en los logs (aunque no creo que realmente lo necesites), pero me pregunto por qu\u00e9 de facto se ha convertido en el motor est\u00e1ndar para el registro. Su rendimiento de recepci\u00f3n combinado con Logstash nos generaba problemas incluso con cargas bastante peque\u00f1as y requer\u00eda m\u00e1s memoria RAM y espacio en disco. Como base de datos, Clickhouse es mejor que ElasticSearch por las siguientes razones:<\/p>\n<ul>\n<li>Soporte para el dialecto SQL;<\/li>\n<li>Mejor tasa de compresi\u00f3n de datos almacenados;<\/li>\n<li>Soporte para b\u00fasquedas con expresiones regulares Regex en lugar de b\u00fasquedas de texto completo;<\/li>\n<li>Mejor planificaci\u00f3n de consultas y mayor rendimiento general.<\/li>\n<\/ul>\n<p>\nActualmente, el mayor problema al comparar ClickHouse con ELK es la falta de soluciones para la exportaci\u00f3n de logs, as\u00ed como la escasez de documentaci\u00f3n y tutoriales sobre el tema. Sin embargo, cualquier usuario puede configurar ELK utilizando la gu\u00eda de Digital Ocean, lo cual es muy importante para la r\u00e1pida implementaci\u00f3n de tecnolog\u00edas similares. Aqu\u00ed hay un motor de base de datos, pero a\u00fan no hay Filebeat para ClickHouse. S\u00ed, hay <noindex><a rel=\"nofollow\" href=\"https:\/\/www.fluentd.org\/\">fluentd<\/a><\/noindex> y un sistema para trabajar con logs <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/loghouse\">loghouse<\/a><\/noindex>existe una herramienta <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Altinity\/clicktail\">clicktail<\/a><\/noindex> para ingresar datos de archivos de logs en ClickHouse, pero todo esto requiere m\u00e1s tiempo. Sin embargo, ClickHouse sigue siendo el l\u00edder por su simplicidad, por lo que incluso los novatos pueden instalarlo f\u00e1cilmente y comenzar a usarlo completamente en literalmente 10 minutos. <\/p>\n<p>Preferiendo soluciones minimalistas, intent\u00e9 usar FluentBit, una herramienta para la descarga de logs que ocupa muy poca memoria, junto con ClickHouse, intentando evitar el uso de Kafka. Sin embargo, es necesario resolver peque\u00f1as incompatibilidades, tales como <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fluent\/fluent-bit\/issues\/848\">problemas con el formato de fecha<\/a><\/noindex>, antes de que esto se pueda hacer sin una capa proxy que transforme los datos de FluentBit a ClickHouse.<\/p>\n<p>Como alternativa a Kibana, se puede usar ClickHouse como backend <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Vertamedia\/clickhouse-grafana\">Grafana<\/a><\/noindex>. Seg\u00fan entiendo, pueden surgir problemas de rendimiento al renderizar una gran cantidad de puntos de datos, especialmente con versiones m\u00e1s antiguas de Grafana. En Qwintry a\u00fan no lo hemos probado, pero las quejas sobre esto aparecen de vez en cuando en el canal de soporte de ClickHouse en Telegram. <\/p>\n<h3>Sustituyendo a Google Big Query y Amazon RedShift (soluci\u00f3n para grandes empresas)<\/h3>\n<p>\nLa opci\u00f3n ideal de uso de BigQuery es cargar 1 TB de datos JSON y ejecutar consultas anal\u00edticas sobre ellos. BigQuery es un gran producto, cuya escalabilidad es dif\u00edcil de sobreestimar. Es un software mucho m\u00e1s complejo que ClickHouse, que funciona en un cl\u00faster interno, pero desde el punto de vista del cliente tiene mucho en com\u00fan con ClickHouse. BigQuery puede volverse r\u00e1pidamente \"costoso\" una vez que empieces a pagar por cada SELECT, por lo que es una verdadera soluci\u00f3n SaaS con todas sus ventajas y desventajas. <\/p>\n<p>ClickHouse es la mejor opci\u00f3n si realizas muchas consultas que son costosas desde el punto de vista computacional. Cuantas m\u00e1s consultas SELECT realices cada d\u00eda, m\u00e1s sentido tiene reemplazar BigQuery por ClickHouse, ya que este cambio te ahorrar\u00e1 miles de d\u00f3lares si se trata de muchos terabytes de datos procesados. Esto no se aplica a los datos almacenados, cuyo procesamiento en BigQuery es bastante econ\u00f3mico.<\/p>\n<p>En un art\u00edculo del cofundador de Altinity, Alexander Zaitsev <noindex><a rel=\"nofollow\" href=\"https:\/\/www.altinity.com\/blog\/2017\/10\/23\/migration-to-clickhouse\">\"La transici\u00f3n a ClickHouse\"<\/a><\/noindex> se abordan las ventajas de tal migraci\u00f3n de base de datos.<\/p>\n<h3>Sustituci\u00f3n de TimescaleDB<\/h3>\n<p>\nTimescaleDB es una extensi\u00f3n de PostgreSQL que optimiza el trabajo con series temporales en una base de datos convencional\u00a0(<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.timescale.com\/v1.0\/introduction\">https:\/\/docs.timescale.com\/v1.0\/introduction<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/zabbix\/blog\/458530\/\">https:\/\/habr.com\/ru\/company\/zabbix\/blog\/458530\/<\/a><\/noindex>). <\/p>\n<p>Aunque ClickHouse no es un competidor serio en el nicho de series temporales, su estructura columnar y la ejecuci\u00f3n vectorizada de consultas lo hacen significativamente m\u00e1s r\u00e1pido que TimescaleDB en la mayor\u00eda de los casos de procesamiento de consultas anal\u00edticas. Adem\u00e1s, la capacidad de recepci\u00f3n de datos por lotes de ClickHouse es aproximadamente tres veces superior, y realmente utiliza 20 veces menos espacio en disco, lo que es crucial para procesar grandes vol\u00famenes de datos hist\u00f3ricos:\u00a0<noindex><a rel=\"nofollow\" href=\"https:\/\/www.altinity.com\/blog\/ClickHouse-for-time-series\">https:\/\/www.altinity.com\/blog\/ClickHouse-for-time-series<\/a><\/noindex>.<\/p>\n<p>A diferencia de ClickHouse, la \u00fanica forma de ahorrar un poco de espacio en disco en TimescaleDB es utilizando ZFS u otros sistemas de archivos similares.<\/p>\n<p>Las futuras actualizaciones de ClickHouse probablemente introducir\u00e1n compresi\u00f3n delta, lo que lo har\u00e1 a\u00fan m\u00e1s adecuado para el procesamiento y almacenamiento de datos temporales. TimescaleDB puede ser la mejor opci\u00f3n en comparaci\u00f3n con un ClickHouse \"en bruto\" en los siguientes casos:<\/p>\n<ul>\n<li>instalaciones peque\u00f1as con muy poca memoria RAM (&lt;3 GB);<\/li>\n<li>un gran n\u00famero de peque\u00f1as inserciones que no deseas agrupar en fragmentos grandes;<\/li>\n<li>mejor consistencia, uniformidad y requisitos ACID;<\/li>\n<li>soporte para PostGIS;<\/li>\n<li>integraci\u00f3n con tablas PostgreSQL existentes, ya que esencialmente TimescaleDB es PostgreSQL.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Competencia con sistemas Hadoop y MapReduce<\/h3>\n<p>\nHadoop y otros productos de MapReduce pueden realizar numerosos c\u00e1lculos complejos, pero generalmente operan con enormes latencias. ClickHouse resuelve este problema procesando terabytes de datos y entregando resultados casi instant\u00e1neamente. As\u00ed, ClickHouse es mucho m\u00e1s eficiente para realizar investigaciones anal\u00edticas r\u00e1pidas e interactivas, lo que deber\u00eda interesar a los especialistas en procesamiento de datos.<\/p>\n<h3>Competencia con Pinot y Druid<\/h3>\n<p>\nLos competidores m\u00e1s cercanos de ClickHouse son los productos open source de escalado lineal en columnas Pinot y Druid. Un excelente trabajo comparando estos sistemas fue publicado en el art\u00edculo <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/@leventov\/comparison-of-the-open-source-olap-systems-for-big-data-ClickHouse-druid-and-pinot-8e042a5ed1c7\">de Roman Leventov<\/a><\/noindex> del 1 de febrero de 2018. <\/p>\n<p><img decoding=\"async\" alt=\"Uso de Clickhouse como reemplazo de ELK, Big Query y TimescaleDB\" src=\"\/wp-content\/uploads\/2020\/01\/fe58814aa97b287b70c2f724b72b448a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEste art\u00edculo necesita actualizaci\u00f3n: dice que ClickHouse no soporta operaciones UPDATE y DELETE, lo cual no es del todo cierto respecto a las \u00faltimas versiones.<\/p>\n<p>No tenemos suficiente experiencia trabajando con estas bases de datos, pero realmente no me gusta la complejidad de la infraestructura que se requiere para ejecutar Druid y Pinot; son un mont\u00f3n de \"partes m\u00f3viles\" rodeadas de Java por todos lados.<\/p>\n<p>Druid y Pinot son proyectos incubadores de Apache, cuyo progreso se detalla en las p\u00e1ginas de sus proyectos en GitHub. Pinot apareci\u00f3 en el incubador en octubre de 2018, mientras que Druid naci\u00f3 ocho meses antes, en febrero.<\/p>\n<p>La falta de informaci\u00f3n sobre c\u00f3mo funciona AFS me genera algunas preguntas, quiz\u00e1s ingenuas. Me pregunto si los autores de Pinot han notado que la Fundaci\u00f3n Apache est\u00e1 m\u00e1s inclinada hacia Druid, y si esa actitud ha causado alg\u00fan tipo de envidia hacia su competidor. \u00bfSe desacelerar\u00e1 el desarrollo de Druid y se acelerar\u00e1 el de Pinot si los patrocinadores que apoyan al primero se interesan repentinamente por el segundo?<\/p>\n<h3>Desventajas de ClickHouse<\/h3>\n<p>\nInmadurez: es evidente que todav\u00eda es una tecnolog\u00eda que no est\u00e1 madura, pero, de todos modos, no veo nada similar en otras bases de datos de columna. <\/p>\n<p>Las peque\u00f1as inserciones funcionan mal a alta velocidad: las inserciones deben agruparse en bloques grandes, porque el rendimiento de las peque\u00f1as inserciones disminuye en proporci\u00f3n al n\u00famero de columnas en cada fila. As\u00ed es como ClickHouse almacena los datos en el disco: cada columna representa 1 archivo o m\u00e1s, por lo tanto, para insertar 1 fila que contenga 100 columnas, es necesario abrir y escribir al menos 100 archivos. Por eso se requiere un intermediario para la inserci\u00f3n en b\u00fafer (a menos que el propio cliente proporcione el almacenamiento en b\u00fafer), que suele ser Kafka o alg\u00fan sistema de gesti\u00f3n de colas. Tambi\u00e9n se puede utilizar el motor Buffer table para copiar grandes fragmentos de datos a las tablas MergeTree luego.<\/p>\n<p>Las uniones de tablas est\u00e1n limitadas por la memoria RAM del servidor, \u00a1pero al menos existen! Por ejemplo, Druid y Pinot no tienen tales uniones porque son dif\u00edciles de implementar directamente en sistemas distribuidos que no soportan el movimiento de grandes bloques de datos entre nodos. <\/p>\n<h3>Conclusiones<\/h3>\n<p>\nEn los pr\u00f3ximos a\u00f1os, planeamos utilizar ampliamente ClickHouse en Qwintry, ya que este SGBD ofrece un excelente equilibrio entre rendimiento, bajos costos generales, escalabilidad y simplicidad. Estoy casi seguro de que comenzar\u00e1 a expandirse r\u00e1pidamente, una vez que la comunidad de ClickHouse encuentre m\u00e1s formas de utilizarlo en instalaciones peque\u00f1as y medianas.<\/p>\n<h3>Un poco de publicidad \ud83d\ude42<\/h3>\n<p>\nGracias por permanecer con nosotros. \u00bfTe gustan nuestros art\u00edculos? \u00bfQuieres ver m\u00e1s contenido interesante? Ap\u00f3yanos haciendo un pedido o recomendando a tus conocidos, <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">VPS en la nube para desarrolladores desde $4.99<\/a><\/noindex>, <b>un an\u00e1logo \u00fanico de servidores entry-level que hemos dise\u00f1ado para Ti:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">Toda la verdad sobre VPS (KVM) E5-2697 v3 (6 n\u00facleos) 10GB DDR4 480GB SSD 1Gbps desde $19, o c\u00f3mo dividir correctamente un servidor?<\/a><\/noindex> (disponibles opciones con RAID1 y RAID10, hasta 24 n\u00facleos y hasta 40GB DDR4).<\/p>\n<p><b>\u00bfDell R730xd a mitad de precio en el centro de datos Equinix Tier IV en \u00c1msterdam?<\/b> Solo aqu\u00ed <b><noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/serversnl\">2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB desde $199<\/a><\/noindex> \u00a1en los Pa\u00edses Bajos! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 \u00a1desde $99!<\/b><\/b> Lee sobre c\u00f3mo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Construir infraestructura de clase empresarial usando servidores Dell R730xd E5-2650 v4 que cuestan 9000 euros a un precio asequible?<\/a><\/noindex><br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/483112\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Clickhouse \u2014 \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (OLAP) \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f \u042f\u043d\u0434\u0435\u043a\u0441\u043e\u043c. \u0415\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u042f\u043d\u0434\u0435\u043a\u0441, CloudFlare, VK.com, Badoo \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0438\u0440\u0443 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0432\u0441\u0442\u0430\u0432\u043a\u0430 \u0442\u044b\u0441\u044f\u0447 \u0441\u0442\u0440\u043e\u043a \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0438\u043b\u0438 \u043f\u0435\u0442\u0430\u0431\u0430\u0439\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a\u0435). \u0412 \u043e\u0431\u044b\u0447\u043d\u043e\u0439, \u00ab\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0439\u00bb \u0421\u0423\u0411\u0414, \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-54918","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"Clickhouse \u2014 \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (OLAP) \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Clickhouse \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043c\u0435\u043d\u044b ELK, Big Query \u0438 TimescaleDB | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Clickhouse \u2014 \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (OLAP) \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-06T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:58+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Uso de ClickHouse como reemplazo de ELK, Big Query y TimescaleDB | ProHoster","description":"ClickHouse es un sistema de gesti\u00f3n de bases de datos columnar para el procesamiento en l\u00ednea de consultas anal\u00edticas (OLAP) de c\u00f3digo abierto.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Clickhouse \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043c\u0435\u043d\u044b ELK, Big Query \u0438 TimescaleDB | ProHoster","og:description":"Clickhouse \u2014 \u044d\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (OLAP) \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/ispolzovanie-clickhouse-v-kachestve-zameny-elk-big-query-i-timescaledb","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-06T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54918","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 13:09:54","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:55:36","updated":"2026-01-24 13:09:54","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/54918","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=54918"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/54918\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=54918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=54918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=54918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}