本頁面說明如何安裝或更新 Apache Beam SDK,以便在 Dataflow 服務上執行管道。
安裝 Apache Beam SDK
Apache Beam SDK 是一種用於資料管道的開放原始碼程式設計模型。您可以使用 Apache Beam 程式定義這些管道,並選擇 Dataflow 等執行工具來執行管道。
Java
Java 適用的 Apache Beam SDK 最新發布版本為 2.77.0。如要瞭解這個版本包含的變更,請參閱 版本公告。
如要使用 Maven 取得 Java 適用的 Apache Beam SDK,請使用 Maven 中央存放區發布的構件。
在 SDK 構件的 pom.xml 檔案中,加入依附元件和依附元件管理工具。詳情請參閱「在 Dataflow 中管理管道依附元件」。
如要進一步瞭解 Apache Beam SDK for Java 依附元件,請參閱 Apache Beam 說明文件中的「Apache Beam SDK for Java 依附元件」和「在 Java 中管理 Beam 依附元件」。
Python
Apache Beam SDK for Python 的最新發布版本為 2.77.0。如要瞭解版本中的變更,請參閱 版本公告。
如要取得 Python 適用的 Apache Beam SDK,請使用 Python Package Index 中其中一個已發布的套件。
執行下列指令,安裝 Python wheel:
pip install wheel
請從虛擬環境執行下列指令,以便安裝最新版本的 Python 適用的 Apache Beam SDK:
pip install 'apache-beam[gcp]'
視連線狀況而定,安裝作業可能需要一段時間。
Go
Apache Beam SDK for Go 的最新發布版本為 2.77.0。如要瞭解這個版本包含的變更,請參閱 版本公告。
如要安裝最新版本 Apache Beam SDK for Go,請執行下列指令:
go get -u github.com/apache/beam/sdks/v2/go/pkg/beam
設定開發環境
如要瞭解如何設定 Google Cloud 專案和開發環境,以便使用 Dataflow,請按照下列其中一個教學課程操作:
原始碼和範例
Apache Beam 原始碼位於 GitHub 的 Apache Beam 存放區。
Java
如要查看程式碼範例,請前往 GitHub 的 Apache Beam 範例目錄。
Python
您可以在 GitHub 的 Apache Beam Examples 目錄中找到程式碼範例。
Go
GitHub 的 Apache Beam 範例目錄中提供程式碼範例。
找出 Dataflow SDK 版本
安裝細節會因您的開發環境而異。如果您使用 Maven,可以在一或多個本機 Maven 存放區中「安裝」多個版本的 Dataflow SDK。
Java
如要瞭解特定管道執行的 Dataflow SDK 版本,請查看使用 DataflowPipelineRunner 或 BlockingDataflowPipelineRunner 執行時的控制台輸出內容。控制台會顯示類似下方的訊息,其中包含 Dataflow SDK 版本資訊:
Python
如要瞭解特定管道執行的 Dataflow SDK 版本,請查看使用 DataflowRunner 執行時的控制台輸出內容。控制台會顯示類似下方的訊息,其中包含 Dataflow SDK 版本資訊:
Go
如要瞭解特定管道執行的 Dataflow SDK 版本,請在執行 DataflowRunner 時查看控制台輸出內容。控制台會顯示類似下方的訊息,其中包含 Dataflow SDK 版本資訊:
INFO: Executing pipeline on the Dataflow Service, ... Dataflow SDK version: <version>
更新 Apache Beam SDK
將管道升級至較新版本的 Apache Beam SDK 時,請更新專案依附元件設定,並檢查版本之間是否有潛在的破壞性變更。
查看版本資訊和破壞性變更
升級前,請先查看 Apache Beam 版本資訊,瞭解變更、修正錯誤和潛在的破壞性變更。
如果您要升級多個子版本,請查看所有中繼版本的版本資訊。舉例來說,如果從 2.50.0 版升級至 2.60.0 版,請參閱 2.51.0 到 2.60.0 版的版本資訊。破壞性變更、淘汰項目和設定更新會累積在各個版本中。
如要瞭解影響 Dataflow 的已知問題和連接器專屬通知,請參閱「SDK 版本支援狀態」表格中的「Details」(詳細資料) 欄。
更新 SDK 依附元件
如要升級專案中的 SDK 版本,請根據管道使用的語言,更新建構設定或環境。將 VERSION 替換為目標 Apache Beam SDK 版本 (例如 2.76.0)。
Java
如要升級 Apache Beam SDK for Java,請更新建構設定檔中的 SDK 版本,例如 Maven 的 pom.xml 或 Gradle 的 build.gradle。
Maven
在 pom.xml 檔案中,更新 beam.version 屬性,或更新 Apache Beam 依附元件中的 <version> 標記:
<properties> <beam.version>VERSION</beam.version> </properties> <dependencies> <dependency> <groupId>org.apache.beam</groupId> <artifactId>beam-sdks-java-core</artifactId> <version>${beam.version}</version> </dependency> <dependency> <groupId>org.apache.beam</groupId> <artifactId>beam-runners-google-cloud-dataflow-java</artifactId> <version>${beam.version}</version> </dependency> </dependencies>
Gradle
在 build.gradle 檔案中,更新 Apache Beam 依附元件宣告:
dependencies { implementation 'org.apache.beam:beam-sdks-java-core:VERSION' implementation 'org.apache.beam:beam-runners-google-cloud-dataflow-java:VERSION' }
詳情請參閱「管理 Java 管道依附元件」。
Python
如要在本機或虛擬環境中升級 Apache Beam SDK for Python,請使用 pip:
pip install --upgrade 'apache-beam[gcp]==VERSION'
在 requirements.txt 或 setup.py 檔案中,更新固定的版本:
apache-beam[gcp]==VERSION
Go
如要升級 Apache Beam SDK for Go,請使用 go get 擷取目標版本,並更新 go.mod 檔案:
go get -u github.com/apache/beam/sdks/v2@vVERSION go mod tidy
詳情請參閱「管理 Go 管道依附元件」。
部署升級後的管道
在程式碼中更新 SDK 版本後,請根據管道類型選擇部署策略:
- 串流管道:如果是串流管道,您可以就地取代工作、執行平行管道,或停止並重新啟動工作,藉此部署升級後的程式碼。如需詳細操作說明、相容性規則和部署策略,請參閱「更新現有管道」和「升級串流管道」。
- 批次管道:批次管道不支援執行中更新或就地替換工作。讓現有工作執行至完成,或取消執行中的工作,然後使用升級後的 SDK 版本啟動新工作。
持續整合/持續交付和更新部署的最佳做法
如要在自動化建構和部署管道中推出 SDK 升級,請遵循下列最佳做法,盡可能降低作業風險:
- 固定依附元件:一律固定確切的 SDK 版本,例如 Python 中的
apache-beam[gcp]==VERSION,或 Maven 和 Gradle 中的確切版本字串。請避免使用動態範圍 (例如>=或latest),以免在自動化 CI/CD 建構作業期間,發生未經測試的小幅升級。 - 在預備環境中驗證:先在專屬的預備或試產環境中部署及測試升級後的管道,再將變更推送至正式環境。驗證管道處理量、指標穩定性和下游輸出內容。
- 使用測試或平行管道:如果是關鍵任務串流應用程式,請與現有管道平行執行升級後的管道。在排空舊管道之前,請先驗證這兩項工作之間的資料同位和輸出內容正確性。
後續步驟
- Dataflow 與 Google Cloud CLI 整合。如需安裝 Dataflow 指令列介面的操作說明,請參閱「使用 Dataflow 指令列介面」。
- 如要瞭解 Dataflow 支援哪些 Apache Beam 功能,請參閱 Apache Beam 功能矩陣。
- 查看 SDK 版本支援狀態,瞭解支援、淘汰和停用的 SDK 版本。