Ответы пользователя по тегу ClickHouse
  • Правильное создание таблицы в clickhouse?

    Движок SummingMergeTree при слиянии кусков данных с одинаковым ключом сортировки заменяет на одну, которая хранит только суммы значений из столбцов с цифровым типом данных.

    CREATE TABLE IF NOT EXISTS hits (
            event_date Date DEFAULT toDate(now()),
            page_id Int32,
            country FixedString(2),
            is_private Int8,
            views Int32,
            rating Int32,
            rating_amount Int32
        )
        engine = SummingMergeTree PARTITION BY toYYYYMM(event_date)
            ORDER BY (event_date, page_id, country, is_private)
            SETTINGS index_granularity = 8192;


    В этом случае при слиянии кусков, поля views, rating, rating_amount будут суммироваться.
    Ответ написан
    Комментировать
  • Как в clickhouse игнорировать или заменять повторяющиеся данные?

    Из документации ClickHouse
    Дедупликация данных производится лишь во время слияний. Слияние происходят в фоне в неизвестный момент времени, на который вы не можете ориентироваться. Некоторая часть данных может остаться необработанной. Хотя вы можете вызвать внеочередное слияние с помощью запроса OPTIMIZE, на это не стоит рассчитывать, так как запрос OPTIMIZE приводит к чтению и записи большого объёма данных.

    Таким образом, ReplacingMergeTree подходит для фоновой чистки дублирующихся данных в целях экономии места, но не даёт гарантии отсутствия дубликатов.


    В запросе делайте группировку по ключу сортировки, если важно получать данные без дубликатов.
    Ответ написан
    1 комментарий