Size: a a a

2020 June 22

M

Mikhail in Airflow
streamz + самописный клей
источник

S

Shadilan R16 MU Rost... in Airflow
Mikhail Lopotkov
Спасибо, посмотрю.
Если вдруг будут вопросы про nifi можно писать в @nifiusers
источник

ML

Mikhail Lopotkov in Airflow
Mikhail
streamz + самописный клей
У нас сейчас самописный сервис, с ~200 внешними источниками данных. Сейчас начали делать мониторинг за системой, и под это дело решили посмотреть, а что есть "готового".
Понравился мониторинг DAG'а в airflow. Но судя по ответам, airflow не очень нам подходит.

А если реализовать свой Scheduler в airflow? Запускать DAG на каждый объект (~ 200 т. в сутки)
Не очень идея? И проще делать свой мониторинг под самописный сервис?
источник

SG

Sergey Gavrilov in Airflow
Mikhail Lopotkov
У нас сейчас самописный сервис, с ~200 внешними источниками данных. Сейчас начали делать мониторинг за системой, и под это дело решили посмотреть, а что есть "готового".
Понравился мониторинг DAG'а в airflow. Но судя по ответам, airflow не очень нам подходит.

А если реализовать свой Scheduler в airflow? Запускать DAG на каждый объект (~ 200 т. в сутки)
Не очень идея? И проще делать свой мониторинг под самописный сервис?
А вы можете немного контекста добавить? А то нам не очень понятно, что за задача, честно говоря.
источник

ML

Mikhail Lopotkov in Airflow
Sergey Gavrilov
А вы можете немного контекста добавить? А то нам не очень понятно, что за задача, честно говоря.
Суть одна - загрузить внешние данные в нашу БД, для дальнейшей аналитики. Поддерживать данные в актуальном состоянии.

Для конкретного примера (чтоб было проще)
http://bankrot.fedresurs.ru
Единый реестр банкротств.

Раз в N часов идем к ним, получаем список новых объектов (объявления о банкротствах), появившихся с последнего раза, как мы ходили туда.
Например, получили 1000 изменений. На каждый объект в очереди положили задачу на его загрузку.

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

SG

Sergey Gavrilov in Airflow
Ну смотрите, на аерфлоу это можно сделать как (как сделал я, собственно): делается по Дагу под каждый источник. В каждом тасками описывается обработка, размечается расписание, делается конфиг, который кладёт на историю (она вам не нужна, как я понял). Далее устанавливаете параллелизм, запускаете нужное количество инстансов... И вроде оно
источник

GG

George Gaál in Airflow
Mikhail Lopotkov
У нас сейчас самописный сервис, с ~200 внешними источниками данных. Сейчас начали делать мониторинг за системой, и под это дело решили посмотреть, а что есть "готового".
Понравился мониторинг DAG'а в airflow. Но судя по ответам, airflow не очень нам подходит.

А если реализовать свой Scheduler в airflow? Запускать DAG на каждый объект (~ 200 т. в сутки)
Не очень идея? И проще делать свой мониторинг под самописный сервис?
200 т в сутки ?
источник

GG

George Gaál in Airflow
Вы умрете
источник

GG

George Gaál in Airflow
База постгрес пухнет, шедюлер не успевает и воркеры за ним
источник

ML

Mikhail Lopotkov in Airflow
Видимо упустил одну деталь в описание, прошу прощения
Как я виже, почему это не очень подходит:

Нужно поддерживать в актуальном состоянии данные, но т.к. слишком дорого всегда все обновлять, то обновления происходят под требования бизнес логики, например:

Получили информацию о банкротстве, и о торгах связанных с этим банкротством, например:
http://bankrot.fedresurs.ru/TradeCard.aspx?ID=73983fb8-a6f0-463c-bb7b-7d5b2c406b50

Данные о должнике, арбитражном управляющем и об имуществе загрузили себе.
Теперь нужно периодически обновлять. Для этого, после выполнения задачи по загрузке, смотрим на данные, например "Дата окончания приема заявок"
и планируем эту же задачу повторить после этой даты (например на след. сутки). Большая вероятность что появится протокол и т.п. Задачу можем повторять несколько раз в зависимости от дат и требований бизнес логики. После какого-то срока, когда объект уже не интересен, задачу удаляем.
источник

ML

Mikhail Lopotkov in Airflow
источник

SG

Sergey Gavrilov in Airflow
Ну... Короче, это можно сделать с использованием промежуточной базы с метаданными, которая будет контролить то, что вам важно. Т.е. статусы, что запускать, а что нет. Ведь даг — это, по сути, лишь общее время запуссков, а таски вы вообще можете генерить на ходу
источник

SG

Sergey Gavrilov in Airflow
Я думаю, что у вас просто сложная задача и решить её можно чем угодно
источник

SG

Sergey Gavrilov in Airflow
Потому, наверное, всё выглядит так, что вам лучше просто бросить свои силы на причину поиска: логирование и мониторинг
источник

ML

Mikhail Lopotkov in Airflow
Ок, понял. Спасибо. Подумаем.
источник

SG

Sergey Gavrilov in Airflow
Потому что если вы реально хотите отслеживать "зелёные квадратики" двухсот тысяч тасок в день, то это... Вообще не отслеживание
источник

SG

Sergey Gavrilov in Airflow
...и смысл для вас рассматривать Аерфлоу вообще теряется
источник

GG

George Gaál in Airflow
Sergey Gavrilov
Я думаю, что у вас просто сложная задача и решить её можно чем угодно
Любую задачу можно решить чем угодно
источник

GG

George Gaál in Airflow
Как бы все языки Тьюринг полны
источник

ML

Mikhail Lopotkov in Airflow
Sergey Gavrilov
Потому что если вы реально хотите отслеживать "зелёные квадратики" двухсот тысяч тасок в день, то это... Вообще не отслеживание
Не, конечно речь не о том, чтоб смотреть на все это, когда все ок.
Наоборот, заметили проблему, идем смотрим на DAG, где иммено падает и на сколько это массово (т.е. если проблема с конкретным сервисом, это сразу будет видно по DAGу), и логи тут же
В этом плане подходит то что уже есть у airflow.
источник