Files
sentiment-engine/prod/clickhouse/violet/30_violet_economics.sql

24 lines
958 B
MySQL
Raw Normal View History

-- VIOLET PASS9: economics/observability — exactly-one-row-per-event sink.
-- Columns match EconomicsRow field set (asserted by test_violet_economics_sink).
-- ReplacingMergeTree keyed on (session_id, event_seq) so a re-emit collapses to
-- ONE row — the PINK duplicate-emission debt, paid down.
-- wait_for_async_insert=1 on the economics write path (set in the sink).
-- Apply via apply_violet_ddl.py (one statement per HTTP POST).
CREATE TABLE IF NOT EXISTS dolphin_violet.violet_economics
(
`session_id` String,
`event_seq` UInt64,
`asset` LowCardinality(String),
`realized_pnl` Float64,
`fee` Float64,
`capital_after` Float64,
`pnl_source` LowCardinality(String),
`capital_source` LowCardinality(String),
`ts` DateTime64(3, 'UTC'),
`mono_ns` UInt64
)
ENGINE = ReplacingMergeTree
ORDER BY (session_id, event_seq, ts)
TTL toDate(ts) + toIntervalDay(180);