ClickHouse convierte miles de millones de filas de log en analítica en menos de un segundo. KumoMTA documenta el esquema en el proyecto original, y la mayoría de los ESP lo usan desde el primer día.
Tabla de ejemplo:
CREATE TABLE kumomta_events (
ts DateTime,
type LowCardinality(String),
tenant LowCardinality(String),
campaign LowCardinality(String),
domain LowCardinality(String),
egress_source LowCardinality(String),
response_code UInt16,
enhanced_code LowCardinality(String),
bounce_category LowCardinality(String),
recipient String,
message_id String
) ENGINE = MergeTree
ORDER BY (ts, tenant, domain);
Consultas del día a día:
-- Delivery rate per destination, last hour
SELECT domain,
countIf(type='Delivered') / countIf(type IN ('Delivered','Bounced')) AS delivery_rate
FROM kumomta_events
WHERE ts > now() - INTERVAL 1 HOUR
GROUP BY domain ORDER BY delivery_rate DESC;
-- Top bounce categories per tenant
SELECT tenant, bounce_category, count() AS n
FROM kumomta_events WHERE type='Bounced' AND ts > today()
GROUP BY tenant, bounce_category ORDER BY n DESC LIMIT 50;
Aquí es donde la entregabilidad deja de ser adivinanza. Puedes responder “¿está empeorando nuestra entrega en Yahoo?” en segundos.
Inicia sesión para llevar el registro de lo que ya leíste.