В блоге Apache Airflow есть скрипт для периодической чистки метаданных в БД Apache Airflow. Но начиная с Airflow 3.0 невозможно обращаться к БД напрямую (через модели SQLAlchemy), в связи с этим скрипт не работает. Даже вызов shell команды
airflow db clean через BashOperator выдаст ошибку по типу: Could not parse SQLAlchemy URL from string 'airflow-db-not-allowed:///': source="airflow.task.hooks.airflow.providers.standard.hooks.subprocess.SubprocessHook"
RuntimeError: Direct database access via the ORM is not allowed in Airflow 3.0
Как решить? Я нашел выход запуска через старый добрый Cron:
0 0 * * * /home/airflow/.airflow/bin/airflow db clean --clean-before-timestamp "$(date -d '7 days ago' +'%Y-%m-%d %H:%M:%S')" --skip-archive -y
В полночь команда запускается и чистит все данные , оставляя только последние 7 дней. Но это работает на моём личном self-hosted Airflow, как быть с MWAA я пока не знаю, т.к. не обновлялся и не знаю как поведёт себя DAG.