Работа с данными в Yandex Managed Service for ClickHouse®
Yandex Query — это интерактивный сервис для бессерверного анализа данных. С его помощью можно обрабатывать информацию из различных хранилищ без необходимости создания выделенного кластера. Поддерживается работа с хранилищами данных Yandex Object Storage, Yandex Managed Service for PostgreSQL, Yandex Managed Service for ClickHouse®.
В этом руководстве вы подключитесь к базе данных Managed Service for ClickHouse® и выполните запросы к ней из ноутбука JupyterLab с помощью Query.
- Подготовьте инфраструктуру.
- Начните работу в Query.
- Создайте кластер Managed Service for ClickHouse®.
- Подключитесь к данным Managed Service for ClickHouse®.
Если созданные ресурсы вам больше не нужны, удалите их.
Ноутбук с примерами также доступен на GitHub
Перед началом работы
Перед началом работы нужно зарегистрироваться в Yandex Cloud, настроить сообщество и привязать к нему платежный аккаунт:
- На главной странице DataSphere
нажмите Попробовать бесплатно и выберите аккаунт для входа — Яндекс ID или рабочий аккаунт в федерации (SSO). - Выберите организацию Yandex Cloud Organization, в которой вы будете работать в Yandex Cloud.
- Создайте сообщество.
- Привяжите платежный аккаунт к сообществу DataSphere, в котором вы будете работать. Убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе
ACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его в интерфейсе DataSphere.
Необходимые платные ресурсы
В стоимость поддержки инфраструктуры для работы с данными Managed Service for ClickHouse® входит:
- плата за использование вычислительных ресурсов DataSphere;
- плата за запущенный кластер Managed Service for ClickHouse®;
- плата за объем считанных данных при исполнении запросов Query.
Подготовьте инфраструктуру
Войдите в консоль управления
Если у вас есть активный платежный аккаунт, на странице облака
Примечание
Если вы работаете с Yandex Cloud через федерацию удостоверений, вам может быть недоступна платежная информация. В этом случае обратитесь к администратору вашей организации в Yandex Cloud.
Создайте каталог
- В консоли управления
выберите облако и нажмите кнопку Создать каталог. - Введите имя каталога, например
data-folder
. - Нажмите кнопку Создать.
Создайте сервисный аккаунт для проекта DataSphere
- Перейдите в каталог
data-folder
. - В списке сервисов выберите Identity and Access Management.
- Нажмите кнопку Создать сервисный аккаунт.
- Введите имя сервисного аккаунта, например
yq-sa
. - Нажмите Добавить роль и назначьте сервисному аккаунту роли:
datasphere.community-project.editor
— для запуска вычислений DataSphere.yq.editor
— для отправки запросов Query.managed-clickhouse.viewer
— для просмотра содержимого кластера Managed Service for ClickHouse®.
- Нажмите кнопку Создать.
Добавьте сервисный аккаунт в проект
Чтобы сервисный аккаунт мог запускать проект DataSphere, добавьте его в список участников проекта.
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. - На вкладке Участники нажмите Добавить участника.
- Выберите аккаунт
yq-sa
и нажмите Добавить.
Создайте авторизованный ключ для сервисного аккаунта
Чтобы сервисный аккаунт мог отправлять запросы Query, создайте авторизованный ключ.
Примечание
Срок жизни авторизованных ключей не ограничен, но вы всегда можете получить новые авторизованные ключи и повторить процедуру аутентификации, если что-то пошло не так.
- В консоли управления
перейдите в каталогdata-folder
. - В списке сервисов выберите Identity and Access Management.
- На панели слева выберите
Сервисные аккаунты. - В открывшемся списке выберите сервисный аккаунт
yq-sa
. - Нажмите кнопку Создать новый ключ на верхней панели и выберите пункт Создать авторизованный ключ.
- Выберите алгоритм шифрования и нажмите Создать.
- Нажмите Скачать файл с ключами.
Создайте секрет
Чтобы получить авторизованный ключ из ноутбука, создайте секрет с содержимым файла авторизованного ключа.
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. - В блоке Ресурсы проекта нажмите
Секрет. - Нажмите Создать.
- В поле Имя задайте имя секрета —
yq_access_key
. - В поле Значение вставьте полное содержимое скачанного файла с авторизированным ключом.
- Нажмите Создать.
Создайте ноутбук
Запросы к базе данных Managed Service for ClickHouse® через Query будут отправляться из ноутбука.
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. - Нажмите кнопку Открыть проект в JupyterLab и дождитесь окончания загрузки.
- На верхней панели нажмите File и выберите New ⟶ Notebook.
- Выберите ядро и нажмите Select.
Начало работы в Query
Пакет yandex_query_magic
предоставляет magic commands для работы в Jupyter. Установите его для отправки запросов в Query. Скопируйте код в ячейки ноутбука yq-storage.ipynb
:
-
Откройте проект DataSphere:
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. - Нажмите кнопку Открыть проект в JupyterLab и дождитесь окончания загрузки.
- Откройте вкладку с ноутбуком.
-
-
Установите пакет
yandex_query_magic
:%pip install yandex_query_magic
-
После завершения установки на верхней панели выберите Kernel ⟶ Restart kernel....
-
Загрузите расширение:
%load_ext yandex_query_magic
-
Настройте подключение, указав идентификатор каталога
data-folder
и название секрета с авторизованным ключом:%yq_settings --folder-id <идентификатор_каталога> --env-auth yq_access_key
-
Выполните тестовый запрос к Query:
%yq select "Hello, world!"
Создайте кластер Managed Service for ClickHouse®
Для отправки запросов подойдет любой рабочий кластер Managed Service for ClickHouse® со включенной опцией Доступ из Yandex Query.
-
В консоли управления
выберите каталогdata-folder
. -
Выберите сервис Managed Service for ClickHouse.
-
Нажмите кнопку Создать кластер.
-
Введите имя кластера в поле Имя кластера, например
clickhouse
. -
В блоке Настройки СУБД:
- В поле Управление пользователями через SQL выберите из выпадающего списка Включено.
- Укажите Имя пользователя и Пароль.
-
В блоке Сервисные настройки:
- Выберите сервисный аккаунт
yq-sa
. - Включите опции Доступ из Yandex Query и Доступ из консоли управления.
- Выберите сервисный аккаунт
-
Остальные настройки можно оставить по умолчанию.
-
Нажмите кнопку Создать кластер.
Создайте таблицу
На этом шаге вы создадите тестовую таблицу с числами от 0 до 100.
-
В консоли управления
, откройте страницу кластераclickhouse
и перейдите на вкладку SQL. -
Введите Имя пользователя и Пароль, указанные при создании кластера.
-
В окно ввода справа вставьте SQL-запрос:
CREATE TABLE test(col1 int) ENGINE = MergeTree ORDER BY col1; INSERT INTO test SELECT * FROM numbers(100)
-
Нажмите Выполнить.
Подключитесь к данным в Managed Service for ClickHouse®
Чтобы создать подключение Query:
-
В консоли управления
выберите каталогdata-folder
. -
В списке сервисов выберите Yandex Query.
-
На панели слева выберите Соединения.
-
Нажмите кнопку
Создать. -
Введите имя соединения, например
clickhouse
. -
Выберите тип соединения Managed Service for ClickHouse.
-
В блоке Параметры типа соединения:
- Кластер — выберите ранее созданный кластер
clickhouse
. - Сервисный аккаунт — выберите сервисный аккаунт
yq-sa
. - Введите Логин и Пароль, указанные при создании кластера.
- Кластер — выберите ранее созданный кластер
-
Нажмите кнопку Создать.
Чтобы проверить подключение, получите данные таблицы из ячейки ноутбука:
%yq SELECT * FROM clickhouse.test
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
- удалите кластер базы данных;
- удалите проект.
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc