Как установить ClickHouse? — Руководство для digital-аналитиков
ClickHouse — это колоночная база данных, разработанная Яндексом для обработки аналитических запросов, которая идеально подходит для решения задач интернет-маркетинга.
Мы подготовили данное руководство, чтобы облегчить начало работы с ClickHouse digital-аналитикам.
Видеоинструкция
Покупка сервера для установки ClickHouse
Чтобы установить ClickHouse, необходимо купить виртуальную машину, которая работает на операционной системе Ubuntu.
В качестве примера рассмотрим покупку сервера на DigitalOcean.
После регистрации выберите Create Droplets:
После чего откроется страница конфигурации сервера. Выберите следующие настройки:
- Операционную систему Ubuntu.
Версия: 18.04. - Местоположение сервера — Амстердам.
- Укажите размер виртуальной машины: 3 GB Memory, 1 vCPU и 60 GB SSD.
По мере постепенного увеличения объема данных вам понадобится более производительный сервер. DigitalOcean поддерживает масштабирование сервера, что позволяет комфортно увеличить технические характеристики.
После создания виртуальной машины на почту приходит письмо с SSH-доступом к серверу.
Установка ClickHouse
Чтобы установить ClickHouse, необходимо подключиться к серверу, воспользовавшись для этого SSH-клиентом.
SSH-клиент — это программа, позволяющая управлять сервером через командную строку.
Подойдет любое приложение, например:
Запустите SSH-клиент.
Для подключения к серверу укажите IP-адрес сервера, логин, а после авторизации задайте пароль.
Далее следуйте инструкции, подготовленной нашей командой.
Для этого копируйте команды из Google Docs или последовательно вставляйте указанные команды ниже в консоль SSH-клиента:
#1. Укажите репозиторий, с которого будет загружен ClickHouse:
sudo apt-add-repository "deb http://repo.yandex.ru/clickhouse/deb/stable/ main/"
#2. Затем запустите процесс установки (это занимает несколько минут):
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 # optional sudo apt-get update sudo apt-get install clickhouse-client clickhouse-server
#3. Запустите ClickHouse:
sudo service clickhouse-server start
На этом установка завершена. Чтобы убедиться, что она прошла успешно, запустите консольный клиент:
clickhouse-client
После чего выполните тестовый запрос к ClickHouse:
select 1
Если всё в порядке, то в качестве ответа запрос вернет 1 (единицу). Выйдите из клиента и приступайте к завершающему этапу: настройке ClickHouse.
Настройка ClickHouse
Для обеспечения дальнейшей безопасной и комфортной работы ClickHouse нужно настроить:
- Открыть подключение по IP.
Непосредственно после установки ClickHouse закрыт для подключения. - Установить Tabix.
Работать с ClickHouse удобнее через графический клиент Tabix, который является редактором select-запросов. - Создать учетную запись.
Необходимо создать учетную запись, под которой будет осуществляться доступ к ClickHouse. По умолчанию в ClickHouse не установлен пароль.
Открыть подключение по IP
Чтобы установить Tabix, достаточно в config.xml раскомментировать тег <http_server_default_response…>, который будет подгружать Tabix:
Сохраните изменения.
Tabix загружается по ссылке:
http://0.0.0.0:8123/
Где вместо 0.0.0.0 следует указать IP-адрес вашего сервера. В ClickHouse по умолчанию создана учетная запись с логином default. Воспользуйтесь ею, чтобы войти в Tabix:
Пароль отсутствует. Чтобы поставить ограничение по паролю, следуйте инструкции ниже.
Установка Tabix (графический клиент)
Чтобы установить Tabix, достаточно в config.xml раскомментировать тег <http_server_default_response…>, который будет подгружать Tabix:
Сохраните изменения.
Tabix загружается по ссылке:
http://0.0.0.0:8123/
Где вместо 0.0.0.0 следует указать IP-адрес вашего сервера. В ClickHouse по умолчанию создана учетная запись с логином default. Воспользуйтесь ею, чтобы войти в Tabix:
Пароль отсутствует. Чтобы поставить ограничение по паролю, следуйте инструкции ниже.
Создание учетной записи
По умолчанию ClickHouse создает пользователя с логином default без пароля. Пароль можно задать в открытом или закодированном виде (SHA-256).
Не следует рассматривать такие пароли как защиту от потенциального злоумышленника. Скорее, они нужны для защиты от сотрудников.
Сгенерировать пароль можно командой:
echo -n "testPasword" | sha256sum | tr -d '-'
Где вместо testPasword укажите необходимый пароль.
После выполнения команды в ответ получим пароль в закодированном виде.
Чтобы указать его в качестве пароля, необходимо отредактировать файл users.xml.
Для этого выполните команду:
sudo nano /etc/clickhouse-server/users.xml
Откроется файл с настройками пользователей ClickHouse:
Где укажем для пользователя default сгенерированный пароль:
<password_sha256_hex>f501c3dc6d2bb6949f593a90c93eb9</password_sha256_hex>.
Также можно указать пароль в открытом виде:
<password>testPasword</password>.
Не забудьте сохранить изменения. С этого момента, чтобы подключиться к Tabix, необходимо задать логин и пароль.
Загрузка данных в ClickHouse
Renta позволяет загружать данные в ClickHouse из различных рекламных источников, систем аналитики и баз данных, например, из Google AdWords или Яндекс.Директ.
Полный список коннекторов и процесс настройки описан в документации.
Также доступен стриминг сырых данных Google Analytics c автоматическим объединением данных из рекламных источников, CRM-системы.
Подключение Power BI к ClickHouse
Подключиться к ClickHouse можно при помощи odbc-драйвера или через http.
Удобнее это сделать через http.
Для этого в Power BI выберите в качестве источника данных Web:
И укажите следующие данные:
- адрес сервера и порт,
- доступы к ClickHouse,
- select-запрос (который вернет необходимые данные),
- указать формат выгрузки: TSV или CSV.
Например, в Power BI необходимо подтянуть количество сессий по рекламным источникам. Допустим, что запрос к ClickHouse выглядит следующим образом:
select date, source, medium, uniq(sessionId) from renta_streaming.sessions_distributed group by date, source, medium
Готовим URL, который вернет результат запроса в виде СSV-файла.
Структура URL должна выглядеть следующим образом:
// указываем доступы к серверу http://0.0.0.0:8123/?user=default&password=testPassword&query= // далее непосредственно sql-запрос: select date, source, medium, uniq(sessionId) from renta_streaming.sessions_distributed group by date, source, medium //указываем формат выгрузки FORMAT CSVWithNames
Последним шагом — полученный запрос нужно преобразовать в формат URL:
http://0.0.0.0:8123/?user=default&password=testPassword&query=select%20%0Adate%2C%0Asource%2C%0Amedium%2C%0Auniq(sessionId)%0Afrom%20renta_streaming.sessions_distributed%20%0Agroup%20by%20%0Adate%2C%0Asource%2C%0Amedium%0AFORMAT%20CSVWithNames
Чтобы перевести запрос в формат URL-a, воспользуйтесь любым decoder-ом.
Настройка обновления в Power BI Online
Power BI Online требует установку gateway для обновления отчетов в облаке. Но это можно обойти, если к серверу, на котором установлен ClickHouse, подвязать домен.
В настройках домена создайте поддомен, а в качестве A-записи укажите IP-адрес сервера.
Настройка происходит на стороне хостинга, к которому подвязан домен.
В результате, в качестве источника данных вместо IP-адреса указывайте домен.
Например:
http://clickhouse.renta.im:8123/?user=default&password=testPassword&query=select%20%0Adate..
При использовании поддомена установка gateway не требуется.
Остались вопросы?
Если у вас остались вопросы — задавайте их в комментариях.
Мы с удовольствием подготовим на них ответы.
Начните любить свои данные прямо сейчас
Узнайте, почему сотни компаний по всему миру используют Renta для поиска ответов на бизнес-вопросы в одном месте.
Здравствуйте! Подскажите как обходили (если сталкивались) проблему распознавания чисел при импорте из кликхаус? У меня все числа с точкой импортируются как текст, стандартные преобразования не помогают.
Мария, проблема в схеме таблицы.
В ней вы должны указать тип данных.
Как решение на текущий момент: используйте функцию toInt64(expr) для преобразование string-oв.