пачками по 10000 строк, обнаружилось, что для некоторых строк (закономерность пока не могу найти), данные в таблице table1 есть (те по select final они видны), а вот в MV этих данных нету
Если повторно руками вставить данные в исходную таблицу, то они появляются в MV
Как такое дебажить? куда смотреть?
CREATE TABLE table1
(
`item` String,
`event_source_hi` Int8 DEFAULT -1,
`event_source_lo` Int8 DEFAULT -1,
`event_state` Int8 DEFAULT -1,
`event_last_seen` UInt32 DEFAULT 0
)
ENGINE = ReplacingMergeTree(event_last_seen)
PRIMARY KEY item
ORDER BY (item, event_source_hi, event_source_lo, event_state)
к ней приделана MV таблица
CREATE MATERIALIZED VIEW table1_mv
ENGINE = AggregatingMergeTree
PRIMARY KEY item
ORDER BY item
TTL toDateTime(last_seen, 0, 'UTC') + toIntervalMonth(13)
SETTINGS index_granularity = 8192 AS
SELECT
item,
maxSimpleStateIf(event_last_seen, (event_source_hi = 0) AND (event_source_lo = 0) AND (event_state = 1)) AS a1_last_seen,
maxSimpleStateIf(event_last_seen, (event_source_hi = 0) AND (event_source_lo = 1) AND (event_state = 1)) AS a2_last_seen,
... (куча похожих полей)
maxSimpleState(event_last_seen) AS last_seen
FROM table1
GROUP BY item
SETTINGS optimize_aggregation_in_order = 1
mv работает как часы, швейцарские. у вас где-то косяк в ttl или агрегации.
Обсуждают сегодня