body String TTL loadDate + INTERVAL 1 DAY,
doc_num String MATERIALIZED JSONExtractString(body, 'NUMBER'),
doc_date String MATERIALIZED JSONExtractString(body, 'DATE'),
loadDate DateTime
) ENGINE = MergeTree
PARTITION BY toDate(loadDate)
ORDER BY (documentID)
TTL loadDate + INTERVAL 2 DAY
CREATE MATERIALIZED VIEW delete_me.bds_mv (
documentID UInt32,
doc_num String,
doc_date String
) ENGINE = MergeTree
ORDER BY (documentID) as
SELECT documentID,
argMax(doc_num, loadDate) as doc_num,
argMax(doc_date, loadDate) as doc_date
from delete_me.bds
group by documentID
@den_crane Подскажите, пожалуйста, нормальный ли это сценарий, так использовать КХ, с учетом того, что body может быть довольно большим json.
Например, вот
select max(LENGTH(body)) from delete_me.bds -- 957173
Если это не очень хороший сценарий, то как бы можно быть сделать подобную логику лучше?
нормальный, у меня такое работает. на TTL особо не рассчитывайте, он работает странно и не всегда, я кроном drop partition / clear column делаю PARTITION BY toDate(loadDate) --> toYYYYMMDD(loadDate)
Обсуждают сегодня