как просто импортировать пользовательский модуль (файл с sql запросами) - PullRequest
0 голосов
/ 27 мая 2020

У меня есть несколько SQL запросов, которые я хочу сохранить в файле, чтобы я мог легко их вызывать. Файл называется sql_queries.py и хранится в папке helpers в папке plugins.

from airflow.plugins_manager import AirflowPlugin
import helpers

class SqlQueries:
    songplay_table_insert = ("""
        SELECT *
        FROM XXXX
    """)

class Project(AirflowPlugin):
    name = "Project"
    helpers = [SqlQueries]

Я пытаюсь импортировать свои запросы из моего дага, например, from airflow.helpers import SqlQueries

Я использовал ту же систему для операторов, и она работает. Почему в этом случае нет?

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Для этого вам не нужны плагины Airflow, вы можете импортировать любой настраиваемый модуль в свой DAG, как обычный Python модуль.

Я бы сказал, хранить sql_queries.py в любой папке, которая находится на PYTHONPATH и содержит __init__.py

Пример:

Вы можете напрямую поместить sql_queries.py в каталог DAG и импортировать его в свой DAG следующим образом, поскольку каталог dags/ уже находится в PYTHONPATH:

import sql_queries
0 голосов
/ 27 мая 2020

Потому что плагины Airflow не поддерживают создание помощников. Вы можете кодировать собственные исполнители, макросы, admin_views, flask_blueprints, menu_links, appbuilder_views, appbuilder_menu_items, global_operator_extra_links и operator_extra_links.

Вы можете иметь сценарий как обычный импорт пакета или преобразовать этот фрагмент кода в метод Крючок.

...