Типы преобразований в datapipe
Генерация данных из внешнего источника
- Парсинг YML фида и заполнение таблицы с данными
- Запрос внешнего АПИ для получения списка чего-то
Генерация идет батчами, объем заранее не известен.
Батч-трансформация данных 1-1 (без требования всех данных)
- Ресайз картинок
- Инференс модели машинного обучения
Батч-трансформация один-много, много-один на небольших батчах
- Распаковка свойств товара в отдельные записи: (product_id) → (product_id, property_id)
- Сборка данных о классифицированных ббоксах в одну запись: (image_id, bbox_id) → (image_id)
Глобальная (или около-глобальная трансформация)
Данные могут быть использованы несколько раз. Объем данных может не позволить загрузить в память целиком.
- Обучение модели машинного обучения на таблице
Типы ComputeStep
DatatableTransform
Принимает на вход список входных и выходных DataTable
. Применяет к ним внешнюю
функцию.
Это поведение нельзя контролировать с точки зрения Changelist
обработки.
Генерация и глобальная трансформация (обучение модели) относятся к такому типу обработки.
BatchTransform
Принимает в качестве аргументов функцию func
, входные и выходные таблички для расчета трансформации.
Имеет выделенную функцию run_batch
где внешняя система расчитала списки данных
на обработку и передала в функцию.
Подходит для Changelist
обработки.
Батч-трансформации 1-1 и небольшие батчи 1-N, N-1 относятся к такому типу обработки.
Имеет magic injection:
- Если у функции
func
есть аргументds
, то туда передатся используемыйDataStore
. - Если у функции
func
есть аргументrun_config
, то туда передатся используемый текущийRunConfig
. - Если у функции
func
есть аргументidx
, то туда передатся используемыйIndexDF
-- текущие индексы обработки.
BatchGenerate
Принимает в качестве аргументов функцию-генератор func
и выходные таблицы outputs
. Требуется, если нужно определять какие-то первичные таблицы или периодически получать синхронизированные данные внешним способом (табличка в какой-то другой базе данных, файлы).
Имеет magic injection:
- Если у функции
func
есть аргументds
, то туда передатся используемыйDataStore
.