Автоматизируйте науку о данных простым способом

Легко создавайте почасовой HTML-отчет с помощью cron и Ploomber.

Краткое руководство, показывающее, как планировать отчеты по анализу данных

Вы когда-нибудь хотели запланировать выполнение рабочего процесса анализа данных? Например, вы можете ежечасно получать новые данные и генерировать выходной отчет. В этом сообщении блога показано, как легко запланировать рабочий процесс анализа данных, который генерирует отчет в формате HTML при каждом запуске.

cron: Простой планировщик заданий

cron — это планировщик заданий, предустановленный в Linux и macOS. Это простой вариант запуска скриптов по расписанию. Главный недостаток заключается в том, что у него нет графического пользовательского интерфейса; однако он отлично подходит для простых случаев использования, поскольку не требует настройки.

Ploomber: платформа с открытым исходным кодом для разработки рабочих процессов анализа данных.

cron занимается только планированием заданий. Например, мы можем настроить его на выполнение python create-report.py каждый час. Однако вся логика управления обработкой и выводом зависит от нас. Поэтому, если бы мы хотели запустить конвейер данных и сгенерировать отчет, нам пришлось бы написать код, чтобы каждый запуск сохранял выходные данные в отдельной папке, настроить ведение журнала, добавить код для создания отчета в формате HTML и т. д. Ploomber упрощает процесс. (включая создание HTML-отчета), поэтому нам нужно только закодировать логику обработки данных.

Как это работает?

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

В Ploomber пользователи могут объявлять рабочие процессы анализа данных в файле pipeline.yaml; в нашем случае это выглядит так:

Наш рабочий процесс состоит из двух этапов: scripts/load.py и scripts/plot.py. Первый скрипт загружает некоторые данные, а второй рисует их. Раздел product для каждой задачи указывает, где мы будем хранить выходные данные каждого скрипта; вы можете видеть, что scripts/load.py создает отчет в формате HTML и файл .csv, а scripts/plot.py создает окончательный отчет в формате HTML. Также обратите внимание, что все выходные пути содержат заполнитель {{timestamp}}; Ploomber заменит это отметкой времени выполнения, поэтому каждый запуск сохраняет выходные данные в другой папке.

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

Чтобы узнать больше о Ploomber, нажмите здесь.

Получение исходного кода примера

Чтобы получить пример кода, нам сначала нужно установить Ploomber; затем мы получаем код:

Теперь настраиваем среду:

Чтобы убедиться, что все работает правильно, мы выполняем конвейер:

Если все работает, вы увидите что-то вроде этого:

Давайте теперь запланируем этот конвейер, используя cron.

Планирование

Ploomber может выполнить ваш рабочий процесс, вызвав команду ploomber build; мы скажем cron запускать эту команду каждую минуту, чтобы мы могли быстро увидеть результаты, но мы можем легко определить другие интервалы.

Сначала получите текущий рабочий каталог с помощью команды pwd и скопируйте его. Затем откройте файл конфигурации cron с помощью:

Примечание. Если вы используете macOS Big Sur (11.6) или новее, вам может потребоваться выполнить несколько дополнительных шагов, чтобы включить cron. Если вам нужна помощь, отправьте нам запрос.

Когда он откроется, добавьте следующее:

Замените /path/to/cron/ абсолютным путем к каталогу cron/, содержащему пример кода.

Через минуту вы начнете видеть больше каталогов в папке продуктов; вот так выглядит мой:

Поздравляем, вы только что запланировали конвейер с помощью cron и Ploomber! 🎉

Если вы не видите новых папок, возможно, что-то пошло не так; проверьте файл cron.log на наличие подсказок. Если вам нужна помощь, обратитесь к нам за помощью в нашем сообществе Slack.

Последние мысли

В этом сообщении в блоге показано, как планировать рабочие процессы анализа данных с помощью Ploomber и cron. Помимо cron, существуют и другие варианты планирования заданий, но они требуют дополнительной настройки.

Популярной альтернативой является использование GitHub Actions; главное преимущество заключается в том, что вам не нужно поддерживать работу сервера для выполнения ваших задач, поскольку GitHub предоставит его вам. Однако предоставленная вычислительная среда исчезнет после завершения задания, поэтому вам необходимо настроить некоторый уровень хранения для журналов и отчетов HTML; распространенный выбор — использовать что-то вроде Amazon S3 или Google Cloud Storage. Ploomber совместим с Amazon S3, поэтому, если вам нужна помощь в настройке запланированных заданий с помощью Ploomber, GitHub Actions и Amazon S3 / Google Cloud Storage, отправьте нам запрос.

Первоначально опубликовано на ploomber.io