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)
Обсуждают сегодня