Могу ли я использовать ClickHouse в качестве базы данных для временных рядов?
Примечание: Пожалуйста, посмотрите в блоге Работа с данными временных рядов в ClickHouse для дополнительных примеров использования ClickHouse для анализа временных рядов.
ClickHouse — это универсальное решение для хранения данных для OLAP рабочих нагрузок, в то время как существует много специализированных систем управления базами данных для временных рядов. Тем не менее, акцент ClickHouse на скорости выполнения запросов позволяет ему превосходить специализированные системы во многих случаях. Существует множество независимых бенчмарков по этой теме, поэтому мы не будем проводить их здесь. Вместо этого давайте сосредоточимся на функциях ClickHouse, которые важны для использования, если это ваш случай.
Прежде всего, существуют специализированные кодеки, которые делают типичные временные ряды. Либо общие алгоритмы, такие как DoubleDelta
и Gorilla
, либо специфичные для ClickHouse, такие как T64
.
Во-вторых, запросы к временным рядам часто касаются только недавних данных, например, одного дня или одной недели. Имеет смысл использовать серверы, которые имеют как быстрые диски NVMe/SSD, так и высокопроизводительные HDD. Функция ClickHouse TTL позволяет настраивать хранение свежих «горячих» данных на быстрых дисках и постепенно перемещать их на более медленные диски по мере устаревания. Также возможно агрегирование или удаление даже более старых данных, если ваши требования требуют этого.
Несмотря на то, что это противоречит философии ClickHouse о хранении и обработке сырых данных, вы можете использовать материализованные представления, чтобы соответствовать даже более строгим требованиям к задержке или затратам.