Перейти к основному содержанию
Перейти к основному содержанию

Могу ли я использовать ClickHouse как базу данных временных рядов?

Примечание: дополнительные примеры использования ClickHouse для анализа временных рядов см. в записи блога Working with Time series data in ClickHouse.

ClickHouse — это универсальное решение для хранения данных в задачах OLAP, хотя существует много специализированных систем управления базами данных временных рядов. Тем не менее, ориентация ClickHouse на скорость выполнения запросов позволяет ему во многих случаях превосходить специализированные системы. Существует много независимых бенчмарков на эту тему, поэтому мы не будем проводить ещё один. Вместо этого сосредоточимся на возможностях ClickHouse, которые важно использовать, если у вас именно такой сценарий.

Во‑первых, существуют специализированные кодеки, которые оптимизируют типичные временные ряды. Это либо распространённые алгоритмы, такие как DoubleDelta и Gorilla, либо специфичный для ClickHouse T64.

Во‑вторых, запросы к временным рядам часто обращаются только к недавним данным — например, за один день или одну неделю. Имеет смысл использовать серверы, на которых есть и быстрые NVMe/SSD‑накопители, и высокоёмкие HDD. Возможность ClickHouse TTL позволяет настроить хранение свежих горячих данных на быстрых дисках и постепенный перенос их на более медленные по мере устаревания. При необходимости также возможна агрегация (rollup) или удаление ещё более старых данных.

Несмотря на то что это противоречит философии ClickHouse — хранить и обрабатывать «сырые» данные, вы можете использовать материализованные представления, чтобы уложиться в ещё более жёсткие требования по задержкам или затратам.