13. Интеграция с базами данных

13.1. Ротация паролей СУБД

13.1.1. Описание концепции

Для управления консистентной ротацией паролей СУБД и связанных с СУБД настроек инсталляций приложений в рамках услуги (Витрины данных НСУД) в Datamart Platform Studio реализован механизм ротации паролей в меню услуги.

Пункт меню ротации паролей СУБД подключается автоматически при добавлении в услугу инсталляции или кластера СУБД следующих типов:

  • Инсталляция СУБД Pangolin standalone

  • Кластер Pangolin Cluster DB

Примечание

Если в бандле у соответствующего приложения нет плэйбуков ротации Datamart Platform Studio во вкладке ротации отобразит сообщение о необходимости обновления.

Имя пользователя СУБД, для которого выполняется ротация в соответствующих инсталляциях отображается в колонке «Пользователь». Имя инсталляции или кластера СУБД отображается родительской строкой в таблице, а связанные с ней инсталляции дочерними строками.

Привязка и отображение связанных инсталляций во вкладке ротации паролей производится автоматически на основании существующих связей интерфейсов при включении опции ротации. Действие Обновить список проверяет связи и если произошли какие-то изменения с момента последней привязки, перестраивает список.

Вкладка ротации паролей в услуге

Рисунок 13.1 Вкладка ротации паролей в услуге

Автоматическое связывание настроек полей имен пользователей и паролей, по которым будет производиться ротация, выполняется на основании данных из справочника Настройка полей подключений:

Настройка полей подключений

Рисунок 13.2 Настройка полей подключений

Колонка Относится к «Мастер» приложению указывает, где будет производится ротация пароля для данной настройки, в настройках самой СУБД (Pangolin, в текущем примере) или у приложений, которые связаны с СУБД.

Справочник заполнен данными по умолчанию и может быть при необходимости расширен, в случае, если в Datamart Platform Studio будут добавлены приложения, которые хранят данные о подключении к СУБД в других настройках.

13.1.2. Общие положения

  • Ротация паролей производится единовременно для группы пользователей, список которых указан в настройках приложения СУБД

  • Ротация может выполняться как вручную, так и по расписанию

  • В исключительных случаях может выполняться ротация пароля для 1-го пользователя СУБД, это действие никак не влияет на общее расписание ротации

  • При ротации пароля пользователя СУБД выполняется автоматическая ротация настройки пароля для связанных приложений в следующей последовательности:
    • остановка (выполнение плэйбука stop) связанных с СУБД инсталляций

    • ротация всех паролей у СУБД

    • изменение настроек у связанных приложений

    • применение настроек (выполнение плэйбука bind) для связанных инсталляций

13.1.3. Предварительная настройка

Перед выполнением ротации требуется:

  • Включить опцию ротации для приложения (включается настройка Pangolin rotate_password.enable = true и выполняется плэйбук подключения опции ротации)

  • Настроить список пользователей, для которых будет выполняться ротация (редактирование настройки rotate_password.valid_roles и выполняется плэйбук применения настроек). Список пользователей требуется указать через запятую.

Доступные функции ротации

Рисунок 13.3 Доступные функции ротации

Включить / отключить ротацию

Рисунок 13.4 Включить / отключить ротацию

Редактировать список пользователей для ротации

Рисунок 13.5 Редактировать список пользователей для ротации

13.1.4. Выполнение ротации

Для консистентного выполнения ротации паролей СУБД Pangolin требуется выполнить следующие шаги:

  1. Остановить связанные инсталляции (выполнить плэйбук stop).

  2. Выполнить ротацию паролей СУБД для всех указанных в настройке пользователей (в процессе ротации будут также обновлены настройки паролей у связанных инсталляций).

  3. Выполнить применение настроек (плэйбук bind) у связанных инсталляций.

Примечание

Остановка всех связанных инсталляций выполняется автоматически перед выполнением плэйбука ротации пароля СУБД. При выборе опции Выполнить ротацию и применить настройки плэйбуки bind выполняются автоматически после ротации паролей СУБД.

Выполнение ротации паролей

Рисунок 13.6 Выполнение ротации паролей

Диалоговое окно ротации паролей

Рисунок 13.7 Диалоговое окно ротации паролей

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

Применение настроек для связанной инсталляции

Рисунок 13.8 Применение настроек для связанной инсталляции

13.1.4.1. Отображение пароля

После выполнения ротации содержание настройки пароля будет обновлено. Для просмотра пароля необходимо выполнить действие «Отобразить пароль». Разрешение на отображение содержимого настройки с паролем предоставляется только для ролей с правами просмотра паролей.

Отображение пароля после ротации

Рисунок 13.9 Отображение пароля после ротации

В случае несоответствия настройки пароля у СУБД и связанной инсталляции, настройка пароля подсвечивается, как ошибочная.

13.1.4.2. Ротация пароля для отдельного пользователя

В случае возникновения ошибки в процессе ротации для отдельного пользователя можно выполнить ротацию пароля только для этого пользователя выбрав в соответствующей строке действие Ротировать (см. Рисунок 13.9). Пароли связанных инсталляций будут обновлены, соответственно.

Ротация пароля для отдельного пользователя не влияет на расписание ротации.

13.1.5. Настройка планирования ротации

Для настройки планирования ротации реализовано несколько механизмов:

  • Расписание - циклическое выполнение задач по заданному временному шаблону. Наиболее подходит для регулярных задач, выполняемых ежедневно, еженедельно, ежемесячно и т.д.

  • Отложенный запуск - однократное выполнение задачи в указанную дату и время

Для активации планирования в меню «Управление» нужно выбрать соответствующее приложение и выбрать действие Настройка расписания ротации.

Настройка расписания ротации

Рисунок 13.10 Настройка расписания ротации

13.1.5.1. Расписание

Окно заполнения расписания

Рисунок 13.11 Окно заполнения расписания

Расписание реализовано с использованием Cron, что обеспечивает высокую гибкость в настройке времени выполнения задач. Включает пять ключевых параметров, определяющих расписание:

Таблица 13.1 Поля расписания

Поле

Допустимые значения

Спец символы

Минуты

0-59

, - * /

Часы

0-23

, - * /

День месяца

1-31

, - * /

Месяц

1-12

, - * /

День недели

0-6 (0 Воскресенье)

, - * /

Для более точной настройки расписания можно использовать специальные символы:

Таблица 13.2 Специальные символы

Символ

Описание

,

Перечисление. Команда будет выполняться в заданные значения

-

Диапазон. Команда будет выполняться в заданном интервале значений

*

Любое значение

/

Шаг. Команда будет выполняться с заданным интервалом. Шаг обязательно должен начинаться с */<значение>

Примеры расписания:

  • Каждые 10 мин.

    */10 | * | * | * | *

  • В 00, 15, 30 минут каждого часа

    0, 15, 30 | * | * | * | *

  • Каждый день в 18:30

    30 | 18 | * | * | *

  • По рабочим дням в 21:00

    0 | 21 | * | * | 1-5

  • В полночь 1-ого числа каждого месяца

    0 | 0 | 1 | * | *

  • 1 раз в год в полночь 1-ого июня

    0 | 0 | 1 | 6 | *

Примечание

Для составления своего расписания можно обратиться к онлайн-генератору расписания по Cron.

13.1.5.2. Отложенный запуск

Окно отложенного запуска

Рисунок 13.12 Окно отложенного запуска

Отложенный запуск позволяет запланировать однократное выполнение задачи в указанную дату и время. Особенно полезно для задач, которые не требуют регулярного выполнения, но должны быть запущены в определенный момент времени. Включает два параметра:

  • Дата - можно указать дату вручную или выбрать дату, нажав на значок календаря

  • Время - нужно указать время вручную с точностью до минуты

13.2. Команды БД

13.2.1. Описание концепции

Для реорганизации таблиц и индексов СУБД в рамках услуги (Витрины данных НСУД) реализован механизм выполнения определенных команд, при помощи расширения PGRepack, а также их запуск по расписанию.

Примечание

PGRepack — это расширение PostgreSQL и Pangolin, предназначенное для реорганизации таблиц и индексов без блокировки операций чтения и записи. Оно устраняет «раздувание» таблиц и индексов, возникающее из‑за частых обновлений и удалений данных. Инструмент позволяет восстанавливать физический порядок кластеризованных индексов и освобождать неиспользуемое дисковое пространство.

Примечание

На текущий момент можно выполнить только команды PGRepack. В дальнейшем список команд к СУБД будет раширяться.

Расширение PGRepack добавляется автоматически вместе с добавлением в услугу инсталляций или кластеров СУБД следующих типов:

  • Инсталляция СУБД Pangolin standalone

  • Инсталляция СУБД PostgreSQL standalone

  • Кластер Pangolin Cluster DB

  • Кластер PostgreSQL DB

После добавления в услугу в карточке инсталляции/кластера в меню отобразится пункт «Команды БД», с помощью которого осуществляется управление командами и их планирование.

Команды БД

Рисунок 13.13 Команды БД

13.2.2. Управление командами

Для добавления новой команды нужно перейти в раздел «Команды БД» и нажать на кнопку Добавить команду. В открывшемся модальном окне заполнить обязательные поля: «Наименование» и «Команда». В поле «Команда» не нужно указывать параметры подключения, а сразу указывать параметры реорганизации. Например:

pgrepack --table=public.users
pgrepack --schema=public
pgrepack --only-indexes --table=public.users
Добавление команды

Рисунок 13.14 Добавление команды

Примечание

Полный список команд и их значение можно посмотреть в документации к PostgresPro.

Также для удобства реализована функция планирования задач, позволяющая автоматизировать процесс запуска команды. Для активации планирования задач требуется нажать на чекбокс Добавить расписание запуска команды. Станут доступны функции:

  • Расписание - циклическое выполнение задач по заданному временному шаблону. Наиболее подходит для регулярных задач, выполняемых ежедневно, еженедельно, ежемесячно и т.д.

  • Отложенный запуск - однократное выполнение задачи в указанную дату и время

Более подробно про настройку расписания смотреть в разделе: Раздел 13.1.5 Настройка планирования ротации.

Можно выполнить запуск команды вне расписания, или если расписание не предусмотрено, нажав на «Управление» и выбрав дейтствие Выполнить. Для редактирования или удаления команды нужно выбрать соответствующее действие.

Управление командами

Рисунок 13.15 Управление командами

13.3. Регистрация подключений к внешним базам данных

В разделе «Базы данных» есть возможность зарегистрировать подключения к СУБД.

Регистрация подключения к БД

Рисунок 13.16 Регистрация подключения к БД

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

Регистрация интерфейсов БД

Рисунок 13.17 Регистрация интерфейсов БД

13.4. Интеграция с ZooKeeper

Примечание

Инструменты редактирования содержимого в кластере ZooKeeper доступны пользователям с ролями superadmin.

Для просмотра и редактирования содержимого нод в кластере ZooKeeper в Datamart Platform Studio добавлена интеграция с кластером. В карточке инсталляции или кластера ZooKeeper во вкладке ZooKeeper доступны следующие действия для нод кластера:

  • просмотр структуры и содержимого нод ZooKeeper;

  • редактирование содержимого ноды;

  • cut, copy, paste, delete - действия с нодами;

  • выделение групп и групповые операции с нодами ZooKeeper;

  • операции экспорта в файл и импорта из файла в формате ZooKeeper.

При наведении курсора на ноду Zookeeper, отображается меню действий с нодой (см. Рисунок 13.18), а при клике на ноду, возможность редактирования содержимого.

Доступные для отдельной ноды действия:

  • cut, copy, paste, delete;

  • импорт из файла в формате ZooKeeper.

Интеграция с Zookeeper

Рисунок 13.18 Интеграция с Zookeeper

При выделении нескольких нод ZooKeeper, в правом верхнем углу появляется меню групповых действий с нодами (см. Рисунок 13.19).

Для выделенных нод доступны действия:

  • cut, copy, delete;

  • операции экспорта в файл в формате ZooKeeper;

Интеграция с Zookeeper

Рисунок 13.19 Интеграция с Zookeeper

Примечание

Инструменты редактирования содержимого в кластере Zookeeper доступны пользователям с ролью superadmin.