airflow中跨dag task的資料傳送

2022-06-12 09:21:10 字數 1254 閱讀 1532

預設在airflow中每個task都是獨立的程序,無法進行資料交換,但airflow還提供了乙個xcom功能,以滿足使用者的類似需求

下面我們建立兩個dag,其中乙個push資料,乙個pull資料,如下的dag中的task(push)執行完後會推送一條資料到xcom表,key=push ,value=true

dag =dag(

dag_id='

migrate_mongo',

default_args=args,

schedule_interval='

0 17 * * *',

catchup=false

)def push(**kwargs):

kwargs['ti

'].xcom_push(key='

status

', value=true)

task1 = pythonoperator(task_id='

push',

python_callable=push,

provide_context=true,

dag=dag)

另起乙個dag,建立乙個task(pull)可以將上面的dag中的資料獲取到

dag =dag(

dag_id='

migrate_mongo2',

default_args=args,

schedule_interval='

0 17 * * *',

catchup=false

)def pull(**kwargs):

execution_date = kwargs['

execution_date']

v1 = xcom.get_one(dag_id='

migrate_mongo

', task_id='

push

', execution_date=execution_date)

print

(v1)

task2 = pythonoperator(task_id='

pull',

python_callable=pull,

provide_context=true,

dag=dag)

兩個dag之間其實通過airflow底層的一張xcom表進行資料交換的

Oracle SQLServer中實現跨庫查詢

oracle sqlserver中實現跨庫查詢 一 在sqlserver中連線另乙個sqlserver庫資料 在sql中,要想在本地庫中查詢另乙個資料庫中的資料表時,可以建立乙個鏈結伺服器 exec master.dbo.sp addlinkedserver server n 別名 srvprodu...

Oracle SQLServer中實現跨庫查詢

一 在sqlserver中連線另乙個sqlserver庫資料 exec master.dbo.sp addlinkedserver server n 別名 srvproduct n 庫名 provider n sqloledb datasrc n 伺服器位址 exec master.dbo.sp a...

ajax中的跨域

當兩個域具有相同的協議 http 相同的埠號,相同的host,就可以認為它們是相同的域 協議,網域名稱,埠都必須相同 跨域就指協議 網域名稱 埠不一致,處於安全考慮,跨域的資源之間是無法互動的 可以設定頭名 通過伺服器端返回帶有access control allow origin標識的respon...