如何将DBT与AWS管理气流配合使用? [英] How to use DBT with AWS Managed Airflow?
本文介绍了如何将DBT与AWS管理气流配合使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
希望你一切顺利。 我想检查是否有人在AWS MWAA Airflow中启动并运行DBT。
我尝试了this one和thispython包,但由于某种原因(找不到DBT路径等)而失败。
是否有人成功使用过MWAA(气流2)和DBT,而不必构建坞站映像并将其放置在某个位置?
谢谢!
推荐答案
我通过执行以下步骤设法解决了此问题:
- 将
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')()
)
从这里您有两个选项:
- 将
dbt_bin
operator argument设置为/usr/local/airflow/plugins/dbt
- 通过跟随docs 将
/usr/local/airflow/plugins/
添加到$PATH
环境变量设置器示例:
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)
这篇关于如何将DBT与AWS管理气流配合使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文