使用气流,我尝试简单的DAG工作。
我编写了自定义运算符和其他要导入到DAG逻辑所在的主文件中的文件。
这里是文件夹的结构:
├── airflow.cfg
├── dags
│ ├── __init__.py
│ ├── dag.py
│ └── sql_statements.sql
├── docker-compose.yaml
├── environment.yml
└── plugins
├── __init__.py
└── operators
├── __init__.py
├── facts_calculator.py
├── has_rows.py
└── s3_to_redshift.py
我在compose file
中设置了卷,因为登录到容器的终端时可以看到它们。
我在线上关注了一些教程,并在其中添加了__init__.py
。
两个空无的__init__
进入
/plugins/operators
:from operators.facts_calculator import FactsCalculatorOperator
from operators.has_rows import HasRowsOperator
from operators.s3_to_redshift import S3ToRedshiftOperator
__all__ = [
'FactsCalculatorOperator',
'HasRowsOperator',
'S3ToRedshiftOperator'
]
/plugins
:from airflow.plugins_manager import AirflowPlugin
import operators
# Defining the plugin class
class CustomPlugin(AirflowPlugin):
name = "custom_plugin"
# A list of class(es) derived from BaseOperator
operators = [
operators.FactsCalculatorOperator,
operators.HasRowsOperator,
operators.S3ToRedshiftOperator
]
# A list of class(es) derived from BaseHook
hooks = []
# A list of class(es) derived from BaseExecutor
executors = []
# A list of references to inject into the macros namespace
macros = []
# A list of objects created from a class derived
# from flask_admin.BaseView
admin_views = []
# A list of Blueprint object created from flask.Blueprint
flask_blueprints = []
# A list of menu links (flask_admin.base.MenuLink)
menu_links = []
但是我不断从我的IDE中收到错误消息(说No module named operators
或操作符__init__
中的未解析的引用操作符)。
由于一切都无法在网络服务器上启动。
任何想法如何进行设置?我哪里错了?
答案 0 :(得分:0)
您在使用 puckel's 图像吗?
如果是,则需要取消注释 docker-compose 文件(本地或 Celery)中的 # - ./plugins:/usr/local/airflow/plugins
行(可能不止一行)。你的其他设置在我看来还不错。