ClickHouse — это колоночная база данных, разработанная Яндексом для обработки аналитических запросов, которая идеально подходит для решения задач интернет-маркетинга.

Мы подготовили данное руководство, чтобы облегчить начало работы с ClickHouse digital-аналитикам.

Покупка сервера для установки ClickHouse

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

В качестве примера рассмотрим покупку сервера на DigitalOcean.
После регистрации выберите Create Droplets:

После чего откроется страница конфигурации сервера. Выберите следующие настройки:

  1. Операционную систему Ubuntu.
    Версия: 18.04.

  2. Местоположение сервера — Амстердам.

  3. Укажите размер виртуальной машины: 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:

Пароль отсутствует. Чтобы поставить ограничение по паролю, следуйте инструкции ниже.

Создание учетной записи

По умолчанию 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 не требуется.

Остались вопросы?

Если у вас остались вопросы — задавайте их в комментариях.
Мы с удовольствием подготовим на них ответы.