Руководство по совместимости с ClickHouse Cloud
Это руководство даёт общее представление о функциональных возможностях и особенностях эксплуатации ClickHouse Cloud. Хотя ClickHouse Cloud основан на дистрибутиве ClickHouse с открытым исходным кодом, возможны некоторые различия в архитектуре и реализации. В качестве вводного материала может быть полезно прочитать эту запись в блоге о том, как мы создали ClickHouse Cloud.
Архитектура ClickHouse Cloud
ClickHouse Cloud значительно упрощает эксплуатацию и снижает затраты на использование ClickHouse в больших масштабах. Нет необходимости заранее задавать размер развертывания, настраивать репликацию для высокой доступности, вручную шардировать данные, масштабировать серверы при росте нагрузки или уменьшать их, когда вы ими не пользуетесь — мы берем это на себя.
Эти преимущества являются результатом архитектурных решений, лежащих в основе ClickHouse Cloud:
- Вычислительные ресурсы и хранилище разделены и поэтому могут автоматически масштабироваться независимо, так что вам не нужно избыточно выделять ни хранилище, ни вычислительные ресурсы в статических конфигурациях экземпляров.
- Многоуровневое хранилище на базе объектного хранилища и многоуровневое кэширование обеспечивают практически неограниченное масштабирование и хорошее соотношение цены и производительности, так что вам не нужно заранее задавать размер раздела хранилища и беспокоиться о высоких затратах на хранение.
- Высокая доступность включена по умолчанию, а репликация прозрачно управляется, так что вы можете сосредоточиться на разработке приложений или анализе данных.
- Автоматическое масштабирование для переменных непрерывных рабочих нагрузок включено по умолчанию, так что вам не нужно заранее задавать размер сервиса, масштабировать серверы при росте нагрузки или вручную уменьшать масштаб серверов при снижении активности.
- Плавная гибернация для периодических рабочих нагрузок включена по умолчанию. Мы автоматически приостанавливаем вычислительные ресурсы после периода простоя и прозрачно запускаем их снова при поступлении нового запроса, так что вам не приходится платить за неиспользуемые ресурсы.
- Расширенные параметры масштабирования позволяют задать максимальный порог автомасштабирования для дополнительного контроля затрат или минимальный порог автомасштабирования для резервирования вычислительных ресурсов для приложений с особыми требованиями к производительности.
Возможности
ClickHouse Cloud предоставляет доступ к отобранному набору возможностей из открытой дистрибуции ClickHouse. В таблицах ниже описаны некоторые функции, которые в данный момент отключены в ClickHouse Cloud.
Синтаксис DDL
В большинстве случаев синтаксис DDL в ClickHouse Cloud должен совпадать с тем, что доступен в самоуправляемых установках. Есть несколько заметных исключений:
- Поддержка
CREATE AS SELECT, которая в настоящее время недоступна. В качестве обходного пути мы предлагаем использоватьCREATE ... EMPTY ... AS SELECT, а затем выполнять вставку в эту таблицу (см. эту статью в блоге для примера). - Некоторые экспериментальные синтаксические конструкции могут быть отключены, например оператор
ALTER TABLE ... MODIFY QUERY. - Часть функциональности интроспекции может быть отключена в целях безопасности, например SQL‑функция
addressToLine. - Не используйте параметр
ON CLUSTERв ClickHouse Cloud — он не нужен. Хотя в большинстве случаев это операции без побочных эффектов (no-op), они всё же могут привести к ошибке при попытке использовать макросы. Макросы часто не работают и не нужны в ClickHouse Cloud.
Движки баз данных и таблиц
ClickHouse Cloud по умолчанию предоставляет высокодоступный реплицируемый сервис. В результате все движки баз данных и таблиц являются «реплицируемыми». Вам не нужно явно указывать «Replicated» — например, ReplicatedMergeTree и MergeTree идентичны при использовании в ClickHouse Cloud.
Поддерживаемые движки таблиц
- ReplicatedMergeTree (по умолчанию, если ничего не указано)
- ReplicatedSummingMergeTree
- ReplicatedAggregatingMergeTree
- ReplicatedReplacingMergeTree
- ReplicatedCollapsingMergeTree
- ReplicatedVersionedCollapsingMergeTree
- MergeTree (преобразуется в ReplicatedMergeTree)
- SummingMergeTree (преобразуется в ReplicatedSummingMergeTree)
- AggregatingMergeTree (преобразуется в ReplicatedAggregatingMergeTree)
- ReplacingMergeTree (преобразуется в ReplicatedReplacingMergeTree)
- CollapsingMergeTree (преобразуется в ReplicatedCollapsingMergeTree)
- VersionedCollapsingMergeTree (преобразуется в ReplicatedVersionedCollapsingMergeTree)
- URL
- View
- MaterializedView
- GenerateRandom
- Null
- Buffer
- Memory
- Deltalake
- Hudi
- MySQL
- MongoDB
- NATS
- RabbitMQ
- PostgreSQL
- S3
Интерфейсы
ClickHouse Cloud поддерживает HTTPS, нативные интерфейсы и сетевой протокол MySQL. Поддержка дополнительных интерфейсов, таких как Postgres, появится в ближайшее время.
Словари
Словари — популярный способ ускорить операции поиска в ClickHouse. ClickHouse Cloud в настоящее время поддерживает словари из PostgreSQL, MySQL, удалённых и локальных серверов ClickHouse, Redis, MongoDB и HTTP‑источников.
Федеративные запросы
Мы поддерживаем федеративные запросы ClickHouse для межкластерного взаимодействия в облаке, а также для взаимодействия с внешними самоуправляемыми кластерами ClickHouse. В настоящее время ClickHouse Cloud поддерживает федеративные запросы с использованием следующих интеграционных движков:
- Deltalake
- Hudi
- MySQL
- MongoDB
- NATS
- RabbitMQ
- PostgreSQL
- S3
Федеративные запросы с некоторыми внешними движками баз данных и таблиц, такими как SQLite, ODBC, JDBC, Redis, HDFS и Hive, пока не поддерживаются.
Пользовательские функции
Пользовательские функции — относительно новая возможность в ClickHouse. В настоящее время ClickHouse Cloud поддерживает только пользовательские SQL‑функции (SQL UDF).
Экспериментальные функции
Экспериментальные функции отключены в сервисах ClickHouse Cloud для обеспечения стабильности развертываний сервиса.
Kafka
Движок таблиц Kafka в настоящее время не доступен для общего использования в ClickHouse Cloud. Вместо этого мы рекомендуем использовать архитектуры, которые отделяют компоненты подключения к Kafka от сервиса ClickHouse для разделения зон ответственности. Мы рекомендуем использовать ClickPipes для выборки данных из потока Kafka. В качестве альтернативы рассмотрите push‑ориентированные варианты, перечисленные в руководстве пользователя Kafka.
Именованные коллекции
Именованные коллекции в настоящее время не поддерживаются в ClickHouse Cloud.
Операционные значения по умолчанию и особенности
Ниже приведены настройки по умолчанию для сервисов ClickHouse Cloud. В некоторых случаях эти параметры зафиксированы, чтобы обеспечить корректную работу сервиса, а в других — могут быть изменены.
Операционные ограничения
max_parts_in_total: 10,000
Значение по умолчанию настройки max_parts_in_total для таблиц MergeTree было снижено со 100,000 до 10,000. Причина этого изменения в том, что мы заметили: большое количество частей данных, как правило, замедляет запуск сервисов в облаке. Большое количество частей обычно указывает на выбор слишком детализированного ключа партиционирования, что, как правило, делается случайно и чего следует избегать. Изменение значения по умолчанию позволит раньше выявлять такие случаи.
max_concurrent_queries: 1,000
Эта настройка на уровне сервера была увеличена со значения по умолчанию 100 до 1000, чтобы обеспечить большую степень параллелизма.
В результате для предлагаемых уровней сервисов будет доступно number of replicas * 1,000 параллельных запросов.
1000 параллельных запросов для сервиса уровня Basic, ограниченного одной репликой, и 1000+ для уровней Scale и Enterprise,
в зависимости от настроенного числа реплик.
max_table_size_to_drop: 1,000,000,000,000
Эта настройка была увеличена с 50 ГБ, чтобы разрешить удаление таблиц/партиций объемом до 1 ТБ.
Системные настройки
ClickHouse Cloud оптимизирован для переменных нагрузок, и по этой причине большинство системных настроек в настоящий момент не могут быть изменены. Мы не ожидаем необходимости настройки системных параметров для большинства пользователей, но если у вас есть вопросы по расширенной системной настройке, обратитесь в службу поддержки ClickHouse Cloud.
Расширенное администрирование безопасности
В рамках создания сервиса ClickHouse мы создаем базу данных по умолчанию и пользователя по умолчанию, который имеет широкие права доступа к этой базе данных. Этот начальный пользователь может создавать дополнительных пользователей и назначать им права на эту базу данных. Помимо этого, возможность включения в базе данных таких механизмов безопасности, как аутентификация по Kerberos, LDAP или SSL с использованием сертификатов X.509, в настоящее время не поддерживается.
Дорожная карта
Мы внедряем поддержку исполняемых UDF в ClickHouse Cloud и оцениваем спрос на ряд других функций. Если у вас есть предложения или вы хотите запросить добавление конкретной функции, пожалуйста, отправьте запрос здесь.