希望你一切顺利。
我想检查是否有人在 aws mwaa 气流中启动并运行 dbt。
我尝试过但没有成功this one https://github.com/gocardless/airflow-dbt and this https://github.com/tomasfarias/airflow-dbt-pythonpython 打包但由于某种原因失败(找不到 dbt 路径等)。
有没有人成功地使用 MWAA (Airflow 2) 和 DBT,而无需构建 docker 镜像并将其放置在某个地方?
谢谢你!
我已经通过执行以下步骤解决了这个问题:
- Add
dbt-core==0.19.1
给你的requirements.txt
- 将 DBT cli 可执行文件添加到 plugins.zip 中
#!/usr/bin/env python3
# EASY-INSTALL-ENTRY-SCRIPT: 'dbt-core==0.19.1','console_scripts','dbt'
__requires__ = 'dbt-core==0.19.1'
import re
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(
load_entry_point('dbt-core==0.19.1', 'console_scripts', 'dbt')()
)
从这里你有两个选择:
- Setting
dbt_bin
运算符参数 https://github.com/gocardless/airflow-dbt#usage to /usr/local/airflow/plugins/dbt
- Add
/usr/local/airflow/plugins/
to the $PATH
通过遵循docs https://docs.aws.amazon.com/mwaa/latest/userguide/samples-env-variables.html
环境变量设置器示例:
from airflow.plugins_manager import AirflowPlugin
import os
os.environ["PATH"] = os.getenv(
"PATH") + ":/usr/local/airflow/.local/lib/python3.7/site-packages:/usr/local/airflow/plugins/"
class EnvVarPlugin(AirflowPlugin):
name = 'env_var_plugin'
插件压缩包内容:
plugins.zip
├── dbt (DBT cli executable)
└── env_var_plugin.py (environment variable setter)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)