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

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

  • Настройка соединения
  • Синтаксис запросов
  • Ограничения
  • Пушдаун фильтров
  • Поддерживаемые типы данных
  1. Источники и приемники данных
  2. Работа с базами данных Managed Service for PostgreSQL

Работа с базами данных Managed Service for PostgreSQL

Статья создана
Yandex Cloud
Обновлена 6 марта 2025 г.
  • Настройка соединения
  • Синтаксис запросов
  • Ограничения
  • Пушдаун фильтров
  • Поддерживаемые типы данных

В этом разделе описана основная информация про работу с Managed Service for PostgreSQL.

Для работы с базой данных Managed Service for PostgreSQL необходимо выполнить следующие шаги:

  1. Создать соединение, содержащее реквизиты для подключения к базе данных.
  2. Выполнить запрос к базе данных.

Пример запроса, выполняющего чтение данных из Managed Service for PostgreSQL:

SELECT * FROM postgresql_mdb_connection.my_table

где:

  • postgresql_mdb_connection — название созданного соединения с базой данных.
  • my_table — имя таблицы в базе данных.

Настройка соединенияНастройка соединения

Чтобы создать соединение с Managed Service for PostgreSQL:

  1. В консоли управления выберите каталог, в котором нужно создать соединение.

  2. В списке сервисов выберите Yandex Query.

  3. На панели слева перейдите на вкладку Соединения.

  4. Нажмите кнопку Создать.

  5. Укажите параметры соединения:

    1. В блоке Общие параметры:

      • Имя — название соединения с Managed Service for PostgreSQL.
      • Тип — Managed Service for PostgreSQL.
    2. В блоке Параметры типа соединения:

      • Кластер — выберите существующий кластер Managed Service for PostgreSQL или создайте новый.

      • Сервисный аккаунт — выберите существующий сервисный аккаунт Managed Service for PostgreSQL или создайте новый с ролью managed-postgresql.viewer, от имени которого будет выполняться подключение к кластерам Managed Service for PostgreSQL.

        Чтобы использовать сервисный аккаунт, пользователю нужна роль iam.serviceAccounts.user.

      • База данных — выберите базу данных, которая будет использоваться при работе с кластером PostgreSQL.

      • Схема — укажите пространство имен, которое будет использоваться при работе с базой данных PostgreSQL.

      • Логин — имя пользователя, которое будет использоваться для подключения к базам данных PostgreSQL.

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

  6. Нажмите кнопку Создать.

Сервисный аккаунт необходим для обнаружения точек подключения к кластерам Managed Service for PostgreSQL внутри Yandex Cloud, для работы с данными логин и пароль пользователя задаются отдельно.

Важно

Необходимо предварительно разрешить сетевой доступ от Yandex Query до кластеров Managed Service for PostgreSQL. Для этого в настройках базы данных, к которой осуществляется подключение, установите пункт "Доступ из Yandex Query".

Синтаксис запросовСинтаксис запросов

Для работы с PostgreSQL используется следующая форма SQL-запроса:

SELECT * FROM <соединение>.<имя_таблицы>

где:

  • <соединение> — название созданного соединения с базой данных.
  • <имя_таблицы> — имя таблицы в базе данных.

ОграниченияОграничения

При работе с кластерами PostgreSQL существует ряд ограничений.

Ограничения:

  1. Внешние источники доступны только для чтения данных через запросы SELECT. Запросы, модифицирующие таблицы во внешних источниках, сервисом Yandex Query в настоящее время не поддерживаются.

  2. В YQ используется система типов Yandex Managed Service for YDB. Однако диапазоны допустимых значений для типов, использующихся в YDB при работе с датой и временем (Date, Datetime, Timestamp), зачастую оказываются недостаточно широкими для того, чтобы вместить значения соответствующих типов PostgreSQL (date, timestamp).
    В связи с этим значения даты и времени, прочитанные из PostgreSQL, возвращаются YQ как обычные строки (тип Optional<Utf8>) в формате ISO-8601.

Пушдаун фильтровПушдаун фильтров

Yandex Query умеет передавать обработку частей запросов в систему-источник данных. Это означает, что фильтрующие выражения передаются сквозь Yandex Query непосредственно в базу данных для обработки, обычно это условия запросов, указанных в WHERE. Такой способ обработки называется пушдаун фильтров.

Пушдаун фильтров возможен при использовании:

Описание Пример
Фильтров вида IS NULL/IS NOT NULL WHERE column1 IS NULL или WHERE column1 IS NOT NULL
Логических условий OR, NOT, AND. WHERE column IS NULL OR column2 is NOT NULL.
Условий сравнения =, <>, <, <=, >, >= c другими колонками или константами. WHERE column3 > column4 OR column5 <= 10.

Поддерживаемые типы данных для пушдауна фильтров:

Тип данных Yandex Query
Bool
Int8
Int16
Int32
Int64
Float
Double

Поддерживаемые типы данныхПоддерживаемые типы данных

В базе данных PostgreSQL признак опциональности значений колонки (разрешено или запрещено колонке содержать значения NULL) не является частью системы типов. Ограничение (constraint) NOT NULL для каждой колонки реализуется в виде атрибута attnotnull в системном каталоге pg_attribute, то есть на уровне метаданных таблицы. Следовательно, все базовые типы PostgreSQL по умолчанию могут содержать значения NULL, и в системе типов YQ они должны отображаться в опциональные типы.

Ниже приведена таблица соответствия типов PostgreSQL и Yandex Query. Все остальные типы данных, за исключением перечисленных, не поддерживаются.

Тип данных PostgreSQL Тип данных Yandex Query Примечания
boolean Optional<Bool>
smallint Optional<Int16>
int2 Optional<Int16>
integer Optional<Int32>
int Optional<Int32>
int4 Optional<Int32>
serial Optional<Int32>
serial4 Optional<Int32>
bigint Optional<Int64>
int8 Optional<Int64>
bigserial Optional<Int64>
serial8 Optional<Int64>
real Optional<Float>
float4 Optional<Float>
double precision Optional<Double>
float8 Optional<Double>
date Optional<Utf8>
timestamp Optional<Utf8>
bytea Optional<String>
character Optional<Utf8> Правила сортировки по умолчанию, строка дополняется пробелами до требуемой длины.
character varying Optional<Utf8> Правила сортировки по умолчанию.
text Optional<Utf8> Правила сортировки по умолчанию.
json Optional<Json>

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

Предыдущая
Работа с базами данных Managed Service for MySQL®
Следующая
Работа с базами данных Managed Service for YDB
Проект Яндекса
© 2025 ООО «Яндекс.Облако»