Датасорс (datasource)

Датасорс — элемент хранилища данных, который имеет уникальное имя и является СУБД или кластером СУБД поддерживаемого типа.

Система позволяет подключить к хранилищу множество датасорсов разных типов.

Конфигурация датасорсов

Параметры датасорсов настраиваются в конфигурации ноды Prostore в секциях <тип_датасорса>.datasource по типам датасорсов. Например, параметры датасорсов типа ADP настраиваются в секции adp.datasource.

Действия с датасорсами

Датасорс можно:

Auto-failover (ADP)

Для ADP-датасорсов доступен механизм auto-failover: обнаружение сбойных датасорсов, их отключение (с перенаправлением запросов на оставшиеся датасорсы) и восстановление.

Состояния датасорсов (ADP)

Для ADP-датасорсов с включенным механизмом auto-failover доступно определение их физического состояния.

Ноды кластера периодически собирают информацию о доступности датасорсов и отправляют ее лидеру, а лидер определяет итоговое состояние по сведениям большинства нод.

Возможные состояния датасорса:

  • healthy — датасорс доступен физически;
  • not healthy — датасорс недоступен физически;
  • recovering — датасорс доступен физически и сейчас восстанавливается. При успешном восстановлении перейдет в состояние healthy, иначе останется в recovering;
  • disabling — датасорс недоступен физически и сейчас отключается. При успешном отключении перейдет в состояние not healthy, иначе останется в disabling;
  • null — состояние неизвестно, или механизм auto-failover выключен.

Отслеживать состояния датасорсов можно с помощью запроса GET_HEALTH_STATE.

Статусы датасорсов

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

Возможные статусы датасорса:

  • Включен — работает для логической БД в полном объеме (по умолчанию). Запись и чтение данных доступны в полном объеме;
  • Отключен — отключен для логической БД автоматически из-за сбоя или администратором для технических работ. Не участвует в запросах чтения и записи данных. Восстановление еще не запускалось, или попытка его запуска завершилось ошибкой;
  • Восстанавливается — восстанавливается для логической БД после сбоя или технических работ и пока отключен. При успешном восстановлении перейдет в статус «Включен», при неуспешном — останется в статусе «Восстанавливается».

Отслеживать статусы датасорсов можно с помощью запроса GET_RECOVER_STATUS.

Имена датасорсов

Имена датасорсов настраиваются в конфигурации вместе с другими параметрами датасорсов.

Один датасорс каждого типа должен иметь имя, соответствующее имени его типа: adb, adp, adqm или adg. Остальные датасорсы того же типа могут иметь произвольные имена, составленные из латинских букв, цифр и символов подчеркивания. Например, в хранилище с двумя датасорсами типа ADP один из них должен называться adp, а другой может называться произвольно: adp2, adp_moscow, test и т.д.

Система не учитывает регистр в именах датасорсов, но для удобства различения в документации имена датасорсов написаны в нижнем регистре (например, adp и adp2), а СУБД и типы датасорсов — в верхнем регистре (например, ADP).

Указание датасорсов в запросах

Целевые датасорсы можно указывать в запросах:

Датасорсы задаются с помощью ключевого слова DATASOURCE_TYPE. В HTTP-запросах на создание прокси-таблиц (CREATE PROXY TABLE, CREATE TABLE) на выбор датасорса также влияет параметр queryId.