Датасорс (datasource)

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

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

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

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

* Изменение состава хранилища в конфигурации нод требует их перезапуска и подходит, например, для начальной конфигурации хранилища. Использование /attach и /detach не требует перезапуска нод и подходит для начальной конфигурации и последующей переконфигурации хранилища.

Все датасорсы хранилища

В список датасорсов хранилища входят все датасорсы, которые были добавлены в хранилище (независимо от способа добавления) и не были удалены из него.

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.