Ga naar hoofdinhoud

ClickHouse

ClickHouse is een snel, open-source kolomgeoriënteerd databasebeheersysteem. d8a configureren om ClickHouse te gebruiken is eenvoudig en vereist geen externe setup.

Configuratie

Tip

De volledige configuratiereferentie is hier beschikbaar.

Voeg het volgende toe aan je config.yaml-bestand:

warehouse:
driver: clickhouse
clickhouse:
host: localhost
port: "9000"
database: d8a
username: default
password: "your-password"

Belangrijke opmerkingen

  • Engine-ondersteuning: d8a ondersteunt momenteel alleen de MergeTree-engine. Tabellen worden aangemaakt met ENGINE = MergeTree().
  • Distributed/Replicated-opstellingen: Distributed- en Replicated-tabelopstellingen worden op dit moment niet ondersteund. Gebruik één enkele ClickHouse-instantie of vraag deze feature aan via GitHub issues.
  • Nullability: Nullable kolommen uit het schema worden in ClickHouse opgeslagen als NOT NULL met DEFAULT. Dit voorkomt de Nullable(T)-opslagoverhead terwijl de semantische nullability behouden blijft. Ontbrekende of nil-waarden worden automatisch omgezet naar type-specifieke standaardwaarden (bijv. '' voor strings, 0 voor getallen, '1970-01-01' voor datums).

Metadata

ClickHouse-specifieke optimalisaties kunnen worden toegepast via Arrow-veldmetadata (deze informatie is bruikbaar voor ontwikkelaars die nieuwe kolommen implementeren; dit kan momenteel niet vanuit de configuratie worden bestuurd):

Metadata-sleutelWaardeBeschrijving
clickhouse.low_cardinality"true"Wikkelt het kolomtype als LowCardinality(T) voor betere opslagefficiëntie en query-prestaties op kolommen met lage cardinaliteit. Van toepassing op elk door ClickHouse ondersteund type;
clickhouse.codec"CODEC(Delta, ZSTD)"Voegt een CODEC-clausule toe aan de kolomdefinitie in de ClickHouse-DDL. De waarde moet een volledige CODEC-clausule zijn (bijv. CODEC(Delta, ZSTD) of CODEC(Delta)). Gebruik de helperfunctie meta.Codec(codec, compressionAlg) om de waarde te genereren. Codec-metadata heeft geen invloed op de semantische schema-compatibiliteitscontroles.

Je setup verifiëren

Start d8a na het configureren van ClickHouse en controleer de logs. Je zou berichten moeten zien die een succesvolle verbinding met ClickHouse aangeven.