diff --git a/plausible/clickhouse-ttl.sql b/plausible/clickhouse-ttl.sql new file mode 100644 index 0000000..85d0815 --- /dev/null +++ b/plausible/clickhouse-ttl.sql @@ -0,0 +1,27 @@ +-- LA RÉTENTION PAR SITE DANS PLAUSIBLE (ClickHouse, base `plausible`). +-- +-- Plausible CE n'a pas de rétention : il garde ses événements tant qu'on ne les +-- purge pas. Une durée seulement écrite (dans un registre, des CGU) reste une +-- promesse : la purge vit ICI, en durée de vie (TTL) de ClickHouse, appliquée à +-- chaque fusion des parts. +-- +-- recodanse.fr (site_id 11, créé le 2026-10-10) : 25 MOIS — arbitrage du +-- fondateur du 2026-10-09, « pour comparer 1 année à l'autre » +-- (kadans-dossier 10-legal/03, U3). Limité au site : les autres sites de +-- l'instance (arcodange.fr, arcodange.lab, cms-rec.arcodange.fr) gardent tout. +-- +-- Appliqué à la main le 2026-10-10 (arcodange-org/tools#53). Éprouvé d'abord sur +-- une copie : un événement du site 11 à 26 mois part, un à 24 mois reste, un +-- d'un autre site à 26 mois reste ; sans la TTL, les trois restent. +-- +-- ⚠ Une table ne porte qu'UNE clause TTL : un second site se nomme dans la même +-- (`… WHERE site_id IN (11, …)`, ou deux expressions séparées par une virgule), +-- jamais par un second MODIFY TTL, qui remplacerait le premier. +-- ⚠ Une montée de version de Plausible qui RECRÉE ces tables perd la TTL. +-- Après chaque montée, relire : +-- kubectl -n tools exec clickhouse-0 -- clickhouse-client -q \ +-- "SELECT name, engine_full FROM system.tables WHERE database='plausible' AND name IN ('events_v2','sessions_v2')" +-- et rejouer ce fichier s'il manque `TTL … WHERE site_id = 11` : +-- kubectl -n tools exec -i clickhouse-0 -- clickhouse-client --multiquery < plausible/clickhouse-ttl.sql +ALTER TABLE plausible.events_v2 MODIFY TTL timestamp + INTERVAL 25 MONTH DELETE WHERE site_id = 11; +ALTER TABLE plausible.sessions_v2 MODIFY TTL start + INTERVAL 25 MONTH DELETE WHERE site_id = 11;