Фото Тянь Куань на Бессмысленно
Мы недавно написали о ETL и почему они важны Отказ Мы хотели предоставить наброски для того, что являются инструментами ETL. Вы можете ссылаться на эти инструменты ETL в качестве инструментов рабочих процессов, которые помогают управлять перемещениями данных из точки A до точки B.
Два из этих популярных инструментов рабочих процессов являются Luigi от Spotify и Airflow по Airbnb. Оба этими двигателя рабочих процессов были разработаны, чтобы помочь в разработке и выполнении вычислительных рабочих процессов, которые используются для анализа данных.
Теперь перед сравнением воздушного потока в Луиджи важно, мы понимаем важное понятие оба библиотеки общего. Оба, по сути, построить то, что известно как направленный ациклический граф (DAG). DAG – это набор задач, которые работают в определенном порядке с зависимостями по предыдущим задачам.
Например, если у нас были три задания по имени Foo
, Бар
и Foobar
это может быть так, что Foo
работает в первую очередь и Бар
и Foobar
зависит от Foo
Отделка.
Это создало бы базовый график, как тот, который ниже. Как видите, есть четкий путь. Теперь представьте это с десятками сотен задач.
Большие данные организации имеют массивные даги с зависимостями по зависимостям. Имея четкий доступ к DAG, позволяет компаниям отслеживать, где дела идут не так, и не допускает плохих данных в свои данные экосистемы, потому что если что-то не удается, это часто заставит задачи вниз по течению, пока их зависимости не будут завершены.
Это где инструменты, такие как воздушный поток и луиджи.
Luigi – это структура выполнения, которая позволяет писать трубопроводы в Python.
Этот рабочий процесс двигатель поддерживает зависимости задач и включает в себя центральный планировщик, который предоставляет подробную библиотеку для помощников для построения каналов в MySQL, AWS и Hadoop. Не только легко зависеть от задач, определенных в его репо, это также очень удобно для повторного использования кода; Вы можете легко представить пути выполнения и использовать вывод одной задачи в качестве ввода второй задачи.
Эта рамка была написана Spotify и стала открытым исходным кодом в 2012 году. Многие популярные компании, такие как полоса, Foursquare и Asana, используют двигатель рабочего процесса Luigi.
источник
Этот планировщик рабочего процесса поддерживает обе определения задач и зависимости в Python.
Он был написан Airbnb в 2014 году для выполнения, расписания и распределения задач по ряду рабочих узлов. Сделанный с открытым исходным кодом в 2016 году, воздушный поток не только поддерживает планирование календаря, но также оснащено хорошей веб-панелью, которая позволяет пользователю просматривать текущие и прошедшие задачи.
Предназначен для хранения и сохранения его состояния, этот двигатель рабочего процесса поддерживает реляционные базы данных. Благодаря своей функции визуализации Web Dashboard, воздушный поток также может использоваться в качестве отправной точки для традиционного ETL.
Некоторые из процессов, подпитываемых воздушным потоком в своей материнской компании, Airbnb, включают в себя: хранилище данных, эксперименты, аналитики роста и адресации электронной почты.
Оба эти WMS великолепны. Но у каждого есть свои плюсы и минусы. Этот раздел даст вам краткое сравнение между воздушным потоком и Luigi.
Объединения в Луиджи и воздушном потоке
Прежде чем добраться до сильных и слабых сторон обоих этих инструментов, давайте обсудим общие возможности как иметь:
● Инструменты визуализации
● Задачи представляют собой единую единицу работы
● Стандарты структуры данных
● Один узел для направленного графика
● Опция указать синхронные/асинхронные задачи, условные пути и параллельные команды
Более того, эти двигатели рабочих процессов кодируются в Python. Это позволяет очень легко реализовать эти библиотеки в большинстве компаний, так как Python довольно повсеместный.
Плюсы и минусы Луиджи
Плюсы:
● Пользовательское планирование календаря: Хотя большинство систем ETL имеют задачи, которые требуют запуска каждый час, Luigi не имеет концепции планирования календаря. Таким образом, его до пользователя для запуска задач в соответствии с их удобством. Центральный планировщик содержит функцию истории задач, которая также регистрирует завершение задач на реляционную базу данных, которая, в свою очередь, обнажает его на главной приборной панели.
● Впечатляющая библиотека акций: одна из лучших частей Luigi – это его библиотека на складе на фондовые задания и целевые системы данных – как SQL-, так и NOSQL. Каждая библиотека включает в себя ряд функций, запеченных в качестве помощников методов. Эти помощники вспомогательные классы поддерживают Hadoop, запросы улья, масштабирование, Redshift, PostgreSQL, Google BigQuery и многое другое.
● Нацеленные файлы и наборы данных: Luigi Targets Files и Data устанавливают непосредственно в качестве входных данных или выходов для задач, что облегчает восстановление исторического состояния системы ETL – даже если база данных состояния потеряна.
Минусы:
● Создание и тестирование задач: когда дело доходит до создания и тестирования задачи, API Luigi довольно сложно. В процессе создания состояние задача тесно связано с данными, которые задача фактически предназначена для производства. Таким образом, инженеры, как правило, просто толкают задачи на фазу производства, поскольку она довольно неинтекодийная.
● Не очень масштабируемый: поскольку Luigi и Crons плотно связаны, количество рабочих процессов в Луиджи связано количеством работников CRON, присваиваемых к работе. Что еще хуже, это тот факт, что работник может запустить только задачу, которая загружена на центральный планировщик. Таким образом, если вы хотите распараллелизировать задачи в огромном трубопроводе, вам придется разделить их в разные дополнительные трубопроводы.
● Трудно использовать: Нет простого выхода, если вам нужно увидеть журналы задач и сбой. Каждый раз, когда вам придется посмотреть журналы работника CRON, а затем найдут журнал задач, – сам по себе является очень задача. Более того, даг задач не может рассматриваться до выполнения. Таким образом, вы не знаете, какой код работает в корреляционных задачах во время развертывания.
Плюсы и минусы воздушного потока
Плюсы:
- Простой в использовании пользовательский интерфейс: с воздушным потоком вы можете легко просматривать журналы задач, иерархии, состояния и выполнения кода. Этот пользовательский интерфейс также позволяет легко изменить статусы задач, повторных исторических задач, и когда-либо заставить задачу запустить.
- Независимый планировщик: воздушный поток поставляется со своим собственным планировщиком, который позволяет отделить задачи из слонов и легко масштабировать их самостоятельно. Кроме того, воздушный поток поддерживает несколько дистанций одновременно. Эти DAGS работают с задачами двух категорий: датчики и операторы.
- Активное сообщество с открытым исходным кодом: с его сильным сообществом воздушного потока активно получает такие функции, как Pager Duty, Slack Integration и SLA. Сама чата очень активна, поэтому новички могут получить ответы на некоторые вопросы в течение нескольких часов.
Минусы:
- Оптимизация задач: Для любой компании среднего размера есть несколько задач в трубопроводе, а воздушный поток иногда неясна, как организовать эти задачи в массивный трубопровод.
- Нет прямых динамиков с задачами: Помимо специальных сенсорных операторов, воздушный поток не имеет дело с наборами данных или файлами в качестве входных задач напрямую. В Airflow в базе данных состояния хранится только состояние задач и замечает набор данных, поэтому, если база данных потеряна, сложнее восстановить историческое состояние ETL. Более того, это делает труднее иметь дело с задачами, которые отображаются правильно, но не производите и выводятся.
- Меньшее гибкость: с воздушным потоком работники не могут начать задачи самостоятельно или гибко выбирать задачи – согласно пользовательству планирования. Поскольку задачи могут быть только сборщиками центральным планировщиком, воздушный поток начинает работников с центральным планированием.
Если вы спросите меня, я бы порекомендовал поток воздуха над Luigi. Почему? Не только легче протестировать трубопроводы с воздушным потоком, но он также имеет независимое состояние задач.
Когда дело доходит до планирования, Luigi управляет задачами на заданиях Cron, а воздушный поток имеет свой собственный LocalCheduler, который позволяет пользователям масштабировать задачи самостоятельно. Кроме того, воздушный поток поддерживает несколько DAGS, а Luigi не позволяет пользователям просматривать задачи DAG перед выполнением трубопроводов.
Еще одна огромная точка – пользовательский интерфейс. Пока Luigi предлагает минимальный пользовательский интерфейс, воздушный поток поставляется с подробным, простым в использовании интерфейсом, который позволяет просто просматривать и запустить команды задач.
Кроме того, щелицы взносов по воздушным потокам — сообщества – включают соглашения об уровне обслуживания, правила триггера, диаграммы и XCOMS, а Luigi не имеет ни одного из них.
Обе эти системы рабочего процесса с открытым исходным кодом приобрели большую популярность благодаря их основным проектам и функциональным возможностям.
С точки зрения сообществ, воздушный поток выигрывает игру, но если ваш план использовать Hadoop или Google BigQuery, взгляните на Луиджи.
Хотя Луиджи легче начать, с воздушным потоком предлагает больше выразительной визуализации и поддержки. В конце дня это зависит от вашей команды, чтобы выяснить, какие ваши технические потребности.
Если вы хотите прочитать больше сообщений о науке о данных и технике данных, проверьте ссылки ниже!
4 Должен иметь навыки для данных ученых Преимущества поставщиков здравоохранения имеют в аналитике здравоохранения 142 Ресурсы для освоения кодирования интервью Учащиеся науки о данных: Наши лучшие 25 курсов науки о данных Лучший и единственный учебник Python, который вам когда-либо нужно будет смотреть Динамически объемная вставка данных CSV в SQL Server Что такое ученый данных
Оригинал: “https://dev.to/seattledataguy/airbnb-s-airflow-versus-spotify-s-luigi-p3o”