[英]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.