Переработка исторических данных о потоке воздуха - PullRequest
0 голосов
/ 07 января 2020

Допустим, у меня есть простая группа обеспечения доступности баз данных, которая создает / перезаписывает несколько ежедневных таблиц: my_table_a_YYYYMMDD, my_table_b_YYYYMMDD, my_table_c_YYYYMMDD ....

Она в основном использует оператор BigQueryOperator для выполнения SQL операторов в daily_basis для текущая дата, которая определяется в файле SQL с использованием переменной {{ds}} воздушного потока

Предполагается, что я только что обнаружил проблему с моим файлом. sql, и после исправления мне нужно повторно обработать последние 10 дней исполнения. Каков наилучший способ для повторного выполнения предыдущих прогонов даг, исправления моих таблиц?

Возможно ли это через интерфейс Airflow или мне нужно каким-то образом удаленно запускать DAG?

Ответы [ 2 ]

0 голосов
/ 08 января 2020

Как уже упоминалось @Beppe C, вам необходимо заполнить свои таблицы, и Airflow предоставляет простой способ сделать это.

С учетом следующего DAG:

from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta


default_args = {
    'owner': 'Airflow',
    'depends_on_past': False,
    'start_date': datetime(2015, 12, 1),
    'email': ['airflow@example.com'],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
    'schedule_interval': '@daily',
}

dag = DAG('tutorial', catchup=True, default_args=default_args)

Это будет выполняться ежедневно ('schedule_interval': '@daily'), начиная с 1 декабря 2015 г. ('start_date':datetime(2015, 12, 1)). Если внесены какие-либо изменения в logi c, и вы хотите заполнить таблицу, убедитесь, что catchup=True добавлено в экземпляр DAG.

Документацию можно найти здесь

0 голосов
/ 07 января 2020

Вы можете использовать концепцию «Backfilling». Ваша DAG имеет дату начала, дату окончания и schedule_interval, как только она будет включена, Airflow будет запускать DAG, чтобы наверстать упущенное (т.е. каждый день до сегодняшнего дня или дата окончания)

https://airflow.apache.org/docs/stable/scheduler.html#backfill и-кетчуп

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...