通用 Airflow 数据暂存操作符
Generic Airflow data staging operator
我想了解如何使用 Airflow 管理大数据。文档清楚地表明我们需要使用外部存储,而不是 XCom,但我找不到任何干净的暂存数据进出工作节点的示例。
我的期望是应该有一个操作员可以 运行 分期操作,运行 主要操作,然后再次分期。
有这样的运算符或模式吗?我发现的关闭是一个 S3 File Transform 但它 运行 是一个执行转换的可执行文件,而不是一个通用的操作符,例如我们想要使用的 DockerOperator。
我见过的其他“解决方案”依赖于 运行在单个主机上的所有内容,并使用已知路径,这不是生产就绪的解决方案。
有没有支持数据分级的算子,或者有没有不依赖于每个算子都具备云应对能力的Airflow处理大数据的具体例子?
是也不是。传统上,Airflow 主要是编排器——因此它通常不会“做”这些事情,它通常会告诉其他人该做什么。您很少需要将实际数据带给 Airflow worker,Worker 主要是告诉其他人数据来自哪里、如何处理以及发送到哪里。
也有例外(一些传输运营商实际上从一个服务下载数据并将其上传到另一个) - 所以数据通过 Airflow 节点,但这是一个例外而不是规则(更有效和更好的模式是调用外部服务来进行传输并让传感器等待传输完成)。
这更像是 Airflow 运作方式的“历史”和“当前”方式,但是对于 Airflow 2 及更高版本,我们正在扩展它,并且越来越有可能采用与您描述的类似的模式,并且这就是 XCom 发挥重要作用的地方。
从最近开始,您可以开发自定义 XCom 后端,不仅可以共享元数据,还可以共享数据。您可以在此处查看文档 https://airflow.apache.org/docs/apache-airflow/stable/concepts/xcoms.html#custom-backends but also you have this nice article from Astronomer about it https://www.astronomer.io/guides/custom-xcom-backends and a very nice talk from Airflow Summit 2021 (from last week) presenting that: https://airflowsummit.org/sessions/2021/customizing-xcom-to-enhance-data-sharing-between-tasks/。我强烈推荐观看演讲!
查看您的模式 - XCom Pull 正在暂存,Operator 的 execute() 正在运行,XCom Push 正在暂存。
我认为即将发布的 Airflow 版本和一些很酷的集成将加强这种模式。将来可能会有更多很酷的数据共享选项(但我认为它们都将基于 - 可能略微增强 - XCom 实现)。
我想了解如何使用 Airflow 管理大数据。文档清楚地表明我们需要使用外部存储,而不是 XCom,但我找不到任何干净的暂存数据进出工作节点的示例。
我的期望是应该有一个操作员可以 运行 分期操作,运行 主要操作,然后再次分期。
有这样的运算符或模式吗?我发现的关闭是一个 S3 File Transform 但它 运行 是一个执行转换的可执行文件,而不是一个通用的操作符,例如我们想要使用的 DockerOperator。
我见过的其他“解决方案”依赖于 运行在单个主机上的所有内容,并使用已知路径,这不是生产就绪的解决方案。
有没有支持数据分级的算子,或者有没有不依赖于每个算子都具备云应对能力的Airflow处理大数据的具体例子?
是也不是。传统上,Airflow 主要是编排器——因此它通常不会“做”这些事情,它通常会告诉其他人该做什么。您很少需要将实际数据带给 Airflow worker,Worker 主要是告诉其他人数据来自哪里、如何处理以及发送到哪里。
也有例外(一些传输运营商实际上从一个服务下载数据并将其上传到另一个) - 所以数据通过 Airflow 节点,但这是一个例外而不是规则(更有效和更好的模式是调用外部服务来进行传输并让传感器等待传输完成)。
这更像是 Airflow 运作方式的“历史”和“当前”方式,但是对于 Airflow 2 及更高版本,我们正在扩展它,并且越来越有可能采用与您描述的类似的模式,并且这就是 XCom 发挥重要作用的地方。
从最近开始,您可以开发自定义 XCom 后端,不仅可以共享元数据,还可以共享数据。您可以在此处查看文档 https://airflow.apache.org/docs/apache-airflow/stable/concepts/xcoms.html#custom-backends but also you have this nice article from Astronomer about it https://www.astronomer.io/guides/custom-xcom-backends and a very nice talk from Airflow Summit 2021 (from last week) presenting that: https://airflowsummit.org/sessions/2021/customizing-xcom-to-enhance-data-sharing-between-tasks/。我强烈推荐观看演讲!
查看您的模式 - XCom Pull 正在暂存,Operator 的 execute() 正在运行,XCom Push 正在暂存。
我认为即将发布的 Airflow 版本和一些很酷的集成将加强这种模式。将来可能会有更多很酷的数据共享选项(但我认为它们都将基于 - 可能略微增强 - XCom 实现)。