Работа с данными в Yandex Managed Service for PostgreSQL
Yandex Query — это интерактивный сервис для бессерверного анализа данных. С его помощью можно обрабатывать информацию из различных хранилищ без необходимости создания выделенного кластера. Поддерживается работа с хранилищами данных Yandex Object Storage, Yandex Managed Service for PostgreSQL, Yandex Managed Service for ClickHouse®.
В этом руководстве вы подключитесь к базе данных Managed Service for PostgreSQL и выполните запросы к ней из ноутбука JupyterLab с помощью Query.
- Подготовьте инфраструктуру.
- Начните работу в Query.
- Создайте кластер Managed Service for PostgreSQL.
- Подключитесь к данным Managed Service for PostgreSQL.
Если созданные ресурсы вам больше не нужны, удалите их.
Ноутбук с примерами также доступен на GitHub
Перед началом работы
Перед началом работы нужно зарегистрироваться в Yandex Cloud, настроить сообщество и привязать к нему платежный аккаунт:
- На главной странице DataSphere
нажмите Попробовать бесплатно и выберите аккаунт для входа — Яндекс ID или рабочий аккаунт в федерации (SSO). - Выберите организацию Yandex Cloud Organization, в которой вы будете работать в Yandex Cloud.
- Создайте сообщество.
- Привяжите платежный аккаунт к сообществу DataSphere, в котором вы будете работать. Убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе
ACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его в интерфейсе DataSphere.
Необходимые платные ресурсы
В стоимость поддержки инфраструктуры для работы с данными Managed Service for PostgreSQL входит:
- плата за использование вычислительных ресурсов DataSphere;
- плата за запущенный кластер Managed Service for PostgreSQL;
- плата за объем считанных данных при исполнении запросов 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-postgresql.viewer
— для просмотра содержимого кластера Managed Service for PostgreSQL.
- Нажмите кнопку Создать.
Добавьте сервисный аккаунт в проект
Чтобы сервисный аккаунт мог запускать проект DataSphere, добавьте его в список участников проекта.
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. - На вкладке Участники нажмите Добавить участника.
- Выберите аккаунт
yq-sa
и нажмите Добавить.
Создайте авторизованный ключ для сервисного аккаунта
Чтобы сервисный аккаунт мог отправлять запросы 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!"
- В консоли управления
перейдите в каталогdata-folder
. - В списке сервисов выберите Identity and Access Management.
- На панели слева выберите
Сервисные аккаунты. - В открывшемся списке выберите сервисный аккаунт
yq-sa
. - Нажмите кнопку Создать новый ключ на верхней панели и выберите пункт Создать авторизованный ключ.
- Выберите алгоритм шифрования и нажмите Создать.
- Нажмите Скачать файл с ключами.
Создайте секрет
Чтобы получить авторизованный ключ из ноутбука, создайте секрет с содержимым файла авторизованного ключа.
-
Выберите нужный проект в своем сообществе или на главной странице
DataSphere во вкладке Недавние проекты. - В блоке Ресурсы проекта нажмите
Секрет. - Нажмите Создать.
- В поле Имя задайте имя секрета —
yq_access_key
. - В поле Значение вставьте полное содержимое скачанного файла с авторизированным ключом.
- Нажмите Создать.
Создайте ноутбук
Запросы к базе данных Managed Service for PostgreSQL через 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 PostgreSQL
Для отправки запросов подойдет любой рабочий кластер Managed Service for PostgreSQL со включенной опцией Доступ из Yandex Query.
- В консоли управления
выберите каталогdata-folder
. - Выберите сервис Managed Service for PostgreSQL.
- Нажмите кнопку Создать кластер.
- Введите имя кластера в поле Имя кластера, например
postgresql
. - В блоке База данных:
- Укажите Имя БД, например
db1
. - Укажите Имя пользователя и Пароль.
- Укажите Имя БД, например
- В блоке Сервисные настройки включите опции Доступ из Yandex Query и Доступ из консоли управления.
- Остальные настройки можно оставить по умолчанию.
- Нажмите кнопку Создать кластер.
Создайте таблицу
На этом шаге вы создадите тестовую таблицу со случайными числами от 0 до 100.
-
В консоли управления
, откройте страницу кластераpostgresql
и перейдите на вкладку SQL. -
Введите Имя пользователя и Пароль, указанные при создании кластера.
-
В окно ввода справа вставьте SQL-запрос:
CREATE TABLE test ( id SERIAL PRIMARY KEY, number INT ); INSERT INTO test (number) SELECT random() * 100 FROM generate_series(1, 100);
-
Нажмите Выполнить.
Подключитесь к данным в Managed Service for PostgreSQL
Чтобы создать подключение подключение Query:
-
В консоли управления
выберите каталогdata-folder
. -
В списке сервисов выберите Yandex Query.
-
На панели слева выберите Соединения.
-
Нажмите кнопку
Создать. -
Введите имя соединения, например
postgresql
. -
Выберите тип соединения Managed Service for PostgreSQL.
-
В блоке Параметры типа соединения:
- Кластер — выберите ранее созданный кластер
postgresql
. - Сервисный аккаунт —
yq-sa
. - База данных —
db1
. - Введите Логин и Пароль, указанные при создании кластера.
- Кластер — выберите ранее созданный кластер
-
Нажмите кнопку Создать.
Чтобы проверить подключение, получите данные таблицы из ячейки ноутбука:
%yq SELECT * FROM postgresql.test
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
- удалите кластер базы данных;
- удалите проект.