В прошлом уроке мы узнали, что такое ClickHouse и зачем он «Гонцу». Пора его запустить. В этом уроке поднимем сервер у себя на машине, подключимся к нему двумя способами и выполним первые запросы.
Сервер и клиент
ClickHouse, как и PostgreSQL, состоит из двух частей. Сервер хранит данные и выполняет запросы. Клиент подключается к серверу, отправляет запрос и печатает ответ. Сервер один, клиентов сколько угодно: аналитик в терминале, дашборд, сервис «Гонца», который пишет события.
Сервер слушает два основных порта:
- 9000 для родного протокола ClickHouse. Через него работает
clickhouse-clientи библиотеки для Go, Python, Java. - 8123 для HTTP. Запрос можно отправить хоть из браузера, хоть
curl, а ответ придёт текстом.
Запускаем в Docker
Самый быстрый способ получить ClickHouse это Docker. Официальный образ называется clickhouse/clickhouse-server:
docker run -d --name clickhouse \
-p 8123:8123 -p 9000:9000 \
-e CLICKHOUSE_PASSWORD=secret \
--ulimit nofile=262144:262144 \
clickhouse/clickhouse-server:26.9
Разберём флаги:
-dзапускает контейнер в фоне,--name clickhouseдаёт ему имя.-p 8123:8123 -p 9000:9000открывает оба порта на твоей машине.-e CLICKHOUSE_PASSWORD=secretзадаёт пароль пользователюdefault. Без пароля образ запретит этому пользователю подключаться по сети и напишет в логdisabling network access for user 'default'. Парольsecretгодится только для учебной машины.--ulimit nofile=262144:262144разрешает серверу держать много открытых файлов: каждая колонка таблицы лежит в своём файле, и файлов бывает очень много.26.9это версия. В уроках раздела всё сверено с ней.
Данные контейнер хранит внутри себя и потеряет их при удалении. Чтобы данные пережили контейнер, добавь -v clickhouse-data:/var/lib/clickhouse.
урок из курса
Урок из курса «ClickHouse и аналитические базы». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.