Skip to content

Написать класс валидатора данных + airflow оператор, который им пользуется #315

@justanothercatgirl

Description

@justanothercatgirl

В чём идея:

Нужен класс, который будет обеспечивать разнообразные проверки на валидность данных построчно.

Нужно, чтобы можно было писать

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).

ТЗ очень абстрактное. Если появятся идеи, как сделать по-другому - пишите сюда. Полная свобода личности, как говорится. Главное - удобство использования и работоспособность.

Таска сложная, но нужная.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions