Skip to content

Загрузка фичей

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

Готовые фичи

Настройка параметров:

  • Выбрать сущность загрузчика
  • Режим загрузки - полный срез («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()  # <-- регистрация (данных) загрузчика