Airflow 中最新的唯一运算符和追赶者之间的区别

2023-12-26

正如标题所暗示的,希望了解 dag 定义中的 catchup = False 和最新的 only 运算符之间的区别。

https://airflow.apache.org/docs/stable/scheduler.html https://airflow.apache.org/docs/stable/scheduler.html https://airflow.apache.org/docs/stable/_modules/airflow/operators/latest_only_operator.html https://airflow.apache.org/docs/stable/_modules/airflow/operators/latest_only_operator.html


嗯,我想说,它们是完全不同的概念,它们可以独立使用。确实,它们都可以用来防止回填,但如果这是您唯一关心的问题,那么只需使用catchup=False。引用自这个回复 http://codeha.us/apache-airflow-development/msg03853.html事实上,由一位 Airflow 开发人员提出,似乎很明显,好的做法是使用:

作为LatestOnlyOperator的作者,目标是作为权宜之计,直到 catchup=错误着陆。

但他接着说LatestOnlyOperator应该被弃用。我不同意(作为两者的用户catchup=False and LatestOnlyOperator)我会尽力解释。我对这两个概念的直觉是这样的:


追赶=真实

在 DAG 定义中(即当您指定其default_args)你可以设置标志catchup to True。如果您将此标志设置为True并且您将 DAG 设置为 ON,然后调度程序将为每个调度间隔创建 DAG 运行start_date到“现在”并将按顺序执行它们。引用文档 https://airflow.apache.org/docs/stable/scheduler.html#backfill-and-catchup:

If the dag.catchup值曾经是True相反,调度程序将为 2015 年 12 月 1 日到 2016 年 1 月 2 日之间的每个已完成的时间间隔创建一次 DAG 运行(但尚未为 2016 年 1 月 2 日创建一次 DAG 运行,因为该时间间隔尚未完成),并且调度程序将按顺序执行它们。


最新唯一运营商

A LatestOnlyOperator是一个延伸BaseOperator。如果 DAG 运行不在最晚计划间隔(即“最后一次运行”)。还引述自LatestOnlyOperator文档字符串:

"""
Allows a workflow to skip tasks that are not running during the most
recent schedule interval.

If the task is run outside of the latest schedule interval, all
directly downstream tasks will be skipped.

Note that downstream tasks are never skipped if the given DAG_Run is
marked as externally triggered.
"""

结论

您可以使用以下命令定义计划的 DAGcatchup=True并使用LatestOnlyOperator以确保在追赶运行期间不会执行某些任务。而且LatestOnlyOperator如果您想要重新运行一些过去的 DAG 运行(例如通过在 UI 中清除它们),但您希望在重新运行期间跳过一些任务(例如发送的通知),则可以使用此选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Airflow 中最新的唯一运算符和追赶者之间的区别 的相关文章

随机推荐

  • 取消接受并关闭 Python 处理/多处理侦听器连接的正确方法

    我正在使用py处理 http developer berlios de projects pyprocessing在此示例中的模块 但是如果您运行 则用多处理替换处理可能应该可以工作蟒蛇2 6 http docs python org li
  • MySQL - 实体:表“TableDetails”中列“IsPrimaryKey”的值为 DBNull

    我在用视觉工作室2013 with 实体框架5 and Mmysql服务器5 7 9 当尝试从数据库创建模型时 或 从数据库更新模型 将出现以下消息 System Data StrongTypingException 列的值 表 Table
  • 使用 URL 打开 Chrome 应用

    有没有办法从默认的 Android 浏览器打开 Android 上的 Chrome 应用程序 我可以打开该应用程序 但它不会将用户重定向到正确的页面 这是我尝试过的 a href 我发现我可能必须形成一个意图 URL 但我希望有一种比这更简
  • “Web”客户端类型不允许自定义方案 URI - Google 与 Firebase

    我正在尝试使用 firebase 在我的 iOS 应用程序中实现 google 登录 我遵循这个教程 https firebase google com docs auth ios google signin https firebase
  • 在 FileAppender 中使用 Logback 标记时出错

    我已经开始探索我们的应用程序的 Logback 选项 要求之一是为具有特定 标记 的日志条目创建单独的日志文件 下面是我正在使用的 logback xml 文件和我收到的错误 logback 网站上的示例显示了 SMTPAppender 的
  • 需要帮助实施 Facebook 积分

    我读过一些关于开始实施 Facebook 积分的其他帖子 并且从 github 下载了示例代码 https github com facebook credits api sample https github com facebook c
  • MS Access:自定义纸张尺寸

    我正在构建一个 MS Access 2010 应用程序 我将从此应用程序打印条形码标签 还有各种其他报告和表格也将使用标准打印机设置进行打印 但是对于条形码 我需要将其打印到特定打印机 并且必须将其设置为使用特殊的页面尺寸 在我的搜索中我有
  • 为什么“WriteOnlyWorksheet”对象没有属性“cell”?

    import openpyxl wb openpyxl Workbook multiplication xlsx wb create sheet sheet wb get active sheet sheet cell column 6 r
  • 在线性布局中以相等间距水平对齐按钮

    我正在尝试制作一个线性布局 其中 5 个按钮水平放置 间距相等 但所有按钮的大小 宽度 应仅为 40dp 我试过这个
  • 如何使用 SVN 热复制恢复存储库?

    好的 我使用svn的hotcopy进行增量备份 现在如何测试hotcopy是否正常工作 我在这里搜索了有关热复制的帖子 他们中的大多数似乎只是鼓励使用 svn hotcopy 但没有谈论如何使用 hotcopy 进行恢复 关于如何使用我制作
  • 如何向 UIImage 或 UIImageView 或 UIView 添加外部发光

    我想添加褪色的阴影 外发光到UIImage UIImageView UIView但我知道没有Core Graphics根本不 Edit 请帮忙 采用 Cirrostratus 概述的方法 保留其缓存副本 然后在拖动时应用变换来更改图像的大小
  • 使用反汇编器的.NET 中的对象布局结构

    我有兴趣查看对象布局结构 并尝试在 Visual Studio 中使用反汇编 以下是我的代码 class myclass public int m a myclass myc new myclass myc m a 23 I am sett
  • 如何在 ionic 2 中按月对项目进行分组?

    我有一个数据集合 我想按月分组以形成日历列表视图 并带有分隔符 如所附图像 如何在 ionic 2 中做到这一点 data id 75 title Oudergesprekken startDate 18 01 2017 id 76 tit
  • Android:构造时未能setLocale(),关闭数据库

    我正在尝试创建一个包含 12 个不同表的数据库 该数据库直到今天都运行良好 现在 每次我在卸载并重新安装它 或只是清除应用程序数据 后第一次启动我的应用程序时 我都会收到标题中看到的错误消息 但是 在收到此错误后第二次启动应用程序时 它工作
  • 如何使用 Linq 和 IN 子句

    这是我的代码 if catid 0 posts posts Where x gt x catid IN 1 8 2 109 23 The in在此代码中显示为语法错误 有没有办法来解决这个问题 您也必须使用另一个列表进行比较 List
  • 如何在 Java 编译时断言某些内容?

    有时数据结构应该具有某些无法用 Java 直接描述的关系 但在编辑代码时尽早检查这些关系是有好处的 典型的例子是数组足够大或者不同模块中的枚举有相应的成员 BOOST 在 C 中提供了一个很好的 静态断言 工具 甚至在断言失败时提供了一半不
  • 从 svn 客户端签出重新创建 subversion 存储库

    我的第一个问题在这里 Subversion 存储库已删除 但存在从该存储库进行的签出 我将如何从结帐重建存储库 您可以将该签出导出到新位置 然后将其全部添加到新存储库 但你无法恢复历史
  • Pyqt 鼠标悬停在 QPushButton 上

    我想检测鼠标悬停在QPushButton 为此 我在按钮上安装了一个事件过滤器 但是 那MouseMove当鼠标位于按钮上方时 事件不会准确触发 当我单击与前一个位置不同的位置上的按钮时 似乎有时会触发它 简而言之 我将鼠标移到按钮上 没有
  • 您需要 ref 或 out 参数吗?

    我将类的实例传递给方法 该方法将修改该实例 由于这是我要传递的类 我是否需要使用 out 或 ref 关键字 这就是我想做的 public void Blah Blah b Dao GetBlah 23 SomeService Modify
  • Airflow 中最新的唯一运算符和追赶者之间的区别

    正如标题所暗示的 希望了解 dag 定义中的 catchup False 和最新的 only 运算符之间的区别 https airflow apache org docs stable scheduler html https airflo