С помощью этого руководства вы научитесь работать с данными для бизнес-аналитики: логи, отчеты, выгрузки, которые хранятся в Object Storage и требуют агрегации для отчетов и принятия решений.
Вы развернете виртуальную машину Ubuntu 24.04, настроите сети и группу безопасности, создадите кластер Managed ClickHouse® и настроите nginx для проксирования подключения к базе данных с локальной машины через DBeaver.
Вы будете использовать следующие сервисы:
«Виртуальные машины» — сервис, в рамках которого предоставляется виртуальная машина.
«Публичные IP» — сервис для организации доступа к базе данных через интернет.
Managed ClickHouse — сервис для развертывания и управления кластерами ClickHouse®.
VPC — изолированная виртуальная сеть для создания безопасной инфраструктуры.
Object Storage — объектное S3-хранилище с бесплатным хранением файлов объемом до 15 ГБ.
Nginx — веб-сервер для проксирования запросов и организации защищенного HTTPS-доступа к приложению.
DBeaver — универсальный клиент баз данных для управления и администрирования SQL и NoSQL СУБД.
Шаги:
Если вы уже зарегистрированы, войдите под своей учетной записью.
Установите DBeaver.
Создайте виртуальную сеть с названием web-analytics-VPC.
Создайте подсеть со следующими параметрами:
Название — web-analytics-subnet.
Адрес — 10.10.1.0/24.
VPC — web-analytics-VPC.
DNS-серверы — 8.8.8.8.
Создайте новую группу безопасности со следующими параметрами:
Зона доступности — укажите ту же зону доступности, что выбрана для подсети.
Название — web-analytics-sg.
Добавьте правила входящего и исходящего трафика:
Трафик
Протокол
Порт
Тип источника/адресата
Источник/Адресат
Входящий
TCP
9000
IP-адрес
0.0.0.0/0
Входящий
TCP
8123
IP-адрес
0.0.0.0/0
Входящий
TCP
22
IP-адрес
0.0.0.0/0
Исходящий
Любой
—
IP-адрес
0.0.0.0/0
Создайте виртуальную машину со следующими параметрами:
Название — web-analytics-vm.
Зона доступности — укажите ту же зону доступности, что выбрана для подсети.
Образ — на вкладке Публичные выберите образ Ubuntu 24.04.
Сетевой интерфейс — выберите тип Подсеть с публичным IP.
VPC — web-analytics-VPC.
Подсеть — web-analytics-subnet.
Публичный IP — оставьте Арендовать новый или выберите IP-адрес из списка арендованных.
Группы безопасности — web-analytics-sg и группа безопасности по умолчанию.
Логин — оставьте значение по умолчанию или укажите новый.
Метод аутентификации — Публичный ключ и Пароль.
Пароль — задайте пароль пользователя.
Остальные параметры оставьте по умолчанию или выберите на свое усмотрение.
Создайте кластер Managed ClickHouse® со следующими параметрами:
Название кластера — web-analytics.
Тип — Single-node.
Зона доступности — укажите ту же зону доступности, что выбрана для подсети.
Подсеть — web-analytics-subnet.
Убедитесь, что ресурсы созданы и отображаются в личном кабинете:
На странице сервиса VPC:
отображается сеть web-analytics-VPC;
в списке подсетей отображается web-analytics-subnet.
На странице сервиса «Группы безопасности» отображается группа безопасности web-analytics-sg со статусом «Создана».
На странице сервиса «Виртуальные машины» отображается виртуальная машина web-analytics-vm со статусом «Запущена».
На странице сервиса Managed ClickHouse® отображается кластер web-analytics со статусом «Доступен».
Создайте бакет в Object Storage с названием web-analytics-bucket.
Создайте файл event.csv с тестовыми данными:
event_date,user_id,event_type,product_id,revenue2024-03-20,1001,view,AB123,02024-03-20,1001,purchase,AB123,29.992024-03-20,1002,view,CD456,02024-03-21,1001,view,CD456,02024-03-21,1003,purchase,EF789,49.992024-03-22,1002,purchase,AB123,29.99Загрузите в бакет файл event.csv.
На этом шаге вы настроите систему и nginx-сервер для подключения к базе данных.
Обновите систему:
sudo apt update && sudo apt upgrade -y
Установите nginx и clickhouse-client:
sudo apt install -y nginx-full clickhouse-client
Откройте файл конфигурации для подключения stream-блока:
sudo nano /etc/nginx/nginx.conf
Добавьте блок перед блоком http:
stream {# Native ClickHouse (TCP)upstream ch_native {server <db_private_ip>:9000;}server {listen 9000; proxy_pass ch_native;}# HTTP ClickHouse (для DBeaver / JDBC / BI))upstream ch_http {server <db_private_ip>:8123;}server {listen 8123; proxy_pass ch_http;}}
Где <db_private_ip> — внутренний IP-адрес со страницы информации о кластере из блока Данные для подключения.
Примените конфигурацию:
sudo nginx -tsudo systemctl restart nginx
Создайте пользователя с именем analytics-user и ролью cloud_admin.
Создайте базу данных с названием analytics.
Откройте DBeaver и в панели сверху нажмите Новое соединение.
В списке соединений выберите ClickHouse.
Нажмите Далее и заполните поля на вкладке Главное:
Хост — публичный IP виртуальной машины web-analytics-vm.
Порт — 8123.
Пользователь — analytics-user.
БД/Схема — analytics.
Пароль — пароль, заданный при создании пользователя analytics-user.
Нажмите Тест соединения.
Нажмите Готово.
Создайте таблицу events в базе analytics:
CREATE TABLE analytics.events(event_date Date,user_id UInt32,event_type String,product_id String,revenue Float32)ENGINE = MergeTreeORDER BY (event_date, user_id);
Загрузите данные из файла event.csv, который был добавлен в хранилище на втором шаге:
INSERT INTO analytics.eventsSELECTevent_date,user_id,event_type,product_id,revenueFROM url('<s3_link>','CSVWithNames');
Где <s3_link> — ссылка на файл в бакете.
Проверьте количество загруженных строк:
SELECT count() FROM analytics.events;
Постройте отчет по ежедневной активности и конверсии:
SELECTevent_date,uniq(user_id) as daily_active_users,countIf(event_type = 'purchase') as purchases,sumIf(revenue, event_type = 'purchase') as daily_revenue,(purchases / daily_active_users) * 100 as conversion_rate_percentFROM analytics.eventsGROUP BY event_dateORDER BY event_date;
Для повышения безопасности удалите доступ по SSH для вашей виртуальной машины, так как он больше не требуется.
В личном кабинете перейдите в сервис «Виртуальные машины» и выберите машину web-analytics-vm, созданную на первом шаге.
Перейдите на вкладку Сетевые параметры.
Нажмите Изменить группы безопасности и удалите группу SSH-access_ru.
Нажмите Сохранить.
Убедитесь, что доступа нет — попробуйте подключиться к виртуальной машине по SSH.
Вы загрузили сырые данные из Object Storage в кластер Managed ClickHouse® и с помощью DBeaver выполнили аналитические запросы. Далее вы можете подключить инструменты визуализации для построения дашбордов, оптимизировать структуру таблиц и мониторить нагрузку кластера.