簡體   English   中英

您是否將數據存儲在與 Airflow 后端相同的數據庫中?

[英]Do you store data in the same database as Airflow's backend?

我正在嘗試查找有關如何創建數據庫、將數據存儲在新創建的數據庫中以及從該數據庫中獲取數據的信息,所有這些都來自 Airflow。 我可以在網上找到有關如何執行此操作的所有參考資料,但僅參考 Airflow 的后端數據庫。

我對 Airflow 有點陌生,我的理解是后端數據庫是 Airflow 用來存儲和訪問與其自身操作相關的元數據,而不是任務層數據。 如果我想訪問 SQLite 數據庫以在我的 DAG 中存儲數據,我可以找到一個 python 庫來為我執行此操作,但我覺得這不是通過 ZD1662521E6B89809B85A8234 訪問數據庫的傳統方式。 (1) 創建 SQLLite 數據庫,(2) 在數據庫中存儲數據,以及 (3) 從 airflow 內的數據庫中獲取數據以供任務使用,而不是 Airflow 本身使用的元數據的傳統方法是什么?

編輯:

我在評論中被要求提供一些關於我在 Airflow 上的工作流程的更多細節。 此 DAG 的目標是通過數據處理管道從源移動數據,並且此過程的一部分涉及創建新的數據庫和表(如果一個/它們不存在),如下所示:

fetch data >> transform data >> put data elsewhere >> send alerts based on data

fetch data並將put data elsewhere位置的步驟涉及將數據復制到本地數據庫,我試圖找出在 Airflow 中執行此操作的“正確”方法。

實際上,您不得使用 Airflow 元數據數據庫來存儲您的數據。

首先,您需要在Airflow中為您要使用的Sqlite添加一個連接。 要創建數據庫,您可以使用 SqliteOperator: https://airflow.apache.org/docs/apache-airflow/1.10.13/_modules/airflow/operators/sqlite_operator.ZAFC35FDC70D82786

然后,您必須下載數據,這里有幾個選項:

無論哪種方式,您都必須編寫如何下載數據的代碼。 您應該使用 sqlite_hook,方法是 get_pandas_df(或 get_records)

之后,使用 taskflow 或 pythonoperator 將數據上傳到您想要的位置

總而言之,您總是希望搜索能夠滿足您需求的運算符,或者編寫 python 腳本以與 PythonOperator、BashOperator 或 TaskFlow 一起運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM