Aller au contenu principal
Version: 2.0.2

Référence API ClickHouse

Cette référence détaille l’utilisation de ClickHouse sur Hikube, que ce soit en configuration simple ou distribuée avec shards et réplicas.


Structure de Base

Ressource Clickhouse

Exemple de configuration YAML

apiVersion: apps.cozystack.io/v1alpha1
kind: ClickHouse
metadata:
name: clickhouse-name
namespace: default
spec:

Paramètres

Paramètres Communs

ParamètreTypeDescriptionDéfautRequis
replicasintNumber of ClickHouse replicas2Oui
shardsintNumber of ClickHouse shards1Oui
resourcesobjectExplicit CPU and memory configuration for each replica. Si vide, resourcesPreset est appliqué{}Non
resources.cpuquantityCPU available to each replicanullNon
resources.memoryquantityMemory (RAM) available to each replicanullNon
resourcesPresetstringDefault sizing preset (nano, micro, small, medium, large, xlarge, 2xlarge)"small"Oui
sizequantityPersistent Volume Claim size, available for application data10GiOui
storageClassstringStorageClass used to store the data""Non

Exemple de configuration YAML

clickhouse.yaml
replicas: 2
shards: 1
resources:
cpu: 4000m
memory: 4Gi
resourcesPreset: small
size: 20Gi
storageClass: replicated

Paramètres d'application spécifique

ParamètreTypeDescriptionDéfautRequis
logStorageSizequantitySize of Persistent Volume for logs2GiNon
logTTLintTTL (expiration time) for query_log and query_thread_log15Non
usersmap[string]objectUsers configuration{...}Non
users[name].passwordstringPassword for the usernullOui
users[name].readonlyboolUser is readonly, default is falsenullNon

Exemple de configuration YAML

clickhouse.yaml
logStorageSize: 5Gi
logTTL: 30
users:
analyst:
password: analyst123
readonly: true
admin:
password: adminStrongPwd

Paramètres de backup

ParamètreTypeDescriptionDéfautRequis
backupobjectBackup configuration{}Non
backup.enabledboolEnable regular backupsfalseNon
backup.s3RegionstringAWS S3 region where backups are storedus-east-1Non
backup.s3BucketstringS3 bucket used for storing backupss3.example.org/clickhouse-backupsNon
backup.schedulestringCron schedule for automated backups"0 2 * * *"Non
backup.cleanupStrategystringRetention strategy for cleaning up old backups"--keep-last=3 --keep-daily=3 --keep-within-weekly=1m"Non
backup.s3AccessKeystringAccess key for S3, used for authentication<your-access-key>Oui
backup.s3SecretKeystringSecret key for S3, used for authentication<your-secret-key>Oui
backup.resticPasswordstringPassword for Restic backup encryption<password>Oui

Exemple de configuration YAML

clickhouse.yaml
backup:
enabled: true
s3Region: eu-central-1
s3Bucket: backups.hikube.clickhouse
schedule: "0 3 * * *"
cleanupStrategy: "--keep-last=5 --keep-daily=7 --keep-weekly=4"
s3AccessKey: "<your-access-key>"
s3SecretKey: "<your-secret-key>"
resticPassword: "<password>"

Paramètres de Clickhouse keeper

ParamètreTypeDescriptionDéfautRequis
clickhouseKeeperobjectClickHouse Keeper configuration{}Non
clickhouseKeeper.enabledboolDeploy ClickHouse Keeper for cluster coordinationtrueOui
clickhouseKeeper.sizequantityPersistent Volume Claim size, available for application data1GiOui
clickhouseKeeper.resourcesPresetstringDefault sizing preset (nano, micro, small, medium, large, xlarge, 2xlarge)microOui
clickhouseKeeper.replicasintNumber of Keeper replicas3Oui

Exemple de configuration YAML

clickhouse.yaml
clickhouseKeeper:
enabled: true
replicas: 3
resourcesPreset: medium
size: 5Gi

resources et resourcesPreset

Le champ resources permet de définir explicitement la configuration CPU et mémoire de chaque réplique ClickHouse.
Si ce champ est laissé vide, la valeur du paramètre resourcesPreset est utilisée.

Exemple de configuration YAML

clickhouse.yaml
resources:
cpu: 4000m
memory: 4Gi

⚠️ Attention : si resources est défini, la valeur de resourcesPreset est ignorée.

Preset nameCPUMémoire
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi