docs: update ClickHouse schema with TTL, MV and users
Some checks failed
Build and Test / test (push) Has been cancelled
Build and Test / build (push) Has been cancelled
Build and Test / docker (push) Has been cancelled

- README.md: add complete DDL with mabase_prod database
- Add TTL (1 day) on http_logs_raw table
- Add materialized view mv_http_logs for automatic data transfer
- Document users (data_writer, analyst) and grants
- Add migration script for existing data
- architecture.yml: add database, TTL settings, MV, users sections

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
toto
2026-03-03 13:39:47 +01:00
parent 51e1eb8d57
commit 60cd8d87e4
2 changed files with 104 additions and 28 deletions

View File

@ -401,22 +401,30 @@ schema:
clickhouse_schema:
strategy: external_ddls
database: mabase_prod
description: >
La table ClickHouse est gérée en dehors du service. Deux tables sont utilisées :
http_logs_raw (table d'ingestion avec le JSON brut) et http_logs (table enrichie
avec extraction des champs via des colonnes matérialisées).
http_logs_raw (table d'ingestion avec TTL 1 jour) et http_logs (table enrichie
avec extraction des champs via des colonnes matérialisées). Une vue matérialisée
transfère automatiquement les données de RAW vers parsée.
tables:
- name: http_logs_raw
description: >
Table d'ingestion brute. Une seule colonne raw_json contient le log corrélé
complet sérialisé en JSON. Le service insère via INSERT INTO http_logs_raw (raw_json).
Table d'ingestion brute avec TTL. Une seule colonne raw_json contient le log
corrélé complet sérialisé en JSON. TTL de 1 jour pour limiter le stockage.
engine: MergeTree
order_by: tuple()
ttl: ingest_time + INTERVAL 1 DAY
settings:
ttl_only_drop_parts: 1
columns:
- name: raw_json
type: String
insert_format: >
INSERT INTO http_logs_raw (raw_json) FORMAT JSONEachRow
- name: ingest_time
type: DateTime
default: now()
insert_format: |
INSERT INTO mabase_prod.http_logs_raw (raw_json) FORMAT JSONEachRow
{"raw_json":"{...log corrélé sérialisé en JSON...}"}
- name: http_logs
@ -529,6 +537,36 @@ clickhouse_schema:
type: JSON
default: raw_json
- name: mv_http_logs
type: materialized_view
description: >
Vue matérialisée qui transfère automatiquement les données de http_logs_raw
vers http_logs lors de chaque INSERT.
target: mabase_prod.http_logs
query: |
SELECT raw_json FROM mabase_prod.http_logs_raw
users:
- name: data_writer
description: Utilisateur pour l'insertion des logs (utilisé par logcorrelator)
grants:
- INSERT(raw_json) ON mabase_prod.http_logs_raw
- SELECT(raw_json) ON mabase_prod.http_logs_raw
- name: analyst
description: Utilisateur pour la lecture des logs parsés (BI, requêtes)
grants:
- SELECT ON mabase_prod.http_logs
migration:
description: >
Script de migration pour transférer les données existantes de l'ancienne
table http_logs_raw vers la nouvelle structure avec vue matérialisée.
sql: |
INSERT INTO mabase_prod.http_logs (raw_json)
SELECT raw_json
FROM mabase_prod.http_logs_raw;
architecture:
description: >
Architecture hexagonale : domaine de corrélation indépendant, ports abstraits