Датасорс (datasource)
Датасорс — элемент хранилища данных, который имеет уникальное имя и является СУБД или кластером СУБД поддерживаемого типа.
Система позволяет подключить к хранилищу множество датасорсов одного или разных типов.
Действия с датасорсами
Датасорс можно:
- добавить в хранилище данных любым из способов*:
- задать датасорс в конфигурации каждой ноды в секции
<тип_датасорса>.datasource; - присоединить динамически через /attach;
- задать датасорс в конфигурации каждой ноды в секции
- отключить для проведения восстановления;
- восстановить после сбоя;
- включить после проведения восстановления;
- удалить из хранилища данных любым из способов*:
- удалить датасорс из конфигурации каждой ноды в секции
<тип_датасорса>.datasource; - отсоединить динамически через /detach.
- удалить датасорс из конфигурации каждой ноды в секции
* Изменение состава хранилища в конфигурации нод требует их перезапуска и подходит, например, для начальной конфигурации хранилища. Использование /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.