Облачная платформаEvolution

Подключение Managed ClickHouse к Managed BI


С помощью этого руководства вы научитесь загружать данные в Managed ClickHouse через JDBC-клиент DBeaver или с использованием clickhouse-client и визуализировать их в Managed BI.

Вы будете использовать следующие сервисы:

  • «Виртуальные машины» — сервис, в рамках которого предоставляется виртуальная машина.

  • «Публичные IP» — сервис для организации доступа к базе данных через интернет.

  • Managed ClickHouse — сервис для развертывания и управления кластерами ClickHouse®.

  • «Подсети» — сервис, позволяющий создавать подсети для размещения в них облачных ресурсов.

  • VPC — изолированная виртуальная сеть для создания безопасной инфраструктуры.

  • DNS — сервис по управлению приватными и публичными зонами и их ресурсными записями.

  • «Группы безопасности» — сервис для контроля трафика виртуальных машин.

  • Managed BI — сервис для визуализации и анализа данных.

  • Nginx — веб-сервер для проксирования запросов и организации защищенного HTTPS-доступа к приложению.

  • DBeaver — универсальный клиент баз данных для управления и администрирования SQL и NoSQL СУБД.

Шаги:

Перед началом работы

  1. Если вы уже зарегистрированы, войдите под своей учетной записью.

1. Разверните ресурсы в облаке

  1. Создайте виртуальную сеть с названием VPC-tutorial.

  2. Создайте подсеть со следующими параметрами:

    • Названиеsubnet-tutorial.

    • Зона доступностиru.AZ-1.

    • VPCVPC-tutorial.

    • Адрес10.10.1.0/24.

    • DNS-серверы8.8.8.8.

  3. Создайте DNS-сервер со следующими параметрами:

    • Названиеevodns-tutorial.

    • VPCVPC-tutorial.

    • Зона доступностиru.AZ-1.

    • Подсетьsubnet-tutorial.

    • Адрес DNS-сервера — нажмите Ввести вручную и выберите 10.10.1.6.

  4. Создайте новую группу безопасности со следующими параметрами:

    • Зона доступностиru.AZ-1.

    • Названиеsg-tutorial.

    • Добавьте правила входящего и исходящего трафика:

      Трафик

      Протокол

      Порт

      Тип источника/адресата

      Источник/Адресат

      Входящий

      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

  5. Создайте виртуальную машину со следующими параметрами:

    • Названиеvm-tutorial.

    • Зона доступностиru.AZ-1.

    • Образ — на вкладке Публичные выберите образ Ubuntu 24.04.

    • Сетевой интерфейс — выберите тип Подсеть с публичным IP.

    • VPCVPC-tutorial.

    • Подсетьsubnet-tutorial.

    • Публичный IP — оставьте Арендовать новый или выберите IP-адрес из списка арендованных.

    • Группы безопасностиsg-tutorial и группа безопасности по умолчанию.

    • Логин — оставьте имя пользователя по умолчанию или укажите новое.

    • Метод аутентификацииПубличный ключ и Пароль.

    • Публичный ключ — укажите ключ, созданный ранее.

    • Пароль — задайте пароль пользователя.

    • Остальные параметры оставьте по умолчанию или выберите на свое усмотрение.

  6. Создайте кластер Data Platform со следующими параметрами:

    • Название кластераcluster-tutorial.

    • VPCVPC-tutorial.

    • Зона доступностиru.AZ-1.

    • Подсетьsubnet-tutorial.

  7. Создайте инстанс Managed BI со следующими параметрами:

    • Названиеbi-instance-tutorial.

    • Кластерcluster-tutorial.

    • Зона доступностиru.AZ-1.

    • Подсетьsubnet-tutorial.

    • В блоке Настройки доступа активируйте опцию Подключить публичный хост.

  8. Создайте кластер Managed ClickHouse со следующими параметрами:

    • Название кластераclickhouse_tutorial.

    • ТипSingle-node.

    • Зона доступностиru.AZ-1.

    • Подсетьsubnet-tutorial.

  9. Убедитесь, что ресурсы созданы и отображаются в личном кабинете:

    1. На странице сервиса VPC отображается сеть VPC-tutorial со статусом «Создана».

    2. На странице сервиса «Подсети» отображается подсеть subnet-tutorial со статусом «Создана».

    3. На странице сервиса «Группы безопасности» отображается группа безопасности sg-tutorial со статусом «Создана».

    4. На странице сервиса DNS на вкладке DNS-серверы отображается DNS-сервер evodns-tutorial со статусом «Активен».

    5. На странице сервиса «Виртуальные машины» отображается виртуальная машина vm-tutorial со статусом «Запущена».

    6. На странице сервиса Managed ClickHouse отображается кластер clickhouse_tutorial со статусом «Доступен».

    7. На странице сервиса Managed BI отображается кластер bi-instance-tutorial со статусом «Готов».

2. Настройте nginx для проксирования запросов к базе данных

На этом шаге вы настроите систему и nginx-сервер для подключения к базе данных.

  1. Обновите систему:

    sudo apt update && sudo apt upgrade -y
  2. Установите nginx и clickhouse-client:

    sudo apt install -y nginx-full clickhouse-client
  3. Откройте файл конфигурации для подключения stream-блока:

    sudo nano /etc/nginx/nginx.conf
  4. Добавьте блок перед блоком 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-адрес со страницы информации о кластере из блока Данные для подключения.

  5. Примените конфигурацию:

    sudo nginx -t
    sudo systemctl restart nginx

3. Подключитесь к базе данных через DBeaver или clickhouse-client

  1. Создайте пользователя с именем tutorial_user и ролью cloud_admin, сохраните пароль пользователя.

  2. Создайте базу данных с названием tutorial_db.

  3. Подключитесь к базе данных:


  1. Откройте DBeaver и в панели сверху нажмите Новое соединение.

  2. В списке соединений выберите ClickHouse.

  3. Нажмите Далее и заполните поля на вкладке Главное:

    • Хост — внутренний IP кластера Managed ClickHouse clickhouse-tutorial.

    • Порт8123.

    • БД/Схемаtutorial_db.

    • Пользовательtutorial_user.

    • Пароль — пароль, заданный при создании пользователя tutorial_user.

  4. Нажмите Тест соединения.

  5. Нажмите Ок.

4. Подготовьте тестовые данные

  1. Создайте таблицу с помощью скрипта:

    CREATE TABLE tutorial_db.user_events (
    event_id UUID,
    user_id UInt32,
    event_type LowCardinality(String),
    event_time DateTime
    )
    ENGINE = MergeTree
    ORDER BY event_time;

    Скрипт можно выполнить в DBeaver или в clickhouse-client, предварительно подключившись к нужной базе данных.

  2. Заполните таблицу сгенерированными данными:

    INSERT INTO tutorial_db.user_events
    SELECT
    generateUUIDv4() AS event_id,
    rand() % 10000 AS user_id,
    arrayElement(['click','view','purchase'], toUInt32(rand()) % 3 + 1) AS event_type,
    now() - INTERVAL rand() % 3600**24 SECOND AS event_time
    FROM numbers(1000000);
  3. Проверьте, что данные в таблице появились:

    select * from tutorial_db.user_events;

5. Создайте подключение в Superset

  1. Откройте Superset:

    1. На странице Managed BI нажмите на карточку инстанса.

    2. Нажмите Перейти в интерфейс BI.

    3. Нажмите Sign in with cloud.

  2. Создайте подключение в Superset:

    1. В правом верхнем углу нажмите Настройки и выберите Данные → Подключения.

    2. Справа сверху нажмите База данных.

    3. В поле Поддерживаемые базы данных выберите из списка ClickHouse Connect.

    4. Введите обязательные данные для ClickHouse Connect:

      • Хост — внутренний IP кластера Managed ClickHouse clickhouse-tutorial.

      • Порт8123.

      • Имя базы данныхtutorial_db.

      • Имя пользователяtutorial_user.

      • Пароль — пароль, заданный при создании пользователя tutorial_user.

    5. Нажмите Подключить.

    6. Нажмите Завершить.

6. Настройте визуализацию данных

На этом шаге вы подключите датасет и создадите график, используя инструменты сервиса Managed BI.

  1. Перейдите в раздел Датасеты.

  2. Cправа сверху нажмите Датасет.

  3. Введите данные:

    • База данных — выберите подключенную базу данных;

    • Схема — выберите tutorial_db;

    • Таблица — выберите таблицу из списка, например, user_events.

  4. Нажмите Создать датасет и диаграмму.

  5. Выберите тип диаграммы — Таблица.

  6. Нажмите Создать диаграмму.

  7. Перетащите в поле Измерения идентификаторы нужных столбцов, например event_time, event_id, user_id, event_type.

  8. Проверьте получившуюся таблицу в поле предпросмотра Образец данных и нажмите Сохранить.

  9. Укажите имя диаграммы и нажмите Сохранить.

  10. Перейдите в раздел SQL → SQL Lab.

  11. Введите данные:

    • База данных — выберите подключенную базу данных;

    • Схема — выберите tutorial_db;

    • Таблица — выберите таблицу user_events.

  12. Получите данные из таблицы, например, с помощью запроса:

    SELECT * from user_events where event_type = 'purchase'
  13. Нажмите Выполнить.

  14. Нажмите Сохранить, укажите имя запроса и сохраните его.

  15. Нажмите Создать диаграмму.

  16. Выберите тип графика, например, Столбчатая диаграмма.

  17. Перетащите идентификатор столбца event_type в поле Ось Х.

  18. Нажмите на название идентификатора в поле Ось Х и выберите вкладку Через SQL.

  19. Укажите в поле "event_type" и нажмите Сохранить.

  20. Перетащите идентификатор столбца event_type в поле Меры и нажмите на него для редактирования параметров.

  21. На вкладке Столбец в поле Агрегатная функция выберите COUNT.

  22. На вкладке Через SQL проверьте правильность запроса: COUNT("event_type").

  23. (Опционально) Внесите исправления и нажмите Сохранить.

  24. В поле Сортировать ось X выберите COUNT("event_type").

  25. Нажмите Обновить диаграмму.

  26. Чтобы сохранить график, нажмите Сохранить и задайте имя графика.

7. Создайте дашборд

  1. В Superset перейдите на вкладку Дашборды.

  2. Справа сверху нажмите Дашборд.

  3. Из списка справа перетащите ранее созданные графики в рабочую область слева.

  4. Нажмите Сохранить.

Результат

Вы научились подключаться к базам данных Managed ClickHouse для загрузки данных с помощью JDBC-клиента DBeaver или с использованием clickhouse-client, подключать Managed ClickHouse к Managed BI и пользоваться основными инструментами для визуализации данных.