python - Airflow Variable.set() 违反唯一键约束
问题描述
我目前在尝试使用 Apache Airflow 的变量模型作为键/值存储来管理气流作业期间的某些状态时遇到了问题。
在我工作中的一项任务中,我设置了一个键,例如:
Variable.set("{table_name}_last_run", "2020-04-16")
稍后,我尝试用新值覆盖这个变量(对于同一个键)。当我这样做时,气流会呕吐并引发如下错误:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1246, in _execute_context
cursor, statement, parameters, context
File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 588, in do_execute
cursor.execute(statement, parameters)
psycopg2.IntegrityError: duplicate key value violates unique constraint "variable_key_key"
DETAIL: Key (key)=(currency_last_run) already exists.
这对我来说没有意义。根据气流的文档,您似乎可以像使用任何其他键/值存储一样使用变量——但似乎我无法使用 set() 函数覆盖预先存在的键。
我是否遗漏了某些东西或以意外的方式使用了变量?
解决方案
推荐阅读
- node.js - 如何配置 __dirname 指向节点中的项目目录?
- python - 将网站中的 DataFrame 转换为列表
- java - 我试图让合并排序从大到小,但它一直从小到大
- reactjs - handling event and interchangeable state in hooks
- javascript - 自动调整大小功能
- bash - 首次运行 bash 脚本时需要一元运算符 - 我该如何解决这个问题?
- python - google-cloud-python 是否可以查询实体的列表属性?
- django - 显示视频 Django 应用程序
- git - Git config --global user.email = "email@example.com" 和 GitHub 操作中的 user.name 错误
- azure - 我应该如何在 Azure 中部署我的微服务?