如何将 DBT 与 AWS Managed Airflow 结合使用?

2024-01-11

希望你一切顺利。 我想检查是否有人在 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 镜像并将其放置在某个地方?

谢谢你!


我已经通过执行以下步骤解决了这个问题:

  1. Add 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. Setting dbt_bin 运算符参数 https://github.com/gocardless/airflow-dbt#usage to /usr/local/airflow/plugins/dbt
  2. 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(使用前将#替换为@)

如何将 DBT 与 AWS Managed Airflow 结合使用? 的相关文章

随机推荐

  • 将多行插入表中,仅更改一个值

    假设我有一个包含以下列的表 字段 1 领域 2 字段3 字段4 我想在此表中插入多行 但每行的 field1 field2 和 field3 的值都相同 只有field4的值会改变 显然 我可以单独插入每一行 但生成的查询会有点难看 我想知
  • 更改暂停消息

    好的 所以您输入时就知道了pause在 CMD 中 它会显示 按任意键继续 我如何将其更改为 按某个键继续 之类的内容 最后 我正在编写一个批处理文件 我想知道如果我有类似的情况会发生什么 echo off cls pause pause
  • Any 的相反方法是什么

    如果集合不包含对象 如何使用 Linq 检查 IE 相反的是Any
  • 如何在java中创建嵌套的json

    我在用java制作json时遇到问题 下面是我必须通过 java 代码创建的 JSON status 0 Response abc def fgh abc abc def abc ghi abc abc abc def abc
  • 更新版本控制上的预提交挂钩文件

    我最近更新了我的pre commit sample文件以在提交时运行 rubocop 重命名为 pre commit bin sh Check for ruby style errors rake run rubocop 我错误地认为这会在
  • 带 orderBy 的 firestore 相等过滤器

    我正在使用 Firestore 并且我有非常简单的带有相等过滤器的查询 其中我需要执行 orderBy 因为我必须限制结果 我无法将 startAfter 与 orderBy 一起使用 因为 Firebase 在这种情况下会引发错误 Fir
  • CSS div:显示:表格替代品?

    div div div some box with unknown width div div div div div wr width 300px height 100px border 1px solid red margin 50px
  • 我们真的需要放置新表达式吗?

    我试图理解放置新表达式 https timsong cpp github io cppwp new delete placement in C 这个堆栈溢出答案 https stackoverflow com a 35089001 2326
  • 反向传播算法:误差计算

    我目前正在编写反向传播脚本 我不确定如何更新我的体重值 这是一张图片 只是为了让事情变得简单 我的问题 如何计算和应用误差 我确实知道 k1 和 k2 会产生错误值 我知道 k1 和 k2 产生单独的误差值 目标 输出 但我不知道是否要使用
  • x86 汇编两条具有相同目标的跳转指令

    我尝试理解 Michael Sikorski 所著的 实用恶意软件分析 一书中的示例 有一个我不理解的反反汇编技术的例子 它说一种常见的技术是创建两个条件指令 即零时跳转 JZ 和非零时跳转 JNZ 它们一起考虑实际上只是一个无条件指令 这
  • 如何使用 Angular js 将本地存储数据放入视图文件中

    你好 我是平均堆栈的初学者 我在本地存储中有数据 我想从本地存储中获取数据并显示在 html 文件中 但我不知道如何获取它 在视图文件上 scope useredit function d var user id d id var data
  • 使用 python3 在 vi​​rtualenv 中设置环境,卡在 setuptools、pip、wheel 上

    运行以下命令 virtualenv p python3 venv gives Running virtualenv with interpreter usr bin python3 Using base prefix usr New pyt
  • 如何在 pgadmin 中删除数据库

    当我尝试在 pgadmin 4 中创建名为 eCommerce 的其他数据库时 会出现此消息 错误 源数据库 template1 正在被其他用户访问 详细信息 还有 2 个其他会话正在使用该数据库 我尝试删除其他数据库 但不起作用并出现 错
  • 延迟 NUnit 断言消息评估

    我的测试代码中有这个断言 Assert That gt eventData Count 0 Is True After notificationPollingDelay Received unexpected event with last
  • 如何规避 Windows 通用 CRT 标头对 vcruntime.h 的依赖

    在尝试在 Windows 上评估 Clang 时 利用 Windows Universal C Run Time Windows Kits 10 Include 10 0 15063 0 ucrt 我立即面临着意想不到的障碍 其形式是未公开
  • Angular:如何在测试时模拟 MatDialogRef

    我有一个DialogComponent具有以下构造函数 其中Dialog是一个自定义对象 constructor public dialogRef MatDialogRef
  • Firebase TypeError:无法读取未定义的属性“val”

    I have tried Firebase cloud function for sending a notification My project structure 这是index js const functions require
  • 使用 PHP 将文件备份到 google 驱动器

    我有一个服务器和一个域名GoDaddy https godaddy com 我想为要上传的文件创建备份谷歌云端硬盘 https drive google com 这样我的所有文件和数据库都有其数据谷歌云端硬盘 https drive goo
  • Android:如何从音频文件中获取音频细节

    我的音乐应用程序使用意图数据作为音乐文件从外部应用程序启动 所以我有像这样的 mp3 音频 URI 文件 storage emulated 0 Music Tamil I20 2014 Ennodu 20 Nee 20 Irundhaal
  • 如何将 DBT 与 AWS Managed Airflow 结合使用?

    希望你一切顺利 我想检查是否有人在 aws mwaa 气流中启动并运行 dbt 我尝试过但没有成功this one https github com gocardless airflow dbt and this https github