Наткнулся на неприятную фичу в айрфлоу с выполнением команды vacuum table на БД Greenplum, в ситуациях, когда айрфлоу не является владельцем таблицы.
Если вакуум выполняется внутри пайтон_оператора, через cursor.execute('vacuum table'), то якобы всё проходит ок, без каких либо сообщений об ошибке. Но это похоже проблема psycopg2, так как локально проходит так же.
Если вакуум выполняет постгрес_оператор, варнинг есть, но таск всё равно помечался как выполненный
Это из логов:
[2020-06-22 08:00:59,730] {logging_mixin.py:112} INFO - [2020-06-22 08:00:59,730] {dbapi_hook.py:174} INFO - vacuum analyze sales.rid_status_log;
[2020-06-22 08:00:59,946] {postgres_operator.py:67} INFO - WARNING: skipping "rid_status_log" --- only table or database owner can vacuum it
[2020-06-22 08:00:59,952] {
taskinstance.py:1048} INFO - Marking task as SUCCESS.dag_id=v1.gp_LOAD_INC_pg_nats, task_id=vacuum_analyze_rid_status_log, execution_date=20200622T041530, start_date=20200622T050059, end_date=20200622T050059
Можно ли путём настройки конфига или параметров дага/таска сделать так, чтобы в подобных случаях таск получал статус failed?