24 lines
958 B
SQL
24 lines
958 B
SQL
-- 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);
|