Ускорение преобразования данных: подробное изучение надстроек Mage Block

В Части 1 вы узнали, что такое Mage, как построить конвейер данных с помощью Mage и какие существуют типы блоков.

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



Дополнения

Как вы помните из части 1, конвейеры состоят из независимых блоков, которые могут запускать SQL, Python или R.

Большинство этих блоков можно настроить с помощью дополнительных функций, называемых надстройками. Эти надстройки можно добавить в пользовательском интерфейсе или с помощью файла metadata.yaml. У каждого дополнения есть своя цель, ожидающая вашего использования.

Динамический

Динамические блоки создают несколько нижестоящих блоков во время выполнения.

Количество созданных блоков равно количеству элементов выходных данных, умноженному на количество последующих блоков. 3 нисходящих блока со списком из 3 элементов генерируют 9 блоков.

Динамический блок ожидает list[list[dict]] в качестве входных данных, и для каждого элемента в списке он будет запускать последующие зависимости для этого элемента.

В приведенном ниже примере я создаю список идентификаторов пользователей и имен внутри словаря, и каждый из словарей будет порождать свой собственный блок преобразования. Блок преобразования изменит id и сгруппирует все выходные данные и остановит конвейер от порождения дополнительных динамических блоков, это происходит с помощью настройки reduce_output перед отправкой в ​​экспортер, где он сгруппирован и сохранен в файле json.

# users
[
  {'id': 1, 'name': 'user_1'},
  {'id': 2, 'name': 'user_2'}, 
  {'id': 3, 'name': 'user_3'}
]