Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for Apache Airflow™
  • Начало работы
    • Все инструкции
      • Managed Service for Apache Airflow™: подключение к базе данных
      • Managed Service for ClickHouse®: подключение к базе данных
      • Managed Service for PostgreSQL: подключение к базе данных
    • Работа с интерфейсами Apache Airflow™
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Yandex Monitoring
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Перед началом работы
  • Создайте секрет Yandex Lockbox
  • Подготовьте DAG-файл и запустите граф
  • Проверьте результат
  1. Пошаговые инструкции
  2. Подключения
  3. Managed Service for PostgreSQL: подключение к базе данных

Подключение к Yandex Managed Service for PostgreSQL

Статья создана
Yandex Cloud
Обновлена 8 октября 2025 г.
  • Перед началом работы
  • Создайте секрет Yandex Lockbox
  • Подготовьте DAG-файл и запустите граф
  • Проверьте результат

С помощью направленного ациклического графа (DAG) можно настроить подключение к БД в кластере Yandex Managed Service for PostgreSQL. Данные для подключения к БД хранятся в Yandex Lockbox и автоматически подставляются в граф.

Совет

В кластерах с версией Apache Airflow™ ниже 3.0 по умолчанию используется провайдер apache-airflow-providers-postgres версии 5.13.1. Если вы работаете с более новой версией провайдера, вместо PostgresOperator используйте SQLExecuteQueryOperator. Подробнее см. в официальной документации.

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

  1. Создайте кластер Managed Service for PostgreSQL с параметрами:

    • Имя БД — db1;
    • Имя пользователя — user1;
    • Пароль — user1-password.
  2. Создайте бакет Yandex Object Storage, в котором будет храниться DAG-файл.

  3. Настройте кластер Managed Service for Apache Airflow™:

    1. Включите опцию Использовать Lockbox Secret Backend, которая позволяет использовать секреты в сервисе Yandex Lockbox для хранения конфигурационных данных, переменных и параметров подключений Apache Airflow™.

    2. В блоке Зависимости добавьте pip-пакет apache-airflow-providers-postgres.

      Важно

      Установка pip-пакета необходима для кластеров с версией Apache Airflow™ 3.0 и выше. В кластерах с версией Apache Airflow™ ниже 3.0 pip-пакет установлен по умолчанию.

    3. В блоке Хранилище DAG-файлов выберите созданный ранее бакет Object Storage. Из него будет загружен DAG-файл.

  4. Выдайте своему сервисному аккаунту роль lockbox.payloadViewer.

    Роль lockbox.payloadViewer не обязательно выдавать на весь каталог. Достаточно назначить ее на конкретный секрет Yandex Lockbox после его создания.

Создайте секрет Yandex LockboxСоздайте секрет Yandex Lockbox

Для корректной работы кластера Apache Airflow™ секрет в Yandex Lockbox должен иметь имя в формате airflow/<тип_артефакта>/<идентификатор_артефакта>, где:

  • <тип_артефакта> — определяет, какие данные будут храниться в секрете. Возможные значения:
    • connections — подключения;
    • variables — переменные;
    • config — данные конфигурации.
  • <идентификатор_артефакта> — идентификатор, который будет использоваться для обращения к артефакту в Apache Airflow™.

Создайте секрет Yandex Lockbox с параметрами:

  • Имя — airflow/connections/pg1.

  • Тип секрета — Пользовательский.

  • Ключ — conn.

  • Значение — выберите Текст и укажите следующее содержимое:

    {
      "conn_type": "postgres",
      "host": "<FQDN_хоста_кластера_PostgreSQL>",
      "port": 6432,
      "schema": "db1",
      "login": "user1",
      "password": "user1-password"
    }
    

Подробнее о том, как узнать FQDN хоста кластера PostgreSQL, см. в разделе FQDN хоста PostgreSQL.

В секрете будут сохранены данные для подключения к БД в кластере Managed Service for PostgreSQL.

Подготовьте DAG-файл и запустите графПодготовьте DAG-файл и запустите граф

  1. Создайте локально файл с именем postgres_operator.py и скопируйте в него скрипт:

    Версия Apache Airflow™ ниже 3.0
    Версия Apache Airflow™ 3.0 и выше
    from airflow import DAG
    from airflow.providers.postgres.operators.postgres import PostgresOperator
    
    
    with DAG(
        dag_id='postgres_operator',
        schedule=None
    ):
        PostgresOperator(
            task_id="check_conn",
            postgres_conn_id='pg1',
            sql="SELECT 1;"
        )
    
    from airflow import DAG
    from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
    
    
    with DAG(
        dag_id='postgres_operator',
        schedule=None
    ):
        SQLExecuteQueryOperator(
            task_id="check_conn",
            conn_id='pg1',
            sql="SELECT 1;"
        )
    
  2. Загрузите DAG-файл postgres_operator.py в созданный ранее бакет.

  3. Откройте веб-интерфейс Apache Airflow™.

  4. Убедитесь, что в разделе Dags появился новый граф postgres_operator.

    Загрузка DAG-файла из бакета может занять несколько минут.

  5. Чтобы запустить граф, в строке с его именем нажмите кнопку image.

Проверьте результатПроверьте результат

Чтобы проверить результат в веб-интерфейсе Apache Airflow™:

Версия Apache Airflow™ ниже 3.0
Версия Apache Airflow™ 3.0 и выше
  1. В разделе Dags нажмите на граф postgres_operator.
  2. Перейдите в раздел Graph.
  3. Выберите задание check_conn.
  4. Перейдите в раздел Logs.
  5. Убедитесь, что в логах есть строка Rows affected: 1. Это значит, что запрос выполнен успешно.
  1. В разделе Dags нажмите на граф postgres_operator.
  2. Перейдите в раздел Tasks.
  3. Выберите задание check_conn.
  4. Перейдите в раздел Task Instances.
  5. Выберите экземпляр задания.
  6. Откроется раздел Logs.
  7. Убедитесь, что в логах есть строка Rows affected: 1. Это значит, что запрос выполнен успешно.

Была ли статья полезна?

Предыдущая
Managed Service for ClickHouse®: подключение к базе данных
Следующая
Загрузка переменной из Yandex Lockbox
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»