(shard engine: ReplacingMergeTree) часть строк суммируется 2 и более раз. 
                  
                  
                  Возможно ли избавится от дубликатов?
                  
                  
                  Нужно ли переходить на ReplicatedReplacingMergeTree в исходной таблице?
                  
                  
                  CREATE MATERIALIZED VIEW test_mv
                  
                  
                  ON CLUSTER default_cluster
                  
                  
                  ENGINE = ReplicatedSummingMergeTree(
                  
                  
                           '/clickhouse/tables/global/test_mv',
                  
                  
                           '{hostname}'
                  
                  
                      )
                  
                  
                  PARTITION BY toYYYYMM(date)
                  
                  
                  ORDER BY (name, date)
                  
                  
                  POPULATE
                  
                  
                  AS
                  
                  
                  SELECT
                  
                  
                    name,
                  
                  
                    toDate(dt) as date,
                  
                  
                    sum(sign*value) as score
                  
                  
                  FROM initial_table
                  
                  
                  GROUP BY (name, date);
                  
                  
                
MV это триггер на инсерт, она не знает какой движок у исходной таблицы, и получает данные команды инсерт, MV не читает таблицу исходную, можно сделать исходную таблицу Engine=Null (всегда пустая) и MV будет также работать как и раньше. Поэтому если вы сделали инсерт сто раз и проинсертили одно и тоже, MV получит от инсерта 100 раз, и умножит на 100
Обсуждают сегодня