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: #2. Затем запустите процесс установки (это занимает несколько минут): #3. Запустите ClickHouse: На этом установка завершена. Чтобы убедиться, что она прошла успешно, запустите консольный клиент: После чего выполните тестовый запрос к ClickHouse: Если всё в порядке, то в качестве ответа запрос вернет 1 (единицу). Выйдите из клиента и приступайте к завершающему этапу: настройке ClickHouse.

Настройка ClickHouse

Для обеспечения дальнейшей безопасной и комфортной работы ClickHouse нужно настроить:
  • Открыть подключение по IP. Непосредственно после установки ClickHouse закрыт для подключения.
  • Установить Tabix. Работать с ClickHouse удобнее через графический клиент Tabix, который является редактором select-запросов.
  • Создать учетную запись. Необходимо создать учетную запись, под которой будет осуществляться доступ к ClickHouse. По умолчанию в ClickHouse не установлен пароль.

Открыть подключение по IP

Настройки доступа к серверу задаются в config.xml; чтобы открыть его, выполните команду: В результате откроется файл с настройками ClickHouse: Раскомментируйте  <listen_host>::</listen_host>, тогда подключение будет разрешено с любых адресов. Либо пропишите IP-адрес, если подключение необходимо с определенного IP. Например, <listen_host>0.0.0.0</listen_host>. Сохраните изменение сочетанием горячих клавиш: ^X.  

Установка Tabix (графический клиент)

Чтобы установить Tabix, достаточно в config.xml раскомментировать тег  <http_server_default_response…>, который будет подгружать Tabix: Сохраните изменения. Tabix загружается по ссылке: http://0.0.0.0:8123/ Где вместо 0.0.0.0 следует указать IP-адрес вашего сервера. В ClickHouse по умолчанию создана учетная запись с логином defalut. Воспользуйтесь ею, чтобы войти в Tabix: Пароль отсутствует. Чтобы поставить ограничение по паролю, следуйте инструкции ниже.  

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

По умолчанию ClickHouse создает пользователя с логином default без пароля. Пароль можно задать в открытом или закодированном виде (SHA-256). Не следует рассматривать такие пароли как защиту от потенциального злоумышленника. Скорее, они нужны для защиты от сотрудников. Сгенерировать пароль можно командой: Где вместо testPasword укажите необходимый пароль. После выполнения команды в ответ получим пароль в закодированном виде. Чтобы указать его в качестве пароля, необходимо отредактировать файл 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 выглядит следующим образом: Готовим URL, который вернет результат запроса в виде СSV-файла. Структура URL должна выглядеть следующим образом: Последним шагом — полученный запрос нужно преобразовать в формат URL: Чтобы перевести запрос в формат URL-a, воспользуйтесь любым decoder-ом.

Настройка обновления в Power BI Online

Power BI Online требует установку gateway для обновления отчетов в облаке. Но это можно обойти, если к серверу, на котором установлен ClickHouse, подвязать домен. В настройках домена создайте поддомен, а в качестве A-записи укажите IP-адрес сервера. Настройка происходит на стороне хостинга, к которому подвязан домен. В результате, в качестве источника данных вместо IP-адреса указывайте домен. Например: При использовании поддомена установка gateway не требуется.

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

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