從向後移植供應商套件匯入運算子

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer„�

本頁說明何謂 Airflow 舊版移植供應商套件,以及如何在 DAG 中使用這些套件。

向後移植供應商套件是 Airflow 2 版本的運算子、轉移、感應器、掛鉤和密碼,以 PyPI 模組形式封裝。

為簡化說明,本文僅著重於運算子。您可以像運算子一樣,使用向後移植套件中的所有其他內容。

反向移植供應商套件可解決重要問題:您不必將 Airflow 環境升級至較新版本,就能取得運算子、轉移、感應器和掛鉤的新功能和安全性更新。舉例來說,Airflow 2 提供 Google 的供應商套件。您可以在 Airflow 1.10.* 環境中,從這個套件的向後移植版本匯入運算子。

在 Apache Airflow 導入向後移植供應商套件的概念之前,運算子是 Airflow 的不可或缺部分。如要取得新版運算子,您需要使用新版 Airflow。因此您必須將 Cloud Composer 環境升級至較新版本。Airflow 2 捨棄了這個模型,並導入供應商套件。Airflow 2 的供應商套件是 PyPI 模組,內含特定供應商 (例如 Google) 的運算子、轉移、感應器、掛鉤和密鑰。如果您使用 Airflow 1.10.*,就能享有這項變更帶來的優勢,並使用提供者套件的回溯移植版本。

使用預先安裝的 Backport 套件

Cloud Composer 映像檔已安裝部分反向移植套件。您不需要在環境中安裝這些回溯移植套件。 只要確保您從 DAG 程式碼中的向後移植套件匯入運算子即可,詳情請參閱本頁稍後內容。

如要查看環境中可用的 Backport 套件,請參閱環境適用的 Cloud Composer 映像檔中的套件清單

環境中每個預先安裝的回溯移植套件都有特定版本。 如要使用其他版本,請更新環境並指定所需版本。我們不建議降級預先安裝的 Backport 套件。只有在發現新版有問題時,才需要安裝舊版。您無法解除安裝預先安裝的 Backport 套件,只能變更已安裝的版本。

安裝及升級 Backport 套件

如要安裝或升級 Backport 套件,請執行下列指令:

  1. 在 PyPI.org 上尋找所需的 Backport 套件

  2. 安裝或升級套件,就像其他 PyPI 套件一樣。

  3. 視需要安裝跨供應商套件依附元件。這些是額外的依附元件,您可能需要這些元件才能使用回溯移植套件的所有功能。

    舉例來說,如要使用 apache-airflow-backport-providers-google 中的 SalesforceToGcsOperator,您需要 [salesforce] 額外項目。安裝 apache-airflow-backport-providers-google,並在「額外項目與版本」欄位中指定[salesforce] 額外項目。

在 DAG 中從向後移植供應商套件匯入運算子

如要查看 Backport 套件中的內容清單,請前往 PyPI.org 的 Backport 套件頁面。舉例來說,apache-airflow-backport-providers-google 的頁面會列出這個套件的運算子、轉移、感應器、掛鉤和密鑰。

向後移植供應商套件會導入新的運算子、移動的運算子和其他內容。這兩種內容有所不同,詳情請見下文。

匯入新運算子

新運算子是指 Airflow 1.10.* 中沒有的運算子。如果您嘗試匯入這類運算子,但沒有回溯移植套件,就會收到匯入錯誤訊息。

如要使用回溯移植套件中的新運算子,請從對應的 airflow.providers.* 套件匯入,詳情請參閱 PyPI.org 上這個回溯移植套件的頁面。

以下範例會從 apache-airflow-backport-providers-google 套件匯入新運算子:

from airflow.providers.google.cloud.operators.bigquery_dts import (
    BigQueryCreateDataTransferOperator,
    BigQueryDeleteDataTransferConfigOperator,
    )

匯入已移動的運算子

遷移的運算子是指 Airflow 1.10.* 中已有的運算子。安裝向後移植運算子套件後,您可以匯入運算子的兩個不同版本。其中一個版本與 Airflow 綁定,另一個版本則是已移轉的運算子。如要使用已移動的運算子,請使用新的匯入路徑匯入。

如要使用向後移植套件中已移動的運算子,請從對應的 airflow.contrib.* 套件匯入,如 PyPI.org 上這個向後移植套件的頁面所述。

以下範例會從 apache-airflow-backport-providers-google 套件匯入已移動的運算子:

from airflow.contrib.operators.bigquery_operator import (
    BigQueryCreateEmptyDatasetOperator,
    BigQueryOperator,
    )

後續步驟