docs: update ClickHouse schema with TTL, MV and users
- 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:
@ -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
|
||||
|
||||
Reference in New Issue
Block a user