Airflow 如何从SimpleHttpOperator访问和获取内容

Airflow 如何从SimpleHttpOperator访问和获取内容,airflow,Airflow,我知道,通过在SimpleHttpOperator中设置xcom_push=True,我可以从访问xcom返回的数据。但我不太清楚我如何才能做到这一点。这是通过创建一个带有回调的PythonOperator并在回调中调用xcom\u pull实现的吗?一些示例代码将非常值得一看 我试图做的是将谷歌金融公司的股价数据作为CSV数据读取,然后将其插入MySQL数据库,以了解信息。最初我认为我可以使用两个操作符: SimpleHttpOperator >> MySqlOperator 但

我知道,通过在SimpleHttpOperator中设置xcom_push=True,我可以从访问xcom返回的数据。但我不太清楚我如何才能做到这一点。这是通过创建一个带有回调的PythonOperator并在回调中调用xcom\u pull实现的吗?一些示例代码将非常值得一看

我试图做的是将谷歌金融公司的股价数据作为CSV数据读取,然后将其插入MySQL数据库,以了解信息。最初我认为我可以使用两个操作符:

SimpleHttpOperator >> MySqlOperator
但我想我必须在中间添加Python运算符:

SimpleHttpOperator >> PythonOperator >> MySqlOperator

在PythonOperator中,我是否需要将provide_context set传递为True才能访问xcom值?

您很接近,但我会使用HttpHook和MySqlHook,并将它们粘在您自己的PythonOperator中。钩子是低级的原语

我认为操作员可以执行操作、发送电子邮件、检索状态或在a和B之间传输数据,其中一个通常是临时/暂存位置。另一方面,钩子更像是一个开放的数据源或目的地

下面是一篇很好的介绍性博客文章,内容完全涵盖了您的情景,还有更多内容:

您可能会认为构建自己的PythonOperator涉及很多内容,但正如您在大多数情况下所看到的,该操作符实际上是在检查传入的数据

我在《气流指南》的某个地方读到,Xcom并不是真正用来交换管道中潜在巨大数据的主要方式。它更适合在DAG中跨任务推送参数。

让任务交换消息,允许更细微的控制形式和共享状态。该名称是“交叉通信”的缩写。