Salta al contingut

Categoria: Bases de dades

ClickHouse gestionat: analítica en temps real en el vostre propi compte

Consultes sobre milers de milions de files en segons, en un ClickHouse que viu al vostre compte del núvol, amb rèpliques, còpies que es restauren i un disseny de taules pensat per a les vostres consultes reals.

On es munta
Al vostre compte, a nom vostre
Còpies
Amb restauració provada
Actualitzacions
Planificades i documentades
Llicència
Open source, Apache 2.0

En resum

ClickHouse és una base de dades analítica de codi obert, orientada a columnes, que respon consultes sobre grans volums de dades en temps real. La instal·lem i l'operem al vostre compte del núvol: disseny de taules MergeTree, rèpliques amb ClickHouse Keeper, còpies a S3 restaurades en proves, retenció amb TTL, límits de recursos, mètriques i actualitzacions, tot en codi al vostre repositori.

De què ens encarreguem?

ClickHouse és molt ràpid quan les taules estan ben dissenyades i molt frustrant quan no ho estan. Bona part de la nostra feina és aquest disseny; la resta és el de qualsevol base de dades en producció: rèpliques, còpies, límits i actualitzacions.

  • Taules MergeTree

    Motor, ORDER BY i particions triats segons les vostres consultes.

  • Rèpliques i Keeper

    ReplicatedMergeTree coordinat per ClickHouse Keeper en tres nodes.

  • Còpies

    BACKUP complet i incremental a S3, amb restauració de prova.

  • Límits

    Perfils, quotes i memòria màxima per consulta i per usuari.

  • Mètriques

    Taules de sistema i punt de mètriques per a Prometheus.

  • En codi

    Configuració i esquemes versionats al vostre repositori.

Com dissenyem les taules?

En la família MergeTree, ORDER BY defineix com s’ordenen les dades en disc i l’índex dispers que permet saltar-se blocs sencers. Posem primer les columnes per les quals més filtreu, de menor a major varietat, i la data prop del final. La partició, normalment per mes, serveix per a esborrar o moure dades antigues de colp, no per a accelerar consultes: les particions massa fines donen problemes.

Segons el cas fem servir variants: ReplacingMergeTree per a quedar-se amb l’última versió de cada fila, AggregatingMergeTree amb vistes materialitzades per a tindre totals precalculats, o TTL per a esborrar o moure a emmagatzematge en fred les dades que ja no es consulten cada dia.

Quina arquitectura recomanem?

Situació El que muntem Per què
Analítica interna, es tolera una estona de tall Un servidor i còpies diàries a S3 Ràpid i senzill; la recuperació està provada
Producció que no pot parar Dues rèpliques i ClickHouse Keeper en tres nodes Si cau una rèplica, l’altra continua responent
Volum que no cap en un servidor Diversos fragments amb rèplica i una taula Distributed Reparteix dades i consultes entre servidors

Keeper va sempre en nombre senar, tres com a mínim, i preferiblement en màquines separades de ClickHouse quan la càrrega és alta. Una rèplica no protegeix d’un DROP TABLE per error: l’esborrat es replica, així que les còpies són independents de les rèpliques.

Quins problemes trobem més sovint?

  • Massa parts: insercions xicotetes i constants que saturen les fusions i acaben rebutjant escriptures.
  • ORDER BY copiat d’una altra base de dades: un identificador únic primer, i cada consulta llig la taula sencera.
  • Consultes sense límit de memòria: un informe amb un JOIN enorme deixa sense memòria el servidor i tots els altres.
  • Keeper en un sol node: si cau, les taules replicades passen a només lectura.
  • Sense retenció: el disc s’omple amb dades de fa anys que ningú no consulta.
  • Còpies que no s’han restaurat mai: la documentació oficial avisa que, si no ho heu provat, probablement no funcionarà quan calga.

Com fem les còpies i les actualitzacions?

Fem servir l’ordre BACKUP de ClickHouse amb destí S3: una còpia base periòdica i còpies incrementals que només guarden el que és nou. L’emmagatzematge és en un altre compte o en un altre proveïdor i amb regles que impedeixen esborrar-lo abans d’hora. Cada cert temps fem RESTORE en un servidor a part, comparem recomptes de files amb producció i anotem quant tarda.

ClickHouse publica versions cada mes i, dues vegades l’any, versions LTS amb suport més llarg. En producció recomanem LTS. Actualitzem rèplica a rèplica, comprovem que es posa al dia i continuem amb la següent. Abans revisem els canvis incompatibles de cada versió i llancem les vostres consultes reals contra una còpia.

Com encaixa amb el que ja teniu?

ClickHouse s’alimenta del que ja produeix el vostre sistema: esdeveniments de l’aplicació, cues, exportacions de PostgreSQL o logs. Muntem la ingesta per lots, supervisem les fusions i connectem Grafana per als panells. Si les dades vénen d’una base de dades relacional, la gestionem com en el PostgreSQL gestionat, i les mètriques de ClickHouse van al monitoratge amb Grafana i Prometheus.

On ho muntem?

Al vostre compte, al proveïdor que ja feu servir o al que encaixe millor. Si les dades s'han de quedar a la UE, Hetzner i OVHcloud són les opcions europees.

Proveïdors on ho muntem

  • Hetzner
  • AWS
  • Google Cloud
  • Azure
  • DigitalOcean
  • OVH
  • Servidor propi
ProveïdorCom ho muntemA tindre en compte
HetznerServidors dedicats o cloud amb ClickHouse i ClickHouse Keeper en xarxa privada. Còpies i emmagatzematge en fred en Object Storage de Hetzner, compatible amb S3.Sense servei gestionat; els dedicats amb discos NVMe donen molt de rendiment analític pel cost.
AWSEC2 amb discos gp3 o NVMe locals, Keeper en tres instàncies i còpies a S3.AWS no té ClickHouse propi; ClickHouse Cloud es contracta a banda, amb el seu propi compte.
Google CloudCompute Engine amb discos persistents, Keeper en tres màquines i còpies a Cloud Storage per la seua interfície compatible amb S3.Sense servei propi de Google; ClickHouse Cloud també s'ofereix sobre Google Cloud.
AzureMàquines virtuals amb discos gestionats i còpies a Azure Blob Storage, que ClickHouse admet com a destí.Sense servei propi de Microsoft; ClickHouse Cloud està disponible en Azure.
DigitalOceanDroplets amb emmagatzematge en bloc i còpies a Spaces, compatible amb S3.Sense ClickHouse gestionat; encaixa per a volums moderats.
OVHClickHouse gestionat d'OVHcloud Public Cloud, o instàncies i dedicats amb ClickHouse muntat per nosaltres.
Servidor propiClickHouse en els vostres servidors amb discos ràpids, Keeper en tres màquines i còpies a un emmagatzematge S3 extern.ClickHouse aprofita bé el maquinari propi; la còpia ha d'eixir de l'edifici.

Què inclou

  • ClickHouse al vostre compte del núvol o en els vostres servidors, amb la configuració en Terraform o Ansible al vostre repositori.
  • Disseny o revisió de taules: motor MergeTree adequat, ORDER BY segons les vostres consultes i particions raonables.
  • Rèpliques amb ReplicatedMergeTree i ClickHouse Keeper en tres nodes, i fragments quan el volum ho demana.
  • Còpies amb BACKUP a un emmagatzematge S3, completes i incrementals, i restauració de prova mesurada.
  • Retenció amb TTL: esborrat o pas a emmagatzematge barat de les dades antigues.
  • Usuaris, perfils i quotes per aplicació perquè una consulta no tombe el servidor.
  • Mètriques en Prometheus i alertes de parts, rèpliques endarrerides, memòria i disc.
  • Actualitzacions a versions LTS, rèplica a rèplica, assajades abans amb una còpia.

Preguntes freqüents

ClickHouse Cloud o ClickHouse al nostre compte?

ClickHouse Cloud és còmode i separa emmagatzematge i còmput. Al vostre compte teniu les dades on vosaltres decidiu, sense un tercer més en la cadena, i amb un volum estable acostumeu a pagar menys. A canvi, algú ha d'operar rèpliques, còpies i actualitzacions, que és el que fem nosaltres.

Es pot migrar de ClickHouse Cloud al nostre propi compte?

Sí. Tornem a crear les taules, canviant el motor propi de Cloud per ReplicatedMergeTree, i copiem les dades partició a partició amb la funció remoteSecure, comprovant recomptes. Mentrestant la càrrega continua arribant a Cloud i al final canviem el destí de les insercions.

Per què apareix l'error de massa parts?

Quasi sempre per inserir fila a fila o en lots molt xicotets: cada inserció crea una part nova i les fusions no donen l'abast. Ho arreglem agrupant insercions, activant les insercions asíncrones o revisant una partició massa fina.

Serveix ClickHouse per a logs i mètriques?

Sí, és un dels seus usos més habituals: guarda molt de volum comprimit i respon ràpidament a consultes per temps. El combinem amb TTL perquè les dades antigues s'esborren o passen a emmagatzematge barat.

Expliqueu-nos el vostre cas

En una trucada gratuïta de 20 minuts veiem on sou i per on començar. Sense compromís.

Reservar una trucada de 20 minuts

Documentació oficial consultada

Les dades tècniques d'aquesta pàgina es basen en:

Revisat el

WhatsApp