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 предоставляет высокодоступный, распределенный сервис по умолчанию. В результате все движки баз данных и таблиц являются "Реплицированными". Вам не нужно указывать "Реплицированный" — например, 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 wire protocol. Поддержка более широких интерфейсов, таких как 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 UDF.
Экспериментальные функции
Экспериментальные функции отключены в сервисах ClickHouse Cloud для обеспечения стабильности развертываний сервиса.
Kafka
Kafka Table Engine в настоящее время не доступен в 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, чтобы позволить большее количество конкурентных запросов.
Это приведет к число реплик * 1,000
одновременно выполняемых запросов для предлагаемых сервисов уровня.
1000
конкурентных запросов для сервиса базового уровня, ограниченного одной репликой, и 1000+
для масштабируемых и корпоративных уровней,
в зависимости от числа настроенных реплик.
max_table_size_to_drop: 1,000,000,000,000
Увеличили это значение с 50 ГБ для возможности удаления таблиц/партиций до 1 ТБ.
Системные настройки
ClickHouse Cloud настроен для переменных рабочих нагрузок, и по этой причине большинство системных настроек в настоящее время не поддаются настройке. Мы не ожидаем необходимости настраивать системные параметры для большинства пользователей, но если у вас есть вопрос о продвинутой настройке системы, пожалуйста, свяжитесь с поддержкой ClickHouse Cloud.
Расширенное управление безопасностью
В рамках создания службы ClickHouse мы создаем базу данных по умолчанию и пользователя по умолчанию, который имеет широкие права на эту базу данных. Этот начальный пользователь может создавать дополнительных пользователей и назначать им права на эту базу данных. Кроме того, в данный момент не поддерживаются возможности включения следующих функций безопасности в базе данных с помощью аутентификации Kerberos, LDAP или сертификатов SSL X.509.
Дорога к развитию
Мы вводим поддержку исполняемых UDF в облаке и оцениваем спрос на многие другие функции. Если у вас есть отзывы и вы хотите запросить конкретную функцию, пожалуйста, отправьте ее здесь.