繁体   English   中英

AirFlow:如何在一行中设置大量外部依赖项?

AirFlow: How to set large number of external dependencies in one line?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在阅读这个问题,试图实现对其他DAG任务的依赖。 在此示例中,依赖关系写为:

ExternalTaskSensor(
    task_id='wait_for_the_first_task_to_be_completed',
    external_dag_id='a',
    external_task_id='first_task',
    dag=dag) >> \

在我的数据仓库中,一张表可能取决于数百个任务。 使用这种格式,它将生成2*number of dependencies行代码。 这真的是不能接受的,还有更好的选择吗?

例如,在Azkaban ,我可以这样编写多个依赖项:

dependencies = dag1.task1, dag2.task4, dag2.task5, DAG3.task2, etc...

任何帮助表示赞赏。

1 个回复

您可以在循环中创建传感器并在其中设置依赖项。 我认为它更干净,但是随着依赖性数量的增加,我不确定这是否满足您对代码量的要求。

例:

dependencies = [('dag1', 'task1'), ('dag2', 'task4'), ('dag2', 'task5'), ('dag3', 'task2')]

other_task = PythonOperator(...)

for dag_id, task_id in dependencies:
    sensor = ExternalTaskSensor(
        task_id='wait_for_{0}.{1}'.format(dag_id, task_id),
        external_dag_id=dag_id,
        external_task_id=task_id,
        dag=dag)
    sensor >> other_task
1 在Airflow中具有依赖项的导入

我有一个目录结构为我的孩子们像这样 在dag1.py中,我从库中导入depend1.py。 但是,depend1.py然后导入depend2.py导致Airflow抛出损坏的Dag:没有名为“ depend2.py”的模块 我认为这是由于PYTHONPATH从dags /开始,并 ...

2 如何在 Airflow 中设置 DAG 之间的依赖关系?

我正在使用Airflow来安排批处理作业。 我有一个每天晚上运行的 DAG (A) 和另一个每月运行一次的 DAG (B)。 B 取决于 A 已成功完成。 但是 B 需要很长时间才能运行,所以我想将它保存在一个单独的 DAG 中,以便更好地报告 SLA。 如何使运行 DAG B 依赖于在同一天成 ...

3 如何在 Airflow 中设置 SLA?

我想在 Sensor Operator 中设置 SLA。 文档对它的使用不太清楚。 因此,我使用 S3KeySensor 运算符进行了测试,该运算符正在查找不存在的文件。 我将 sla 设置为 30 秒,我希望在 30 秒后在UI 中看到记录 - 在 SLA 未命中中 - 但它没有发生。 我究竟做 ...

5 如何在pipenv pipfile中包含外部依赖项?

我将MoviePy用于程序,并在需要安装ImageMagick的视频上写文本。 ImageMagick不是python依赖项,而是外部依赖项。 如何在pipfile中包含ImageMagick下载? pipfile看起来像这样: 如果我手动安装ImageMagick,我的程序可 ...

10 如何使用CSS在一行中设置大量链接?

我正在尝试在页面顶部放置一个栏,但不确定如何使所有链接都位于同一行。 这就是我所拥有的: #tb { list-style-type: none; position:relative; margin: auto; padding: 0; overflow: hidden; ...

2015-06-18 11:49:27 5 74   html/ css
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM