La réponse courte est « oui ». ClickHouse dispose de plusieurs mécanismes qui permettent de libérer de l’espace disque en supprimant les données anciennes. Chacun est adapté à des scénarios différents.
TTL
ClickHouse permet de supprimer automatiquement des valeurs lorsqu'une condition donnée est remplie. Cette condition est définie sous forme d'expression basée sur n'importe quelle colonne, généralement un simple décalage statique appliqué à une colonne timestamp.
Le principal avantage de cette approche est qu'elle ne nécessite aucun système externe pour être déclenchée : une fois le TTL configuré, la suppression des données s'effectue automatiquement en arrière-plan.
Pour plus de détails, consultez la configuration du TTL.
DELETE FROM
DELETE FROM permet d'exécuter des requêtes DELETE standard dans ClickHouse. Les lignes ciblées par la clause de filtre sont marquées comme supprimées et exclues des jeux de résultats ultérieurs. Le nettoyage de ces lignes s'effectue de manière asynchrone.
ALTER DELETE
ALTER DELETE supprime des lignes au moyen d’opérations par lot asynchrones. Contrairement à DELETE FROM, les requêtes exécutées après l’ALTER DELETE et avant la fin des opérations par lot incluront les lignes visées par la suppression. Pour plus de détails, consultez la documentation ALTER DELETE.
ALTER DELETE peut être utilisé pour supprimer d’anciennes données de manière flexible. Si vous devez le faire régulièrement, le principal inconvénient est qu’il faut disposer d’un système externe pour soumettre la requête. Il faut également tenir compte de certaines implications en matière de performances, car les mutations réécrivent des parties entières même lorsqu’une seule ligne doit être supprimée.
Il s’agit de l’approche la plus courante pour rendre votre système basé sur ClickHouse conforme au RGPD.
Pour plus de détails, voir mutations.
DROP PARTITION
ALTER TABLE ... DROP PARTITION offre une solution peu coûteuse pour supprimer une partition entière. Cette méthode n'est pas très flexible et nécessite qu'un schéma de partitionnement approprié soit défini lors de la création de la table, mais elle couvre malgré tout la plupart des cas courants. Comme les mutations, elle doit être exécutée depuis un système externe pour un usage régulier.
Pour plus de détails, consultez la section manipulation des partitions.
TRUNCATE
Vider entièrement une table est une opération assez radicale, mais dans certains cas, c’est peut-être exactement ce qu’il vous faut.
Pour plus de détails, consultez TRUNCATE d’une table.