如何在不使用 GUI 的情况下创建、更新和删除气流变量?

How to create, update and delete airflow variables without using the GUI?

我一直在学习气流并为 ETL 管道编写 DAG。它涉及使用 AWS 环境(S3、Redshift)。它处理在将数据存储在 redshift 中之后将数据从一个存储桶复制到另一个存储桶。我将存储桶名称和前缀作为变量存储在气流中,您必须为此打开 GUI 并手动添加它们。

在以下选项中,哪个是业内最安全、使用最广泛的做法

总而言之:您可以使用 airflow cli 从 json 文件执行变量导入操作。您可以使用以下命令 airflow variables -i[1] 并通过气流 CICD 管道构建它或手动 运行 它。那应该处理 insert/update 案例。对于删除,你可以明确地调用airflow variables -x,我认为目前你不能在气流中进行批量删除。

您可以拥有一个 JSON 文件,其格式如下所示,其中包含键值:

{
    "foo1": "bar1",
    "foo2": "bar2"
}

这里需要注意一点:您可以将变量视为键值存储,因此请确保导入时没有重复的键(否则您可能会覆盖它并产生意外结果)

[1] airflow.apache.org/cli.html#variables

Airflow 使用 SQLAlchemy models 来处理 ConnectionVariablePool 等实体。此外,它不会试图隐藏它 -用户以任何方式,这意味着您可以通过利用底层的 SQLAlchemy 魔法来自由地操纵这些实体。


如果您打算以编程方式修改变量(在 Airflow 任务中),请从

中获取灵感

其他有用的参考链接