Если вы уже использовали Jupyter Notebooks раньше, вы знаете, насколько они универсальны, а возможность запланировать их совместное использование — отличный способ отчитаться перед бизнес-пользователями. Это даже не просто отчеты, наши клиенты запускали что угодно, от очистки данных до моделей машинного обучения и некоторой обработки данных по расписанию в своих рабочих областях.

Недавно мы создали новый певец для платформы электронной коммерции Veeqo, и у нас был запрос клиента на один из этих более действенных ежедневных отчетов в виде электронной таблицы с цветовой кодировкой заказов для обработки в этот день.

Возможность автоматизировать отчетность такого рода — это огромная экономия времени для бизнеса любого размера. Используя Meltano, служебный плагин Notebook, плагин Matatika и отчет в виде блокнота Jupyter, мы создали небольшой пример проекта Veeqo, который значительно упрощает запуск этих отчетов.

Работа по расписанию

В нашем примерном проекте мы используем плагин Matatika Ext, чтобы позволить пользователям Meltano получить пользовательский интерфейс проекта, а также позволить конвейерам работать по расписанию.

Matatika Ext — это пользовательский интерфейс только для чтения, что означает, что вам просто нужно создать задание Meltano и запланировать его с помощью интерфейса командной строки Meltano, и оно будет преобразовано в конвейер Matatika. Эти конвейеры будут работать по установленному вами расписанию, или вы можете нажать кнопку запуска в любое время.

meltano job add report-job --tasks "notebook:run"
  
meltano schedule add "Report Pipeline" --job report-job --interval "0 0 * * * *"

Это означает, что, добавив плагины Notebook и Matatika в ваш проект Meltano, а также добавив указанное выше задание и расписание, вы сможете запускать любой блокнот по этому расписанию.

Расширение вашего конвейера

Вы можете взять существующий конвейер (задание и расписание Meltano) и добавить дополнительные плагины для расширения его функциональности. Например, мы часто добавляем подключаемый модуль Sendgrid к нашим конвейерам отчетов и отправляем по электронной почте результаты выполнения Jupyter Notebook.

Теперь вы также можете воспользоваться базовыми функциями преобразования PDF в плагинах Notebook, чтобы создать красиво отформатированный и легко читаемый вывод вашего Jupyter Notebook.

Вы можете пойти еще дальше в области вывода и контролировать все прямо из вашего Jupyter Notebook. Мы создали отчеты из Jupyter Notebooks, которые выполняют все форматирование и экспорт в самом блокноте. Тогда это просто случай передачи выходного файла следующему плагину или, если вы запускаете эти плагины локально, просто получаете свой выходной файл.

Поделитесь своим блокнотом

Еще одно требование, которое мы обнаружили, заключалось в том, что отчет или выходные данные Jupyter Notebook должны быть доступны в любое время. Используя Matatika CE или наше облако, вы можете приглашать пользователей в свою рабочую область, а затем публиковать свой блокнот Jupyter в этой рабочей области с помощью одного из пользовательских подключаемых модулей Matatika.

Опять же, либо в Matatika CE, либо в нашем облаке вы можете добавить собственный подключаемый модуль, доступный только для наших пользователей, под названием Matatika CLI, который позволяет вам публиковать блокнот Jupyter или набор данных Matatika в вашей рабочей области. Как и все плагины, этот можно использовать как часть вашего конвейера, поэтому каждый раз, когда ваш блокнот Jupyter запускается, вы можете повторно опубликовать его в своей рабочей области, и любой, у кого есть доступ, сможет увидеть самые последние выходные данные.

Пример проекта

Мы создали пример проекта Meltano, который демонстрирует запуск Jupyter Notebooks по расписанию для создания примера отчета. Veeqo Reporting также имеет конвейер Veeqo, настроенный для использования, вы можете найти его здесь: Veeqo Reporting

В файле readme примера проекта должно быть все, что вам нужно для начала работы, но если вам нужна помощь или просто дополнительная информация, присоединяйтесь к Matatika slack.