Можно ли использовать ClickHouse как базу данных временных рядов?
ClickHouse — это универсальное решение для OLAP операций, в то время как существует много специализированных СУБД временных рядов. Однако высокая скорость выполнения запросов позволяет ClickHouse во многих случаях "побеждать" специализированные аналоги. В подтверждение этому есть много примеров с конкретными показателями производительности, так что мы не будем останавливаться на этом подробно. Лучше рассмотрим те возможности ClickHouse, которые стоит использовать.
Во-первых, есть специальные кодеки, которые составляют типичные временные ряды. Это могут быть либо стандартные алгоритмы, такие как DoubleDelta
или Gorilla
, либо специфические для ClickHouse, например T64
.
Во-вторых, запросы по временным рядам часто затрагивают только недавние данные, не старше одного дня или недели. Имеет смысл использовать серверы, где есть как быстрые диски nVME/SSD, так и более медленные, но ёмкие HDD диски. С помощью TTL можно сконфигурировать таблицы так, чтобы свежие данные хранились на быстрых дисках, а по мере устаревания перемещались на медленные диски. Для архивных данных можно также настроить сворачивание или даже удаление, если это необходимо.
Несмотря на то, что работа с "сырыми" данными противоречит философии ClickHouse, если нужно соответствовать очень жестким требованиям по скорости обработки данных, вы можете использовать материализованные представления.