Загрузка фичей
В статье рассматривается регистрация версий фичей, которые используются для создания датасетов.
Готовые фичи
Настройка параметров:
- Выбрать сущность загрузчика
- Режим загрузки - полный срез («full») или замена («replace»)
Соотнесение дат и ключей:
- Выбрать поле из источника, которое соответствует дате актуальности (1.1) или ввести дату вручную (1.2)
- Выбрать поля для ключей сущности из источника (2)

Соотнесение фичей и атрибутов источника:
Для добавления столбцов из источника «Добавить атрибут», где выбрать поля (1, 2) и добавить их в конфигурацию (3):

- Соотнести фичи (1), зарегистрированные в приложении, к выбранным полям источника
- Ввести название версии фичи (переменной) (2)
- Описание переменной (3) (необязательное)
- Указать тип данных (4)

Предпросмотр:
Последним шагом создания загрузчика является предпросмотр, где можно увидеть всю конфигурацию загрузчика. Для регистрации нажать кнопку «Сохранить» (1).

Пример конфигурации загрузчика готовых фичей в SDK:
from FSClient.catalogue import ( # <-- импорт необходимых каталогов
entity as ent,
feature as feat,
loader as load
)
new_loader = load.create(
source='table' # <-- Тип источника данных
)
# Настройка конфигурации загрузчика
new_loader.config = {
# Название загрузчика в каталоге
'loader_name': 'CUSTOMER_INFO_HIST',
# Пользовательское описание загрузчика
'description': 'Информация по клиенту из карточки клиента АБС',
# Схема таблицы
'src_schema_name': 'stage',
# Название таблицы
'src_table_name': 'customer_hist',
# Сущность таблицы
'entity': ent.CUSTOMER
}
# Маппинг полей источника на сущности каталога
new_loader.mapping = {
# в данном примере дату актуальности (from_dttm) не указываем
# в таком случае период актуальности данных будет от текущей даты до бесконечности
'entity': [
{
# Выбор ключа сущности из каталога
'entity_key': ent.CUSTOMER.CUSTOMER_RK,
# Название поля из таблицы, соответствующее выбранному ключу
'stg_column_name': 'customer_rk'
}
],
'features': [
{
# Фича из каталога
'feature': feat.CUSTOMER_AGE,
# Название поля из таблицы
'stg_column_name': 'customer_age',
'feature_version_config': {
# Название версии переменной в каталоге
'name': 'V1_MAIN',
# Пользовательское описание версии переменной
'description': 'Карточка клиента из АБС: Возраст клиента',
# Тип данных поля из таблицы
'data_type': dttp.INT
}
},
{
'stg_column_name': 'gender',
'feature': feat.GENDER,
'feature_version_config': {
'name': 'V1_MAIN',
'description': 'Карточка клиента из АБС: Пол',
'data_type': dttp.STRING
}
},
{
'stg_column_name': 'city',
'feature': feat.CITY,
'feature_version_config': {
'name': 'V1_MAIN',
'description': 'Карточка клиента из АБС: Наименование города',
'data_type': dttp.STRING
}
}
]
}
# Расписание
new_loader.schedule = "0 9 1-7 * 1" # первый понедельник каждого месяца в 9 утра
# Регистрация загрузчика
new_loader.save_x_execute() # <-- регистрация (данных) загрузчика
Предагрегаты
Настройка параметров:
- Выбрать сущность загрузчика (1)
- Гранулярность: тип периода (неделя, месяц etc.) (2)
- Гранулярность: число, отвечающее за количество недель, месяцев etc. (3)
- Если у данных нет гранулярности, выставить чекбокс (4)
На примере ниже указана гранулярность данных в две недели.

Соотнесение дат и ключей:
- Выбрать поле из источника, которое соответствует дате актуальности или ввести дату вручную
- Выбрать поля для ключей сущности из источника
Соотнесение фичей и атрибутов источника:
Для добавления столбцов из источника «Добавить атрибут», где выбрать поля и добавить их в конфигурацию.
- Соотнести фичи, зарегистрированные в приложении, к выбранным полям источника
- Ввести название версии фичи (переменной)
- Описание переменной (необязательное)
- Указать тип данных
Предпросмотр:
Последним шагом создания загрузчика будет предпросмотр, где можно все увидеть всю конфигурацию загрузчика. Для регистрации нажать кнопку «Сохранить» (1).
Пример конфигурации загрузчика предагрегатов в SDK:
from FSClient.catalogue import ( # <-- импорт необходимых каталогов
entity as ent,
feature as feat,
loader as load
)
new_loader = load.create(
source='table' # <-- Тип источника данных
)
new_loader.config = {
# Название загрузчика в каталоге
'loader_name': 'CUST_SALARY_MONTH',
# Пользовательское описание загрузчика
'description': 'ЗП-начисления за месяц из КХД',
# Схема таблицы
'src_schema_name': 'public',
# Название таблицы
'src_table_name': 'cust_salary_month',
# Сущность таблицы
'entity': ent.CUSTOMER,
# Флаг предагрегата
'preagg_flg': True,
# Тип гранулярности - календарный месяц
'granularity_type': 'calendar_month',
# Количество календарных месяцев гранулярности
'granularity': 1
}
# Маппинг
new_loader.mapping = {
'from_dttm': 'date_start',
'to_dttm': 'actual_period_end_dttm',
'entity': [
{
# Выбор ключа сущности из каталога
'entity_key': ent.CUSTOMER.CUSTOMER_RK,
# Название поля из таблицы, соответствующее выбранному ключу
'stg_column_name': 'customer_rk'
}
],
'features': [
{
# Фича из каталога
'feature': feat.SAL_SRC_NM,
# Название поля из таблицы
'stg_column_name': 'sal_src_nm',
'feature_version_config': {
# Название версии переменной в каталоге
'name': 'SP_M_V1',
# Пользовательское описание версии переменной
'description': 'ЗП-начисления за месяц из КХД: Источник зп-начисления',
# Тип данных поля из таблицы
'data_type': dttp.STRING
}
},
{
'stg_column_name': 'sal_paym_amt',
'feature': feat.SAL_PAYM_AMT,
'feature_version_config': {
'name': 'SP_M_V1',
'description': 'ЗП-начисления за месяц из КХД: Сумма зп-начислений',
'data_type': dttp.AMOUNT
}
},
{
'stg_column_name': 'sal_paym_cnt',
'feature': feat.SAL_PAYM_CNT,
'feature_version_config': {
'name': 'SP_M_V1',
'description': 'ЗП-начисления за месяц из КХД: Количество зп-начислений',
'data_type': dttp.INT
}
}
]
}
new_loader.save_x_execute() # <-- регистрация (данных) загрузчика