Size: a a a

2020 August 03

ДН

Дмитрий Негреев... in Airflow
Скажите, а в airflow наследование {% extends ... %} в jinja работает?
источник
2020 August 05

BB

Bral Bral in Airflow
Подскажите, при выполнении оператора , результат записывается в xcom. В моем случае - python оператор выполняет чтение файла и возвращает пандасовский датафрейм. Через икском его передавать - сомнительное удовольствие , с учётом того, что он может быть достаточно большим. Решил проблему тем, что создал класс - где есть self.dataframe - а каждый python оператор вызывает определенный метод класса уже работает с ним.  Мне это решение не очень нравится и есть ощущение , что-то делаю не так. Правильный ли подход, или аирфлоу не для этого ? Для чего все эти манипуляции - хотелось бы создать динамически расширяемый даг из операторов , и чтобы вся обработка была в рамках данных из одного файла и при этом не приходилось бы на каждом шаге его писать куда-то, забирать икском, где координаты файла и передавать следующему оператору.
источник

ДН

Дмитрий Негреев... in Airflow
Ну а зачем вы делите экстракт и загрузку по разным операторам? Сделайте все в одном.
источник

BB

Bral Bral in Airflow
Дмитрий Негреев
Ну а зачем вы делите экстракт и загрузку по разным операторам? Сделайте все в одном.
Хотелось бы сделать динамическую структуру , разбив на элементарные операции. Такие франкиштейны сейчас и есть.
источник

ДН

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

ДН

Дмитрий Негреев... in Airflow
либо не делайте операторы, и пишите все просто пакетами
а вызов через PythonOperator
источник

BB

Bral Bral in Airflow
Дмитрий Негреев
можете попробовать разбить например на собственные пакеты, которые у вас простые вещи будут делать
и переиспользовать их внутри операторов для каждого уникального сочетания
Согласен, только в таком случае в ui пропадает наглядность и прозрачность того, что запускается .
источник

ДН

Дмитрий Негреев... in Airflow
Bral Bral
Согласен, только в таком случае в ui пропадает наглядность и прозрачность того, что запускается .
ну, на мой взгляд чтение из файла и укладывание в БД не похоже на что-то сложное, чтоб это по операторам дробить:)
если конечно вы сразу еще никаких преобразований не делаете
источник

BB

Bral Bral in Airflow
Дмитрий Негреев
ну, на мой взгляд чтение из файла и укладывание в БД не похоже на что-то сложное, чтоб это по операторам дробить:)
если конечно вы сразу еще никаких преобразований не делаете
В том и дело , что делаю.
источник

ДН

Дмитрий Негреев... in Airflow
Bral Bral
В том и дело , что делаю.
Ну, попробуйте грузить as is, а потом уже в таргете что-то преобразовывать в рамках другого оператора
источник

BB

Bral Bral in Airflow
Дмитрий Негреев
Ну, попробуйте грузить as is, а потом уже в таргете что-то преобразовывать в рамках другого оператора
Не совсем понял , как грузить as is
источник

ДН

Дмитрий Негреев... in Airflow
Bral Bral
Не совсем понял , как грузить as is
ну всмысле задать какое-то стандартное правило для парсера, чтобы оно справедливо подходило для всех случаев
чтобы данные поменяли только форму, но не наполнение

например загрузку json можно простыми правилами приземлить в реляционную  структуру
источник

AM

Aлексей Mатюхин... in Airflow
Всем доброго дня. Выполняю ДАГ, но не могу прочитать логи. Пишет:
источник

AM

Aлексей Mатюхин... in Airflow
источник

AM

Aлексей Mатюхин... in Airflow
Может было такое у кого?
источник

AM

Aлексей Mатюхин... in Airflow
Даг соответственно с ошибкой падает. Если данных не много, загружает без проблем и логи пишет норм. А если данных много, около 1 млн. на источнике, то вот такая картина
источник

NS

Nikolay Shibalov in Airflow
Возможно, если выгружается одним куском, без pagination, падает воркер и не сохраняет логи
источник

DS

Dmitry Samoylov in Airflow
Bral Bral
Подскажите, при выполнении оператора , результат записывается в xcom. В моем случае - python оператор выполняет чтение файла и возвращает пандасовский датафрейм. Через икском его передавать - сомнительное удовольствие , с учётом того, что он может быть достаточно большим. Решил проблему тем, что создал класс - где есть self.dataframe - а каждый python оператор вызывает определенный метод класса уже работает с ним.  Мне это решение не очень нравится и есть ощущение , что-то делаю не так. Правильный ли подход, или аирфлоу не для этого ? Для чего все эти манипуляции - хотелось бы создать динамически расширяемый даг из операторов , и чтобы вся обработка была в рамках данных из одного файла и при этом не приходилось бы на каждом шаге его писать куда-то, забирать икском, где координаты файла и передавать следующему оператору.
например у вас должен быть staging область в которой вы и сохраняете свой dataframe и дальше передаете через xcom только указатель. У нас такой областью является отдельная схема в vertica. Доработав немного нужные операторы - мы даже термин у себя ввели  - "таскоориентированность". Где в таске в качестве параметра указывается только task_id той таски у которой нужно забрать данные.
источник

AA

Anton Afonin in Airflow
В airflow.cfg где-то не прописан хост
источник

IS

Ihar Shurupau in Airflow
Кто-нибудь может объяснить, в чем разница между BashTaskRunner и StandardTaskRunner? В старой версии эирфлоу у меня был такой конфиг в airflow.cfg : task_runner = BashTaskRunner. После апдейта стало: task_runner = StandardTaskRunner
источник