FiveonefourFiveonefour
Fiveonefour Docs
MooseStackTemplatesGuides
Release Notes
Source514
  1. MooseStack
  2. Moose OLAP
  3. TTL (Time-to-Live) for ClickHouse Tables

On this page

When to use TTLConfigurationNotesRelated

TTL (Time-to-Live) for ClickHouse Tables

Moose lets you declare ClickHouse TTL directly in your data model:

  • Table-level TTL via the ttl option on OlapTable config
  • Column-level TTL via ClickHouseTTL on individual fields

When to use TTL

  • Automatically expire old rows to control storage cost
  • Mask or drop sensitive columns earlier than the full row expiry

Configuration

TTLExample.py
from typing import Annotatedfrom moose_lib import OlapTable, OlapConfig, Key, ClickHouseTTLfrom pydantic import BaseModelfrom datetime import datetime class Event(BaseModel):    id: Key[str]    timestamp: datetime    email: Annotated[str, ClickHouseTTL("timestamp + INTERVAL 30 DAY")] events = OlapTable[Event](    "Events",    OlapConfig(        order_by_fields=["id", "timestamp"],        ttl="timestamp + INTERVAL 90 DAY DELETE",    ),)

Notes

  • Expressions must be valid ClickHouse TTL expressions, but do not include the leading TTL keyword.
  • Column TTLs are independent from the table TTL and can be used together.
  • Moose will apply TTL changes via migrations using ALTER TABLE ... MODIFY TTL and .
MODIFY COLUMN ... TTL

Related

  • See Modeling Tables for defining your schema
  • See Applying Migrations to roll out TTL changes
  • Overview
Build a New App
  • 5 Minute Quickstart
  • Browse Templates
  • Existing ClickHouse
Add to Existing App
  • Next.js
  • Fastify
Fundamentals
  • Moose Runtime
  • MooseDev MCP
  • Data Modeling
Moose Modules
  • Moose OLAP
    • Data Modeling
    • Tables
    • Views
    • Materialized Views
    • Materialized Columns
    • External Data & Introspection
    • External Tables
    • Introspecting Tables
    • Data Access
    • Inserting Data
    • Reading Data
    • Performance & Optimization
    • Schema Optimization
    • Secondary & Data-skipping Indexes
    • TTL (Time-to-Live)
    • Schema Versioning
  • Moose Streaming
  • Moose Workflows
  • Moose APIs & Web Apps
Deployment & Lifecycle
  • Moose Migrate
  • Moose Deploy
Reference
  • API Reference
  • Data Types
  • Table Engines
  • CLI
  • Configuration
  • Observability Metrics
  • Help
  • Release Notes
Contribution
  • Documentation
  • Framework