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 — они не нужны. Хотя это в основном функции без действия, они все равно могут вызвать ошибку, если вы пытаетесь использовать макросы. Макросы часто не работают и не нужны в 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. В качестве альтернативы рассмотрите варианты на основе передачи данных, перечисленные в Руководстве пользователя 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
Увеличено это значение с 50GB для возможности удаления таблиц/партиций размером до 1TB.
Системные настройки
ClickHouse Cloud настроен для переменных нагрузок, и по этой причине большинство системных настроек в настоящее время не подлежат конфигурации. Мы не ожидаем необходимости в настройке системных настроек для большинства пользователей, но если у вас есть вопрос о продвинутой настройке системы, пожалуйста, свяжитесь со службой поддержки ClickHouse Cloud.
Расширенная безопасность администрирования
В рамках создания сервиса ClickHouse мы создаем базу данных по умолчанию и пользователя по умолчанию, который имеет широкие разрешения на эту базу данных. Этот начальный пользователь может создавать дополнительных пользователей и назначать им разрешения на эту базу данных. Кроме того, возможность включения следующих функций безопасности в базе данных с использованием Kerberos, LDAP или SSL X.509 сертификатов в настоящее время не поддерживается.
Дорожная карта
Мы вводим поддержку исполняемых UDF в облаке и оцениваем спрос на многие другие функции. Если у вас есть отзывы и вы хотите запросить конкретную функцию, пожалуйста, отправьте заявку здесь.