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

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

  • Перед началом работы
  • Создайте кластер
  • Создайте шарды в кластере
  • Настройте окружение
  • Настройте правила шардирования
  • Отправьте запросы к БД
  • Что дальше

Как начать работать с Managed Service for Sharded PostgreSQL

Статья создана
Yandex Cloud
Улучшена
Danila N.
Обновлена 22 декабря 2025 г.
  • Перед началом работы
  • Создайте кластер
  • Создайте шарды в кластере
  • Настройте окружение
  • Настройте правила шардирования
  • Отправьте запросы к БД
  • Что дальше

Примечание

Сервис находится на стадии Preview.

Сервис Managed Service for Sharded PostgreSQL позволяет создавать и поддерживать кластеры шардированного PostgreSQL (SPQR) в инфраструктуре Yandex Cloud. Sharded PostgreSQL использует протокол PostgreSQL, поэтому настраивать правила шардирования и выполнять запросы к базе данных можно с помощью клиента psql. Настройка правил шардирования выполняется через консоль администратора (SPQR router admin console). При подключении к консоли администратора укажите имя пользователя spqr-console и имя базы данных spqr-console.

Чтобы начать работу с сервисом:

  1. Создайте кластер Sharded PostgreSQL.
  2. Создайте шарды в кластере Sharded PostgreSQL.
  3. Настройте окружение.
  4. Настройте правила шардирования.
  5. Отправьте запросы к БД.

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

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.

  2. Если у вас еще нет каталога, создайте его:

    1. В консоли управления на панели сверху нажмите и выберите нужное облако.

    2. Справа от названия облака нажмите .

    3. Выберите Создать каталог.

      create-folder1

    4. Введите имя каталога. Требования к имени:

      • длина — от 2 до 63 символов;
      • может содержать строчные буквы латинского алфавита, цифры и дефисы;
      • первый символ — буква, последний — не дефис.
    5. (Опционально) Введите описание каталога.

    6. Выберите опцию Создать сеть по умолчанию. Будет создана сеть с подсетями в каждой зоне доступности. Также в этой сети будет создана группа безопасности по умолчанию, внутри которой весь сетевой трафик разрешен.

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

      create-folder2

  3. Назначьте вашему аккаунту в Yandex Cloud роли vpc.user и managed-spqr.editor на каталог. Эти роли позволяют создать кластер.

    Примечание

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

  4. Подключаться к кластерам БД можно как изнутри, так и извне Yandex Cloud:

    • Чтобы подключиться изнутри Yandex Cloud, создайте виртуальную машину на основе Linux в той же облачной сети, что и кластер БД.

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

    Примечание

    Следующий шаг предполагает, что подключение к кластеру производится с ВМ. Если вы собираетесь подключаться к кластеру из интернета, переходите к созданию кластера.

  5. Подключитесь к ВМ по SSH.

Создайте кластерСоздайте кластер

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

  2. Выберите сервис Yandex Managed Service for Sharded PostgreSQL.

  3. Нажмите кнопку Создать кластер.

  4. В поле Имя кластера введите имя кластера.

  5. Выберите окружение PRODUCTION.

  6. Выберите тип шардирования:

    • Стандартное — кластер будет состоять только из инфраструктурных хостов.
    • Расширенное — кластер будет состоять только из хостов-роутеров и (опционально) хостов-координаторов.
  7. В блоке Сетевые настройки:

    • Выберите созданную перед началом работы облачную сеть.
    • Выберите группу безопасности по умолчанию или создайте новую.
  8. Задайте конфигурацию вычислительных ресурсов:

    • Для стандартного шардирования задайте в блоке Инфраструктура конфигурацию инфраструктурных хостов.
    • Для расширенного шардирования задайте в блоке Роутер конфигурацию хостов-роутеров.

    Чтобы задать конфигурацию вычислительных ресурсов:

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

    2. В блоке Хранилище:

      1. Выберите тип диска.
      2. Задайте размер хранилища.
    3. В блоке Хосты укажите зоны доступности и подсети для хостов, которые будут созданы вместе с кластером.

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

  9. (Опционально) В блоке Координатор включите опцию Координатор и задайте конфигурацию хостов-координаторов.

  10. В блоке База данных укажите:

    • Имя БД. Оно должно быть уникальным в рамках каталога.
    • Имя пользователя — владельца БД.
    • Пароль.
  11. В блоке Дополнительные настройки укажите пароль для консоли Sharded PostgreSQL.

  12. Нажмите кнопку Создать кластер.

  13. Дождитесь, когда кластер будет готов к работе: его статус сменится на Running, а состояние — на Alive. Чтобы проверить состояние, наведите курсор на статус кластера в столбце Доступность.

Создайте шарды в кластереСоздайте шарды в кластере

Создайте два шарда в кластере Managed Service for Sharded PostgreSQL. Чтобы создать шард:

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

  2. Cоздайте кластер Managed Service for PostgreSQL в той же облачной сети, что и кластер Sharded PostgreSQL.

  3. Откройте ваш кластер Sharded PostgreSQL и перейдите на вкладку  Шарды.

  4. В правом верхнем углу страницы нажмите кнопку Создать шард.

  5. В открывшемся окне:

    1. Задайте Имя шарда.

    2. В поле Кластер Managed Service for PostgreSQL выберите созданный ранее кластер PostgreSQL.

      Кластер Managed Service for PostgreSQL должен находиться в том же каталоге и в той же облачной сети, что и кластер Managed Service for Sharded PostgreSQL.

Важно

Убедитесь, что роутер может подключаться к хостам шарда. Для этого шарды и кластер Managed Service for Sharded PostgreSQL должны находиться в одной группе безопасности, разрешающей входящие и исходящие TCP-подключения на порт 6432.

Настройте окружениеНастройте окружение

Linux (Bash)/macOS (Zsh)
Windows (PowerShell)
  1. Получите SSL-сертификат:

    mkdir -p ~/.postgresql && \
    wget "https://storage.yandexcloud.kz/cloud-certs/CA.pem" \
            --output-document ~/.postgresql/root.crt && \
    chmod 0655 ~/.postgresql/root.crt
    

    Сертификат будет сохранен в файле ~/.postgresql/root.crt.

  2. Установите необходимые зависимости и клиент PostgreSQL:

    sudo apt update && sudo apt install -y postgresql-client
    
  1. Установите PostgreSQL для Windows последней версии. Выберите только установку Command Line Tools.

  2. Получите SSL-сертификат:

    mkdir $HOME\.postgresql; curl.exe -o $HOME\.postgresql\root.crt https://storage.yandexcloud.kz/cloud-certs/CA.pem
    

    Сертификат будет сохранен в файле $HOME\.postgresql\root.crt.

Настройте правила шардированияНастройте правила шардирования

Важно

Если вы используете группы безопасности для облачной сети, настройте их так, чтобы был разрешен весь необходимый трафик между кластером и хостом, с которого выполняется подключение.

  1. Подключитесь к консоли администратора:

    Linux (Bash)/macOS (Zsh)
    Windows (PowerShell)
    psql "host=<FQDN_хоста> \
         port=6432 \
         sslmode=verify-full \
         sslrootcert=~/.postgresql/root.crt \
         dbname=spqr-console \
         user=spqr-console"
    

    Подробнее о подключении к кластеру Managed Service for Sharded PostgreSQL.

    & "C:\Program Files\PostgreSQL\<мажорная_версия_PostgreSQL>\bin\psql.exe" `
        --host=<FQDN_хоста> `
        --port=6432 `
        --username=spqr-console `
        --dbname=spqr-console `
        --set=sslmode=verify-full `
        --set=sslrootcert=$HOME\.postgresql\root.crt
    

    Подробнее о подключении к кластеру Managed Service for Sharded PostgreSQL.

  2. Создайте правило шардирования:

    CREATE DISTRIBUTION ds1 COLUMN TYPES int;
    

    Будет создано правило шардирования с именем ds1 для столбцов типа int.

  3. Привяжите таблицу к правилу и укажите ключ шардирования:

    ALTER DISTRIBUTION ds1 ATTACH RELATION customers DISTRIBUTION KEY id;
    

    Таблица customers будет привязана к правилу ds1. Ключ шардирования для таблицы customers — столбец id.

  4. Создайте диапазоны значений ключа для распределения данных по шардам:

    CREATE KEY RANGE krid2 FROM 1000 ROUTE TO <имя_шарда_2> FOR DISTRIBUTION ds1;
    CREATE KEY RANGE krid1 FROM 1 ROUTE TO <имя_шарда_1> FOR DISTRIBUTION ds1;
    

    Важно

    Создавайте диапазоны значений ключа, начиная с наибольшего значения. Нарушение этого порядка приведет к ошибке key range krid2 intersects with key range krid1 in QDB. Для диапазона с наибольшим значением ключа правая граница будет равна бесконечности.

  5. Чтобы выйти из консоли администратора, выполните команду \q.

Отправьте запросы к БДОтправьте запросы к БД

  1. Подключитесь к БД:

    Linux (Bash)/macOS (Zsh)
    Windows (PowerShell)
    psql "host=<FQDN_хоста> \
         port=6432 \
         sslmode=verify-full \
         sslrootcert=~/.postgresql/root.crt \
         dbname=<имя_БД> \
         user=<имя_пользователя> \
         target_session_attrs=read-write"
    

    Подробнее о подключении к кластеру Managed Service for Sharded PostgreSQL.

    & "C:\Program Files\PostgreSQL\<мажорная_версия_PostgreSQL>\bin\psql.exe" `
        --host=<FQDN_хоста> `
        --port=6432 `
        --username=<имя_пользователя> `
        --dbname=<имя_БД> `
        --set=target_session_attrs=read-write `
        --set=sslmode=verify-full `
        --set=sslrootcert=$HOME\.postgresql\root.crt
    

    Подробнее о подключении к кластеру Managed Service for Sharded PostgreSQL.

  2. Создайте таблицу customers:

    CREATE TABLE customers (
        id INT,
        name VARCHAR,
        phone VARCHAR,
        acctbal NUMERIC
    );
    
  3. Начните транзакцию:

    BEGIN;
    
  4. Добавьте строки:

    1. Добавьте строку в шард с диапазоном значений krid1:

      INSERT INTO customers (id, name, phone, acctbal) VALUES (28, 'Иван Иванов', '123-45-67', 1500.50);
      
    2. Добавьте строку в шард с диапазоном значений krid2:

      INSERT INTO customers (id, name, phone, acctbal) VALUES (3200, 'Дмитрий Кузнецов', '555-66-77', -50.75);
      
  5. Завершите транзакцию:

    COMMIT;
    
  6. Посмотрите строки, указав значение ключа в запросе, например:

    SELECT * FROM customers WHERE id = 28;
    

    Запрос SELECT * FROM customers; приведет к ошибке, так как строки распределены по разным шардам. Одновременно можно получить строки только с одного шарда. Чтобы проверить распределение строк по шардам, подключитесь к каждому шарду и посмотрите добавленные записи.

  7. Чтобы выйти из базы данных, выполните команду \q.

Что дальшеЧто дальше

  • Изучите концепции сервиса.
  • Узнайте подробнее о создании кластера и подключении к БД.

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

Следующая
Все инструкции
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»