Прокси-таблица

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

Физическая схема данных

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

Подробнее о физической схеме см. в разделе Физическая схема данных.

Выбор датасорса

Датасорс для размещения прокси-таблицы выбирается следующим образом:

  • Если сконфигурирован один датасорс, используется он (независимо от его состояния).
  • Если сконфигурировано несколько датасорсов:
    • Если DATASOURCE_TYPE задает один датасорс, используется он (независимо от его состояния).
    • Если DATASOURCE_TYPE задает несколько датасорсов, выбирается случайный или псевдослучайный* активный из них.
    • Если DATASOURCE_TYPE не задан, выбирается случайный или псевдослучайный* активный датасорс из сконфигурированных.

* В HTTP-запросах значение параметра queryId используется как начальное значение (seed) для псевдослучайного выбора датасорса. Запросы с одинаковым queryId при одинаковом списке датасорсов в DATASOURCE_TYPE/конфигурации создают прокси-таблицы в одном и том же активном датасорсе.

Фактически выбранный датасорс фиксируется в метаданных прокси-таблицы и возвращается для нее в ответе GET_ENTITY_DDL, при обращении к information_schema.tables и т.п.

Виды таблиц

Прокси-таблицы бывают постоянными и временными. Оба вида таблиц имеют одинаковые возможности по управлению ими самими и их данными. Однако временные таблицы не включаются в журнал, системные представления, уведомления о системных событиях и бэкап.

Постоянные таблицы

Постоянная прокси-таблица не имеет ограниченного срока жизни и хранится до тех пор, пока внешняя система ее не удалит.

Временные таблицы

Временная таблица имеет срок жизни, заданный при ее создании, и автоматически удаляется системой по его истечении. Временные таблицы можно использовать, например, для однократного соединения данных без сохранения результата.

Лидер кластера периодически проверяет временные прокси-таблицы окружения и удаляет те из них, срок жизни которых истек. Проверка запускается с интервалом, равным значению параметра ENTITY_TTL_CHECK_PERIOD_MS (по умолчанию — раз в 30 секунд).

Действия с таблицами

Прокси-таблицы можно создавать, изменять и удалять.

Действия с данными таблиц

Данные прокси-таблицы можно загружать, обновлять, запрашивать (читать) и выгружать.

Работать с данными прокси-таблиц можно так же, как данными обычных логических таблиц:

  • обновлять и читать — напрямую, без участия внешних таблиц,
  • загружать и выгружать — с использованием внешних таблиц.

Важное отличие прокси-таблиц от версионируемых логических таблиц заключается в обработке загружаемых и вставляемых записей с одинаковыми значениями первичного ключа. Загрузка и вставка таких записей в прокси-таблицу без конфликта по ключам возможна в следующих случаях:

  • при загрузке данных в таблицу, размещенную в ADP;
  • при обновлении данных таблицы запросом UPSERT VALUES.

Все изменения данных прокси-таблицы выполняются вне механизма дельт и операций записи.

Сравнение с версионируемыми логическими таблицами

В таблице ниже представлено сравнение прокси-таблиц с обычными логическими таблицами, поддерживающими версионирование данных. Плюс означает, что свойство поддерживается и (или) применимо к таблице, минус — что свойство не поддерживается или не применимо.

Свойство Прокси-таблица Логическая таблица с версионированием
Параллельная запись данных
Версионирование данных
Присвоение номеров операций записи
Запись данных в дельте
Физическое размещение данных в нескольких датасорсах

Статистика по таблице

По умолчанию система собирает статистику по логическим сущностям. Подробнее о просмотре, отключении и обнулении статистики см. в разделе Управление статистикой.