Сущность
Логическая сущность, представляющая из себя набор из не менее чем одного ключа.
Физически каждый ключ является полем в таблице.
Таким образом, остальные поля таблицы содержат в себе данные о сущности.
Сущность необходима для регистрации данных в приложении. Каждая сущность объединяет в себе данные из разных источников (таблиц).
Пример: CUSTOMER (CUSTOMER_ID), OFFER (CUSTOMER_ID + CAMPAIGN_ID) и т.д.
Каталог сущностей в SDK
Подробная информация о сущности в SDK:
Реестр сущности
Реестр сущности = якорная таблица, которая содержит целевой набор значений сущности, на основе которого строятся датасеты.
Пользователь может определить загрузчик реестра сущности в опциях сущности.
Требования к загрузчику реестра сущности:
- Таблица загрузчика содержит эталонный (полный и актуальный) набор значений сущности
- Загрузчик зарегистрирован под той же сущностью, по которой определяется реестр
- Тип загрузчика = "готовые переменные" (final)
Определение реестра сущности в SDK:
from FSClient.catalogue import (
entity as ent, # Каталог сущностей
loader as load # Каталог загрузчиков
)
edit_entity = ent.CUSTOMER.edit() # редактирование сущности
# загрузчик готовых фичей CUSTOMER_HIST_FINAL как реестр
edit_entity.registry = load.CUSTOMER_HIST_FINAL
edit_entity.save() # сохранение изменений сущности
С целью оптимизации расчета датасетов настоятельно рекомендуется определить реестр сущности для всех зарегистрированных сущностей.
Если реестр сущности не определен, но в логике задания расчета датасета предполагается его использование, он будет рассчитан автоматически:
- для операции "Слияние датасетов" - объединяются значения сущности из всех таблиц загрузчиков готовых переменных
- для операции "Узел перехода" - объединяются значения сущности из всех используемых таблиц без связи (при этом сохраняется требование обязательного наличия в конфигурации хотя бы одной переменной без связи)
Такой подход не является оптимальным с точки зрения скорости расчета, но позволяет соблюдать детерминированность рассчитанных датасетов.