Обзор
MergeTree с помощью S3BackedMergeTree. Этот движок таблицы позволяет воспользоваться преимуществами S3 в плане масштабируемости и снижения затрат, сохраняя при этом производительность вставки и запросов движка MergeTree.
Обратите внимание: реализация и сопровождение архитектуры с раздельными хранилищем и вычислительными ресурсами сложнее, чем стандартные развертывания ClickHouse. Хотя самоуправляемый ClickHouse позволяет разделять хранилище и вычисления, как описано в этом руководстве, мы рекомендуем использовать ClickHouse Cloud, который позволяет использовать ClickHouse в такой архитектуре без дополнительной настройки с помощью движка таблицы SharedMergeTree.
Это руководство предполагает, что вы используете ClickHouse версии 22.8 или выше.
1
Использование S3 как диска ClickHouse
Создание диска
Создайте новый файл в каталоге ClickHouseconfig.d, чтобы сохранить конфигурацию хранилища:BUCKET, ACCESS_KEY_ID, SECRET_ACCESS_KEY на параметры AWS-бакета, в котором вы хотите хранить данные:region или отправить пользовательский HTTP-header, — список соответствующих параметров можно найти здесь.Вы также можете заменить access_key_id и secret_access_key следующими значениями — в этом случае система попытается получить учетные данные из переменных окружения и метаданных Amazon EC2:2
Создайте таблицу на базе S3
Чтобы проверить, что S3-диск настроен правильно, можно попробовать создать таблицу и выполнить запрос к ней.Создайте таблицу, указав новую storage policy:Обратите внимание, что нам не пришлось указывать движок как Должен отобразиться следующий результат:Теперь вставим несколько строк в нашу новую таблицу:Давайте убедимся, что строки были вставлены:В консоли AWS, если данные были успешно записаны в S3, вы должны увидеть, что ClickHouse создал новые файлы в указанном вами бакете.Если всё сработало успешно, теперь вы используете ClickHouse с разделением хранилища и вычислительных ресурсов!
S3BackedMergeTree. ClickHouse автоматически преобразует тип движка внутри системы, если обнаруживает, что таблица использует S3 в качестве хранилища.Покажем, что таблица была создана с правильной политикой:3
Настройка репликации для обеспечения отказоустойчивости (необязательно)
Для отказоустойчивости можно использовать несколько серверных узлов ClickHouse, размещённых в нескольких регионах AWS, с отдельным S3 бакетом для каждого узла.Репликацию с S3-дисками можно настроить с помощью движка таблицы
ReplicatedMergeTree. Подробности см. в следующем руководстве: