Перейти к содержанию

Управление подключениями к базам данных

Страница Подключения отображает подключения к базам данных открытой версии проекта и предоставляет все действия над существующим подключением: обновление закешированной схемы, редактирование параметров, отключение и активацию, удаление. Страница открывается из главного меню.

Список подключений

Столбец Описание
Название подключения Название, заданное пользователем
Тип базы данных PostgreSQL, Microsoft SQL Server или ClickHouse
Хост базы данных Адрес хоста базы данных
Название базы данных Имя базы данных
Название схемы Имя схемы. Для Microsoft SQL Server и ClickHouse столбец пуст — отдельная схема в них не используется
Последнее обновление Дата и время последнего успешного обновления схемы
Статус Активно, Отключено или Ошибка обновления с цветовой индикацией
Действия Кнопки: обновить подключение, редактировать подключение, активировать или отключить, удалить

Таблица поддерживает сортировку и поиск по всем столбцам: название подключения, тип базы данных, хост, название базы данных, название схемы, последнее обновление и статус. Поиск выполняется по подстроке без учёта регистра. Если сортировка не задана, подключения выводятся в порядке создания. Если в версии нет подключений, отображается текст «Подключения не найдены».

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

Статусы подключения

Статус Значение
Активно (зелёный) Последняя проверка выполнена успешно, метаданные схемы закешированы. Подключение предлагается при выборе источника и включается в автоматическое обновление схем
Отключено (красный) Подключение отключено пользователем. Оно не предлагается при выборе источника и не обновляется автоматически, но сохраняет закешированную схему
Ошибка обновления (жёлтый) Последняя попытка подключиться или обновить схему завершилась ошибкой. Подключение остаётся в списке, а ранее закешированная схема продолжает использоваться

Закешированная схема и работа в оффлайн-режиме

При создании подключения система однократно считывает полную схему внешней базы данных — список таблиц и колонок с типами данных — и сохраняет её как снимок. В дальнейшем конструктор таблиц фактов, модель данных и конструктор витрин работают с этим снимком, а не с запросами к базе данных.

Для каждой колонки каждой таблицы в снимке хранятся: имя таблицы, имя схемы, имя колонки, обобщённый тип данных, используемый в продукте, и точный тип базы данных с параметрами (например, varchar(255), decimal(10,2), timestamp with time zone).

Это даёт следующее:

  • Аналитические объекты можно проектировать и редактировать даже при временной недоступности исходной базы данных
  • Исходная база данных не получает запросов метаданных при каждом открытии интерфейса
  • Работа с метаданными не зависит от задержек сети и времени отклика источника

Обращения к внешней базе данных выполняются только в следующих случаях:

  • проверка подключения, запущенная пользователем
  • обновление схемы — по запросу пользователя или автоматическое
  • выполнение запроса витрины, когда запрашивается результат
  • создание, обновление или удаление материализованных объектов витрин в этой базе данных

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

Обновление закешированной схемы

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

Результат каждого обновления отображается отдельным уведомлением:

  • успех — «{название подключения}: Подключение к базе данных успешно обновлено». Статус становится Активно, а в поле Последнее обновление записывается текущее время
  • ошибка — «{название подключения}: Не удалось обновить подключение к базе данных». Статус меняется на Ошибка обновления

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

Ошибки при обновлении

Ситуация Результат
Хост недоступен или произошла сетевая ошибка Статус Ошибка обновления, закешированная схема сохраняется и продолжает использоваться
Неверные учётные данные Статус Ошибка обновления, сообщение об ошибке аутентификации
У учётной записи нет прав на чтение метаданных Статус Ошибка обновления, сообщение о недостаточных правах
Сертификат недействителен или истёк Статус Ошибка обновления, сообщение о проблеме с SSL
Базы данных или схемы больше не существует Статус Ошибка обновления, сообщение о недоступности ресурса
База данных не ответила за отведённое время Статус Ошибка обновления, сообщение о превышении времени ожидания

Редактирование подключения

Кнопка Редактировать подключение в строке подключения открывает ту же форму, что и при создании, со следующими особенностями:

  • Пароль скрыт. Поле пароля отображается символами-заполнителями и недоступно для ввода. Чтобы заменить пароль, нажмите кнопку Редактировать рядом с полем — поле очищается и становится редактируемым. Если кнопка не нажата, сохранённый пароль остаётся без изменений
  • Отправляются только изменённые поля. Значения, которых пользователь не касался, остаются прежними
  • Сертификаты. Имена ранее загруженных файлов отображаются в полях только для чтения. Сертификат заменяется загрузкой нового файла, при этом старый файл удаляется из хранилища
  • Кнопка Проверить в режиме редактирования проверяет соединение со значениями, введёнными в форму, подставляя сохранённые значения для неизменённых полей
  • Успешное сохранение сопровождается уведомлением «Настройки подключения к базе данных успешно изменены». Если с новыми параметрами соединение установить не удаётся, открывается тот же диалог Проверьте настройки подключения, что и при создании, и подключение всё равно можно сохранить со статусом Ошибка обновления

Когда изменилась исходная база данных

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

  • Изменение любого поля, влияющего на соединение — хост, порт, база данных, схема, имя пользователя, пароль, SSL — автоматически запускает обновление схемы после сохранения подключения
  • Новые таблицы и колонки становятся доступны в конструкторах таблиц фактов и витрин сразу после завершения обновления
  • Ссылки на таблицы и колонки, которых в источнике больше нет, становятся недействительными. Использующие их элементы отмечаются как содержащие ошибки, что отражается в индикаторах состояния таблиц фактов и витрин, построенных на этих элементах

Активация и отключение подключения

Подключение можно отключить вместо удаления — например, пока источник временно недоступен или выводится из эксплуатации. Оба действия выполняются одной кнопкой в строке подключения: Отключить для активного подключения и Активировать для отключённого.

Отключение подключения:

  • переводит его в статус Отключено и сопровождается уведомлением «Подключение к базе данных успешно отключено»
  • исключает его из автоматического обновления схем, а его собственная кнопка обновления становится недоступной
  • убирает его из списков выбора источника в формах РПИ, таблиц фактов и витрин
  • сохраняет его закешированный снимок схемы

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

Результат Статус Уведомление
Соединение установлено, схема обновлена Активно «Подключение к базе данных успешно активировано»
Базу данных не удалось достичь или её схему не удалось считать Ошибка обновления «Подключение к базе данных активировано в оффлайн режиме с существующими данными схемы»

Во втором случае подключение всё равно выходит из статуса Отключено и сохраняет предыдущий снимок схемы, поэтому его можно использовать в оффлайн-режиме; обновите схему, когда база данных станет доступна. Если сам запрос активации не прошёл, подключение остаётся отключённым и отображается ошибка «Не удалось активировать подключение к базе данных».

Удаление подключения

Кнопка удаления в строке подключения запрашивает подтверждение — «Вы уверены, что хотите удалить подключение к базе данных? Все ссылки на это подключение будут удалены из проекта» — и затем удаляет подключение: вместе с записью из хранилища удаляются закешированный снимок схемы и зашифрованные сертификаты. Удаление записывается в системный журнал с состоянием подключения до удаления.

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

Последствия удаления. Элементы РПИ, у которых поле Подключённый источник указывало на это подключение, теряют ссылку. Такие элементы отмечаются как содержащие критические ошибки, что отражается в индикаторах состояния таблиц фактов и витрин, использующих эти элементы. Чтобы восстановить ссылку, нужно создать подключение заново и выбрать источник в этих элементах.

Права доступа

Управление подключениями зависит от роли пользователя в проекте. Интерфейс скрывает действия, недоступные роли, и те же правила проверяются на сервере.

Роль Просмотр Проверка Обновление схемы Активация / отключение Создание Редактирование Удаление
Суперадминистратор Да Да Да Да Да Да Да
Администратор компании Да Да Да Да Да Да Да
Менеджер проекта Да Да Да Да Да Да Да
Разработчик Да Да Да Да Да Да Да
Аналитик Да Да Да Нет Нет Нет Нет
Наблюдатель Да Нет Нет Нет Нет Нет Нет

Примечания:

  • Все операции с подключениями фиксируются в системном журнале со значениями до и после изменения
  • Любое действие над подключением зависит также от лицензии компании: если лицензия отсутствует, недействительна или приостановлена, кнопки действий скрыты и список доступен только для просмотра