Прокси-таблица
Прокси-таблица — логическая сущность без версионирования данных и истории данных, поддерживающая параллельную запись и размещенная в единственном датасорсе.
При создании прокси-таблицы система создает и далее поддерживает связанную физическую таблицу в целевом датасорсе. Структура таблицы на логической и физическом уровне идентична.
Выбор датасорса
При создании прокси-таблицы система выбирает датасорс для ее размещения:
- если сконфигурирован 1 датасорс, выбирается он (независимо от его статуса);
- иначе выбор зависит от DATASOURCE_TYPE в запросе:
- [указан 1 датасорс] выбирается он (независимо от его статуса);
- [указано несколько датасорсов] выбирается случайный или псевдослучайный* включенный из указанных;
- [нет DATASOURCE_TYPE] выбирается случайный или псевдослучайный* включенный датасорс из сконфигурированных.
* Псевдослучайный выбор датасорса основан на queryId и доступен только в HTTP-запросах. Запросы с одинаковым queryId создают прокси-таблицы в одном и том же включенном датасорсе (при неизменном списке датасорсов в DATASOURCE_TYPE/конфигурации).
Фактически выбранный датасорс фиксируется в метаданных прокси-таблицы и возвращается для нее в ответе GET_ENTITY_DDL, при обращении к information_schema.tables и т.п.
Виды таблиц
Прокси-таблицы бывают постоянными и временными. Оба вида таблиц имеют одинаковые возможности по управлению ими самими и их данными. Однако временные таблицы не включаются в журнал, системные представления, уведомления о системных событиях и бэкап.
Постоянные таблицы
Постоянная прокси-таблица не имеет ограниченного срока жизни и хранится до тех пор, пока внешняя система ее не удалит.
Временные таблицы
Временная таблица имеет срок жизни, заданный при ее создании, и автоматически удаляется системой по его истечении. Временные таблицы можно использовать, например, для однократного соединения данных без сохранения результата.
Лидер кластера периодически проверяет временные прокси-таблицы окружения и удаляет те из них, срок жизни которых истек. Проверка запускается с интервалом, равным значению параметра ENTITY_TTL_CHECK_PERIOD_MS (по умолчанию — раз в 30 секунд).
Действия с таблицами
Прокси-таблицы можно создавать, изменять и удалять.
Действия с данными таблиц
Данные прокси-таблицы можно загружать, обновлять, запрашивать (читать) и выгружать.
Работать с данными прокси-таблиц можно так же, как данными логических таблиц:
- обновлять и читать — напрямую, без участия внешних таблиц,
- загружать и выгружать — с использованием внешних таблиц.
Важное отличие прокси-таблиц от версионируемых логических таблиц заключается в обработке загружаемых и вставляемых записей с одинаковыми значениями первичного ключа. Загрузка и вставка таких записей в прокси-таблицу без дубликатов первичного ключа возможна в следующих случаях:
- при загрузке данных в таблицу, размещенную в ADP;
- при обновлении данных таблицы запросом UPSERT VALUES.
Все изменения данных прокси-таблицы выполняются вне механизма дельт и операций записи.
Сравнение с логическими и снапшот-таблицами
В таблице ниже представлено сравнение прокси-таблиц с обычными логическими таблицами и снапшот-таблицами. Плюс означает, что свойство поддерживается или применимо к таблице, минус — что свойство не поддерживается или не применимо.
| Свойство | Прокси-таблица | Обычная лог. таблица | Снапшот-таблица |
|---|---|---|---|
| Параллельная запись данных | + | – | + |
| Версионирование данных | – | + | + Отслеживание удалений можно выключить |
| История данных | – | + | – |
| Запись данных в операциях записи | – | + | + |
| Запись данных в дельте | – | + | – |
| Синхронная репликация данных в несколько датасорсов | – | + | + |
| Восстановление механизмом auto-failover при сбое датасорсов | – | + | + |
| Уровень консистентности данных при чтении | Неприменимо, так как всегда 1 реплика | Linearizability | От Casual до Linearizability (в зависимости от настроек таблицы и параметров запроса) |
Статистика по таблице
По умолчанию система собирает статистику по логическим сущностям. Подробнее о просмотре, отключении и обнулении статистики см. в разделе Управление статистикой.