如何将DBT与AWS管理气流配合使用? [英] How to use DBT with AWS Managed Airflow?

查看:27
本文介绍了如何将DBT与AWS管理气流配合使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

希望你一切顺利。 我想检查是否有人在AWS MWAA Airflow中启动并运行DBT。

我尝试了this onethispython包,但由于某种原因(找不到DBT路径等)而失败。

是否有人成功使用过MWAA(气流2)和DBT,而不必构建坞站映像并将其放置在某个位置?

谢谢!

推荐答案

我通过执行以下步骤设法解决了此问题:

  1. dbt-core==0.19.1添加到requirements.txt
  2. 将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')()
    )

从这里您有两个选项:

  1. dbt_binoperator argument设置为/usr/local/airflow/plugins/dbt
  2. 通过跟随docs
  3. /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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆