快速入門

本快速入門指南將協助您在本機上啟動 Airflow 單機執行個體。

注意

成功安裝需要 Python 3 環境。從 Airflow 2.7.0 開始,Airflow 支援 Python 3.8、3.9、3.10、3.11 和 3.12。

目前僅正式支援 pip 安裝。

雖然使用其他工具(如 poetrypip-tools)也取得了一些成功,但它們與 pip 的工作流程不同,尤其是在約束與需求管理方面。目前不支援透過 Poetrypip-tools 安裝。

已知 bazel 存在一些問題,可能導致在使用它安裝 Airflow 時出現循環依賴。如果遇到此類問題,請切換到 pipBazel 社群正在 此 PR 中努力解決此問題,因此較新版本的 bazel 可能會處理此問題。

如果您希望使用這些工具安裝 Airflow,則應使用約束檔案,並將其轉換為您的工具所需的適當格式和工作流程。

如果您按照以下說明操作,Airflow 的安裝非常簡單。Airflow 使用約束檔案來實現可重現的安裝,因此建議使用 pip 和約束檔案。

  1. 設定 Airflow Home(選用)

    Airflow 需要一個 Home 目錄,預設使用 ~/airflow,但如果您願意,可以設定不同的位置。AIRFLOW_HOME 環境變數用於告知 Airflow 所需的位置。設定環境變數的此步驟應在安裝 Airflow 之前完成,以便安裝程序知道將必要檔案儲存在哪裡。

    export AIRFLOW_HOME=~/airflow
    
  2. 使用約束檔案安裝 Airflow,該檔案根據我們傳遞的 URL 確定

    AIRFLOW_VERSION=2.10.4
    
    # Extract the version of Python you have installed. If you're currently using a Python version that is not supported by Airflow, you may want to set this manually.
    # See above for supported versions.
    PYTHON_VERSION="$(python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
    
    CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
    # For example this would install 2.10.4 with python 3.8: https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.8.txt
    
    pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
    
  3. 執行 Airflow Standalone

    airflow standalone 命令會初始化資料庫、建立使用者,並啟動所有元件。

    airflow standalone
    
  4. 存取 Airflow UI

    在瀏覽器中瀏覽 localhost:8080,並使用終端機中顯示的管理員帳戶詳細資訊登入。在首頁啟用 example_bash_operator DAG。

執行這些命令後,Airflow 將建立 $AIRFLOW_HOME 資料夾,並建立包含預設值的 “airflow.cfg” 檔案,讓您可以快速上手。您可以使用環境變數覆寫預設值,請參閱 組態參考。您可以檢查 $AIRFLOW_HOME/airflow.cfg 中的檔案,或透過 UI 在 Admin->Configuration 選單中檢查。webserver 的 PID 檔案將儲存在 $AIRFLOW_HOME/airflow-webserver.pid/run/airflow/webserver.pid(如果由 systemd 啟動)。

Airflow 開箱即用,使用 SQLite 資料庫,您應該很快就會發現它已不敷使用,因為使用此資料庫後端無法進行平行化。它與 SequentialExecutor 結合使用,後者僅會依序執行任務執行個體。雖然這非常有限制,但它可讓您快速啟動並執行,並瀏覽 UI 和命令列公用程式。

隨著您的成長並將 Airflow 部署到生產環境,您也會希望從我們在此處使用的 standalone 命令轉移到分別執行元件。您可以在 生產環境部署 中閱讀更多資訊。

以下是一些將觸發幾個任務執行個體的命令。當您執行以下命令時,您應該能夠在 example_bash_operator DAG 中看到工作的狀態變更。

# run your first task instance
airflow tasks test example_bash_operator runme_0 2015-01-01
# run a backfill over 2 days
airflow dags backfill example_bash_operator \
    --start-date 2015-01-01 \
    --end-date 2015-01-02

如果您想手動執行 Airflow 的個別部分,而不是使用 all-in-one standalone 命令,您可以改為執行

airflow db migrate

airflow users create \
    --username admin \
    --firstname Peter \
    --lastname Parker \
    --role Admin \
    --email spiderman@superhero.org

airflow webserver --port 8080

airflow scheduler

下一步?

從這裡開始,您可以前往 教學 區段以取得更多範例,如果您準備好開始實作,則可以前往 操作指南 區段。

這個條目是否有幫助?