Size: a a a

2020 September 30

А

Анастасия in Airflow
Привет!

Столкнулась с проблемой:

В таске функция обрабатывает файлы в цикле. Логика такая:

1. Копируем файл в папку, к которой подцеплена таблица, на hdfs
2. Из таблицы вставляем обработанные данные в целевую таблицу hive
3. Удаляем файл

Копирование и удаление через ssh hook, вставка - jdbc

В рандомные моменты даг падает с записью:

WARNING - --- Logging error ---
{{local_task_job.py:103}} INFO - Task exited with return code 1

У меня вообще нет идей, что это может быть, так как падает всегда в разных местах

Есть идеи по этому поводу?)
источник

K

KrivdaTheTriewe in Airflow
сеть шалит?
источник

K

KrivdaTheTriewe in Airflow
скорее всего на вставке в джбс
источник

А

Анастасия in Airflow
Там еще исход разный:

Иногда остается папка и файл в ней, а иногда папки нет, хотя я ее вроде бы и не удаляю
источник

А

Анастасия in Airflow
Может ли быть такое, что удаление файла не всегда дожидается окончания инсерта, если оно записано вот так:

       conn.exec_command(copy_command)
       print(copy_command)
       hook.run(insert)
       conn.exec_command(remove_command)
       print (remove_command)
       print('This file was loaded and removed: ', file)
источник

ME

Max Efremov in Airflow
KrivdaTheTriewe
И отказаться от встроенных операторов
А зачем?)
источник

А

Антон in Airflow
Анастасия
Может ли быть такое, что удаление файла не всегда дожидается окончания инсерта, если оно записано вот так:

       conn.exec_command(copy_command)
       print(copy_command)
       hook.run(insert)
       conn.exec_command(remove_command)
       print (remove_command)
       print('This file was loaded and removed: ', file)
это все в одном операторе выполняется?
источник

А

Анастасия in Airflow
Антон
это все в одном операторе выполняется?
Да
источник

А

Антон in Airflow
Так может имеет смысл разделить на разные операторы и добавить условие тригера? Или же сенсор на таблицу после инсерта
источник

ДН

Дмитрий Негреев... in Airflow
Дмитрий Негреев
Кто пользуется ExternalTaskSensor для установки зависимостей между дагами?
Как вы свои задачи запускаете вне расписания?
Если просто выполнить trigger_dag, по-идее сенсоры просто встанут на ожидание, т.к. даграна от которого зависит даг несуществует за заданную timedelta.
Продублирую)
Вдруг кто появится
источник

А

Анастасия in Airflow
Антон
Так может имеет смысл разделить на разные операторы и добавить условие тригера? Или же сенсор на таблицу после инсерта
Я не понимаю как в ацикличном графе реализовать цикл по файлам на уровне операторов (
источник

С

Сюткин in Airflow
Анастасия
Я не понимаю как в ацикличном графе реализовать цикл по файлам на уровне операторов (
Вес таскам проставляй
источник

С

Сюткин in Airflow
И будет тебе счастье
источник

ME

Max Efremov in Airflow
Дмитрий Негреев
Продублирую)
Вдруг кто появится
Там можно у сенсора указать любое время даграна другого дага же
источник

ME

Max Efremov in Airflow
У меня сейчас запускается и смотрит 3 месяца прошлого квартала
источник

А

Анастасия in Airflow
Сюткин
Вес таскам проставляй
Не очень поняла идею... Это помогает распараллелить выполнение на несколько даг ранов, чтобы последующие таски ждали выполнения предыдущих из каждого запуска. Так? Тем не менее это не отвечает на вопрос о цикле, если каждый файл должен обрабатываться последовательно
источник

А

Антон in Airflow
в цикле генерить операторы где каждый следующий зависит от предыдущего
источник

PA

Panchenko Andrey in Airflow
Дмитрий Негреев
Кто пользуется ExternalTaskSensor для установки зависимостей между дагами?
Как вы свои задачи запускаете вне расписания?
Если просто выполнить trigger_dag, по-идее сенсоры просто встанут на ожидание, т.к. даграна от которого зависит даг несуществует за заданную timedelta.
я выполняю, если нужно вручную триггернуть, просто мечу первую такску как входную точку внитри самого граф вью как саксесс
источник

ДН

Дмитрий Негреев... in Airflow
Max Efremov
Там можно у сенсора указать любое время даграна другого дага же
можно, но это же код надо править
источник

ДН

Дмитрий Негреев... in Airflow
Panchenko Andrey
я выполняю, если нужно вручную триггернуть, просто мечу первую такску как входную точку внитри самого граф вью как саксесс
как вариант, спасибо
источник