气流从数据库获取数据并打印出来

时间:2019-08-15 10:13:25

标签: airflow apache-airflow-xcom

我的任务是创建一个POC,使人们可以从数据库中获取数据,对其进行处理并将其发送到S3。我仍在学习Airflow,有些事情我还不太了解。我希望你能帮助我。 所以我现在正试图从mysql数据库中获取数据并打印出来。问题是我总是返回“无”。我正在尝试利用xcom,但是它不起作用,并且我读到我不应该为此使用xcom。 这是我现在拥有的:

pymssql

第一个任务运行正常(mysql_query),但是第二个任务失败,因为我没有提示。怎么了?

另外,我得到的实际错误是:

apk add freetds freetds-dev
pip install pymssql

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

要在python函数中使用上下文,必须使用kwargs并将可调用对象定义为

def print_query(**kwargs):

然后您可以将其用作:

def print_query(**kwargs):
    query = kwargs['ti'].xcom_pull(task_ids='mysql_query')
    print(query)

或者您可以明确添加ti

def print_query(ti, **kwargs):
    query = ti.xcom_pull(task_ids='mysql_query')
    print(query)