首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过apache气流检查文件是否存在于谷歌桶中?

通过apache气流检查文件是否存在于谷歌桶中?
EN

Stack Overflow用户
提问于 2021-08-02 22:27:25
回答 1查看 2.7K关注 0票数 3

我有一个DAG,它在谷歌云桶中获取脚本的结果,将其加载到Google BigQuery中的一个表中,然后删除存储桶中的文件。

我要DAG在周末每小时检查一次。现在,我正在使用GoogleCloudStoragetoBigQueryOperator。如果文件不在那里,DAG将失败。有什么方法可以将DAG设置为如果文件不存在就不会失败的地方?或者试一试/抓住?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-03 00:17:47

您可以使用中的GCSObjectExistenceSensor来验证文件在运行下游任务之前是否存在。

代码语言:javascript
运行
复制
gcs_object_exists = GCSObjectExistenceSensor(
    bucket=BUCKET_1,
    object=PATH_TO_UPLOAD_FILE,
    mode='poke',
    task_id="gcs_object_exists_task",
)

您可以查看官方示例这里。请记住,此传感器是从BaseSensorOperator扩展而来的,因此您可以定义poke_intervaltimeoutmode等参数,以满足您的需要。

  • soft_fail (bool) -设置为true,将任务标记为在失败时跳过
  • poke_interval (浮点)-作业应在每次尝试之间等待的时间(秒)
  • 超时(浮动)-时间,以秒为单位的任务超时和失败。
  • 模式(str) -传感器的工作方式。选项有:{ poke \调度},默认值为poke。当设置为戳时,传感器占用整个执行时间的工作槽,并在戳之间睡觉。如果传感器的预期运行时较短或需要较短的戳间隔,则使用此模式。请注意,在此模式下,传感器将在传感器运行时期间保持工作槽和池槽。当设置为重新调度时,传感器任务在尚未满足标准时释放工作槽,并在稍后时间重新安排时间。如果满足标准之前的时间预计相当长,则使用此模式。插入间隔应超过一分钟,以防止调度程序负载过多。
  • exponential_backoff (bool) -使用指数退避算法允许在戳点之间逐步延长等待时间

来源

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68628542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档