Перейти к основному содержимому
Перейти к основному содержимому

Установка ClickHouse

У вас есть четыре варианта, чтобы начать работу с ClickHouse:

  • ClickHouse Cloud: Официальный ClickHouse как услуга, разработанный, поддерживаемый и обслуживаемый создателями ClickHouse
  • Быстрая установка: легкий для загрузки бинарный файл для тестирования и разработки с ClickHouse
  • Производственные развертывания: ClickHouse может работать на любом Linux, FreeBSD или macOS с архитектурой процессора x86-64, современным ARM (ARMv8.2-A и выше) или PowerPC64LE
  • Docker Image: используйте официальный Docker образ на Docker Hub

ClickHouse Cloud

Самый быстрый и простой способ начать работу с ClickHouse - создать новую службу в ClickHouse Cloud.

Быстрая установка

подсказка

Для производственных установок конкретной версии смотрите варианты установки ниже.

На Linux, macOS и FreeBSD:

  1. Если вы только начинаете и хотите увидеть, на что способен ClickHouse, самый простой способ загрузить его локально - запустить следующую команду. Это загрузит один бинарный файл для вашей операционной системы, который можно использовать для запуска сервера ClickHouse, clickhouse-client, clickhouse-local, ClickHouse Keeper и других инструментов:

    примечание

    Для пользователей Mac: Если вы получаете ошибки, что разработчик бинарного файла не может быть подтвержден, пожалуйста, смотрите здесь.

  2. Запустите следующую команду для старта clickhouse-local:

    clickhouse-local позволяет обрабатывать локальные и удаленные файлы с помощью мощного SQL ClickHouse и без необходимости конфигурации. Данные таблицы хранятся во временном месте, что означает, что после перезапуска clickhouse-local ранее созданные таблицы больше не доступны.

    В качестве альтернативы вы можете запустить сервер ClickHouse с помощью этой команды...

    ... и открыть новый терминал, чтобы подключиться к серверу с clickhouse-client:

    Данные таблицы хранятся в текущем каталоге и по-прежнему доступны после перезапуска сервера ClickHouse. Если необходимо, вы можете передать -C config.xml в качестве дополнительного аргумента командной строки к ./clickhouse server и предоставить дальнейшую конфигурацию в конфигурационном файле. Все доступные параметры конфигурации документированы здесь и в шаблоне примерного конфигурационного файла.

    Вы готовы начать отправлять SQL запросы в ClickHouse!

подсказка

Быстрый старт описывает шаги для создания таблиц и вставки данных.

Производственные развертывания

Для производственных развертываний ClickHouse выберите один из следующих вариантов установки.

Из DEB пакетов

Рекомендуется использовать официальные предварительно собранные deb пакеты для Debian или Ubuntu. Запустите эти команды для установки пакетов:

Настройка репозитория Debian

Установка сервера и клиента ClickHouse

Запуск сервера ClickHouse

Метод старых дистрибутивов для установки deb-пакетов

Вы можете заменить stable на lts, чтобы использовать разные типы релиза в зависимости от ваших нужд.

Вы также можете вручную загрузить и установить пакеты отсюда.

Установка независимого ClickHouse Keeper

подсказка

В производственной среде мы настоятельно рекомендуем запускать ClickHouse Keeper на выделенных узлах. В тестовых средах, если вы решите запустить ClickHouse Server и ClickHouse Keeper на одном сервере, вам не нужно устанавливать ClickHouse Keeper, так как он включен в сервер ClickHouse. Эта команда нужна только на независимых серверах ClickHouse Keeper.

Включение и запуск ClickHouse Keeper

Пакеты

  • clickhouse-common-static — Устанавливает скомпилированные бинарные файлы ClickHouse.
  • clickhouse-server — Создает символическую ссылку для clickhouse-server и устанавливает конфигурацию сервера по умолчанию.
  • clickhouse-client — Создает символическую ссылку для clickhouse-client и других инструментов, связанных с клиентом, а также устанавливает конфигурационные файлы клиента.
  • clickhouse-common-static-dbg — Устанавливает скомпилированные бинарные файлы ClickHouse с отладочной информацией.
  • clickhouse-keeper - Используется для установки ClickHouse Keeper на выделенные узлы ClickHouse Keeper. Если вы запускаете ClickHouse Keeper на том же сервере, что и сервер ClickHouse, то устанавливать этот пакет не нужно. Устанавливает ClickHouse Keeper и файлы конфигурации по умолчанию.
к сведению

Если вам необходимо установить определенную версию ClickHouse, вам нужно установить все пакеты одной версии: sudo apt-get install clickhouse-server=21.8.5.7 clickhouse-client=21.8.5.7 clickhouse-common-static=21.8.5.7

Из RPM пакетов

Рекомендуется использовать официальные предварительно собранные rpm пакеты для CentOS, RedHat и всех других дистрибутивов Linux на базе rpm.

Настройка RPM репозитория

Сначала вам нужно добавить официальный репозиторий:

Для систем с менеджером пакетов zypper (openSUSE, SLES):

В дальнейшем любые команды yum install могут быть заменены на zypper install. Для указания конкретной версии добавьте -$VERSION в конце имени пакета, например clickhouse-client-22.2.2.22.

Установка сервера и клиента ClickHouse

Запуск сервера ClickHouse

Установка независимого ClickHouse Keeper

подсказка

В производственной среде мы настоятельно рекомендуем запускать ClickHouse Keeper на выделенных узлах. В тестовых средах, если вы решите запустить ClickHouse Server и ClickHouse Keeper на одном сервере, вам не нужно устанавливать ClickHouse Keeper, так как он включен в сервер ClickHouse. Эта команда нужна только на независимых серверах ClickHouse Keeper.

Включение и запуск ClickHouse Keeper

Вы можете заменить stable на lts, чтобы использовать разные типы релиза в зависимости от ваших нужд.

Затем выполните следующие команды для установки пакетов:

Вы также можете вручную загрузить и установить пакеты от сюда.

Из Tgz архивов

Рекомендуется использовать официальные предварительно собранные tgz архивы для всех дистрибутивов Linux, где невозможно установить deb или rpm пакеты.

Необходимую версию можно загрузить с помощью curl или wget из репозитория https://packages.clickhouse.com/tgz/. После этого загруженные архивы следует распаковать и установить с помощью установочных скриптов. Пример для последней стабильной версии:

Для производственных сред рекомендуется использовать последнюю stable версию. Вы можете найти ее номер на странице GitHub https://github.com/ClickHouse/ClickHouse/tags с постфиксом -stable.

Из Docker Image

Для запуска ClickHouse в Docker следуйте руководству на Docker Hub. Эти образы используют официальные deb пакеты внутри.

Непроизводственные развертывания (расширенный режим)

Компиляция из исходников

Чтобы вручную скомпилировать ClickHouse, следуйте инструкциям для Linux или macOS.

Вы можете компилировать пакеты и устанавливать их, или использовать программы без установки пакетов.

Вам необходимо будет вручную создать каталоги данных и метаданных и поменять их владельца на нужного пользователя. Их пути можно изменить в конфигурации сервера (src/programs/server/config.xml), по умолчанию они следующие:

На Gentoo вы можете просто использовать emerge clickhouse для установки ClickHouse из исходников.

Установка бинарного файла, сгенерированного CI

Инфраструктура непрерывной интеграции (CI) ClickHouse производит специализированные сборки для каждого коммита в репозитории ClickHouse, например, санитизированные сборки, неоптимизированные (Debug) сборки и т.д. Хотя такие сборки обычно полезны только в процессе разработки, в определённых ситуациях они также могут быть интересны пользователям.

примечание

Поскольку CI ClickHouse со временем развивается, точные шаги для загрузки сборок, сгенерированных CI, могут меняться. Также, CI может удалить слишком старые артефакты сборки, делая их недоступными для загрузки.

Например, чтобы загрузить aarch64 бинарный файл для ClickHouse v23.4, выполните следующие шаги:

  • Найдите запрос на вытягивание GitHub для релиза v23.4: Запрос на вытягивание для ветки 23.4
  • Нажмите "Commits", затем нажмите на коммит, похожий на "Обновить сгенерированную версию до 23.4.2.1 и участников" для версии, которую вы хотите установить.
  • Нажмите зеленую галочку / желтую точку / красный крест, чтобы открыть список проверок CI.
  • Нажмите "Детали" рядом с "Сборками" в списке, это откроет страницу, подобную этой странице
  • Найдите строки с компилятором = "clang-*-aarch64" - их несколько.
  • Загрузите артефакты для этих сборок.

Только для macOS: Установка с Homebrew

Чтобы установить ClickHouse на macOS с помощью homebrew, смотрите формулу сообщества homebrew ClickHouse.

примечание

Для пользователей Mac: Если вы получаете ошибки, что разработчик бинарного файла не может быть подтвержден, пожалуйста, смотрите здесь.

Запуск

Чтобы запустить сервер как демон, выполните:

Существует также другие способы запуска ClickHouse:

Если у вас нет команды service, выполните как

Если у вас есть команда systemctl, выполните как

Смотрите логи в каталоге /var/log/clickhouse-server/.

Если сервер не запускается, проверьте конфигурации в файле /etc/clickhouse-server/config.xml.

Вы также можете вручную запустить сервер из консоли:

В этом случае лог будет напечатан в консоли, что удобно во время разработки. Если конфигурационный файл находится в текущем каталоге, вам не нужно указывать параметр --config-file. По умолчанию используется ./config.xml.

ClickHouse поддерживает настройки ограничения доступа. Они находятся в файле users.xml (рядом с config.xml). По умолчанию доступ разрешен отовсюду для пользователя default, без пароля. Смотрите user/default/networks. Для получения дополнительной информации смотрите раздел "Файлы конфигурации".

После запуска сервера вы можете использовать клиент командной строки для подключения к нему:

По умолчанию он подключается к localhost:9000 от имени пользователя default без пароля. Его также можно использовать для подключения к удаленному серверу с помощью аргумента --host.

Терминал должен использовать кодировку UTF-8. Для получения дополнительной информации смотрите раздел "Клиент командной строки".

Пример:

Поздравляем, система работает!

Чтобы продолжить эксперименты, вы можете скачать один из тестовых наборов данных или пройти учебник.

Рекомендации для самостоятельного управления ClickHouse

ClickHouse может работать на любом Linux, FreeBSD или macOS с архитектурой процессора x86-64, ARM или PowerPC64LE.

ClickHouse использует все доступные аппаратные ресурсы для обработки данных.

ClickHouse, как правило, работает более эффективно с большим количеством ядер на более низкой тактовой частоте, чем с меньшим количеством ядер на более высокой тактовой частоте.

Мы рекомендуем использовать минимум 4 ГБ ОЗУ для выполнения нетривиальных запросов. Сервер ClickHouse может работать с гораздо меньшим объемом ОЗУ, но в этом случае запросы будут часто отменяться.

Необходимый объем оперативной памяти в целом зависит от:

  • Сложности запросов.
  • Объема данных, обрабатываемых в запросах.

Чтобы рассчитать необходимый объем ОЗУ, вы можете оценить размер временных данных для GROUP BY, DISTINCT, JOIN и других операций, которые вы используете.

Чтобы уменьшить потребление памяти, ClickHouse может перемещать временные данные на внешнее хранилище. Смотрите GROUP BY в внешней памяти для получения подробной информации.

Рекомендуем отключить файл подкачки операционной системы в производственных средах.

Бинарный файл ClickHouse требует как минимум 2.5 ГБ дискового пространства для установки.

Объем хранилища, необходимый для ваших данных, может быть рассчитан отдельно на основе

  • оценки объема данных.

    Вы можете взять выборку данных и получить средний размер строки из нее. Затем умножьте значение на количество строк, которые вы планируете хранить.

  • коэффициента сжатия данных.

    Чтобы оценить коэффициент сжатия данных, загрузите выборку ваших данных в ClickHouse и сравните реальный размер данных с размером хранимой таблицы. Например, данные потоков кликов обычно сжимаются в 6-10 раз.

Чтобы рассчитать окончательный объем данных, которые будут храниться, примените коэффициент сжатия к оцененному объему данных. Если вы планируете хранить данные в нескольких репликах, умножьте оценочный объем на количество реплик.

Для распределенных развертываний ClickHouse (кластеризация) мы рекомендуем как минимум сетевое соединение класса 10G.

Пропускная способность сети имеет критическое значение для обработки распределенных запросов с большим объемом промежуточных данных. Кроме того, скорость сети влияет на процессы репликации.