Кратко:
- Создание кластера ClickHouse требует знания особенностей этой БД.
- Apache ZooKeeper - служба, которая управляет конфигурациями, репликацией и распределением запросов по хостам БД.
- В ClickHouse нет главного узла, через который добавляются данные, данные можно и записывать, и читать с любого узла.
- Для создания кластера необходимо выбрать Managed Service for ClickHouse и нажать кнопку Создать кластер.
- Подключение к базе данных возможно через HTTP-протокол или Native TCP-протокол.
- Официально поддерживаются консольный клиент, драйверы JDBC и ODBC, клиентская библиотека для C++.
- Также можно использовать библиотеки сторонних разработчиков для Python, PHP, Go, Ruby и т.д.
- Для подключения к ClickHouse в DBeaver необходимо задать настройки свойств драйвера JDBC.
Практическая работа. Создание кластера ClickHouse и подключение к нему
Создание кластера
В этой практической работе вы создадите кластер ClickHouse. Вы уже знаете, как создавать кластеры и выставлять их основные настройки в сервисах платформы данных. Но у БД ClickHouse есть свои особенности.
Когда вы создадите кластер из двух или более хостов, сервис дополнительно создаст ещё один кластер из трёх хостов, где развернёт Apache ZooKeeper. Это служба для распределенных систем, которая управляет конфигурацией, репликацией и распределением запросов по хостам БД. Без неё кластер ClickHouse работать не будет. К ZooKeeper у пользователей доступа нет, однако его хосты учитываются при расчёте квоты ресурсов облака и стоимости сервиса.
ZooKeeper синхронизирует шарды (т. е. хосты) ClickHouse. В отличие от классических реляционных БД, у ClickHouse нет главного узла (мастера), через который добавляются данные. В ClickHouse данные можно и записывать, и читать с любого узла.
Давайте приступим к практике. Перейдите в каталог, где нужно создать кластер БД, выберите Managed Service for ClickHouse и нажмите кнопку Создать кластер.
Для практической работы нам понадобится кластер с минимальной конфигурацией: тип хоста
burstable, класс b3-c1-m4 и стандартное сетевое хранилище размером 10 ГБ.
Задайте настройки: введите имена для кластера и БД, а также имя и пароль пользователя. Откройте публичный доступ к хосту.

Обратите внимание: в отличие от сервисов, которые мы уже рассматривали, здесь в разделе Настройки СУБД можно включить опции управления пользователями и БД с помощью SQL-запросов.

Кроме того, в сервисных настройках можно включить доступ к БД из консоли управления, сервисов DataLens, Яндекс Метрики и AppMetrica, а также возможность использовать бессерверные вычисления (подробно о них мы расскажем на курсе «Serverless»). С помощью DataLens, например, вы визуализируете результаты поисковых запросов в виде графиков, диаграмм и дашбордов, а подключение AppMetrica позволит импортировать данные из этого сервиса в кластер.
Отметьте пункт Доступ из DataLens: он понадобится вам на одном из следующих уроков.
Нажмите кнопку Создать кластер.
Подключение к базе данных
К хостам кластера ClickHouse можно подключаться через интернет или с виртуальных машин в той же виртуальной сети. Если к хостам БД открыт публичный доступ, то для подключения к ним используется шифрованное соединение.
Подключайтесь к кластеру с помощью HTTP-протокола или более низкоуровневого Native TCP-протокола. В большинстве случаев рекомендуется взаимодействовать с ClickHouse не напрямую, а с помощью инструмента или библиотеки. Официально поддерживаются консольный клиент, драйверы JDBC и ODBC, клиентская библиотека для C++. Также можно использовать библиотеки сторонних разработчиков для Python, PHP, Go, Ruby и т. д.
Примеры строк подключения приводятся в документации и консоли управления на вкладке Обзор страницы кластера.
С БД удобно работать в приложении с графическим интерфейсом. Один из вариантов — универсальный клиент DBeaver. Другие варианты вы найдёте в полном списке клиентов.
Подробная информация о настройке подключения приведена в документации. Чтобы создать подключение к ClickHouse в DBeaver, помимо обычных параметров (адреса хоста, порта, имени БД, логина и пароля) задайте на вкладке Свойства драйвера настройки свойств драйвера JDBC. Укажите следующие параметры:
ssl = true; sslmode = strict; sslrootcert = <путь к SSL-сертификату>. При подключении DBeaver покажет номер версии ClickHouse и пинг до хоста.

В двух следующих практических работах мы используем кластер для аналитической работы с датасетами и для создания БД ClickHouse.
Проверьте себя
Вы планируете поместить БД ClickHouse в облаке на четырех шардах и создаёте кластер с четырьмя хостами. Сколько хостов будет при этом создано? В поле ответа напишите число.
Правильный ответ:
- 7