В чём идея:
Нужен класс, который будет обеспечивать разнообразные проверки на валидность данных построчно.
Нужно, чтобы можно было писать
with DAG(...):
validator = ValidateOperator(table, ...) \
.not_null("col1", "col2", ...) \
.in_range("col3", [-1, 1]) \
.convertible_to("col4", sqlalchemy.Integer) \
.valid_json("col5", jsonb) \
.custom_check(my_function, level=row) \
.custom_check(my_other_function, level=column, columns=["col6, "col7"]) \
...
# все эти проверки, которые мы накидываем, сохраняются в список внутри класса, и
# запускаются, когда airflow вызывает метод execute
postgres = PostgresOperator(...)
validator >> postgres
И тому подобное. Задача и творческая (т.к. надо подумать, какие проверки нам вообще нужны - для этого стоило бы поговорить с аналитиками и поизучать, где у нас сейчас что падает), и техническая (понять, как написать такой класс), и искательная (посмотреть, как добавить в airflow operator).
ТЗ очень абстрактное. Если появятся идеи, как сделать по-другому - пишите сюда. Полная свобода личности, как говорится. Главное - удобство использования и работоспособность.
Таска сложная, но нужная.
В чём идея:
Нужен класс, который будет обеспечивать разнообразные проверки на валидность данных построчно.
Нужно, чтобы можно было писать
И тому подобное. Задача и творческая (т.к. надо подумать, какие проверки нам вообще нужны - для этого стоило бы поговорить с аналитиками и поизучать, где у нас сейчас что падает), и техническая (понять, как написать такой класс), и искательная (посмотреть, как добавить в airflow operator).
ТЗ очень абстрактное. Если появятся идеи, как сделать по-другому - пишите сюда. Полная свобода личности, как говорится. Главное - удобство использования и работоспособность.
Таска сложная, но нужная.