封裝及匯入轉換

透過 Apache Beam YAML,您可以透過 Beam YAML 供應商封裝及重複使用轉換作業。供應器可讓您將轉換封裝成可重複使用的單元,然後匯入 Beam YAML 管道。YAML、Python 和 Java Apache Beam 轉換作業都可以這種方式封裝。

使用工作建構工具,即可從 Cloud Storage 載入供應商,並在工作中加以運用。

撰寫服務供應商

Beam YAML 供應商是在 YAML 檔案中定義。這些檔案會指定所提供轉換的實作方式和設定。個別供應商的刊登資訊會以 YAML 清單項目的形式表示,並包含 typeconfig 鍵。Java 和 Python 提供者也有 config 鍵,用於指定轉換實作。以 YAML 定義的提供者實作項目會以內嵌方式表示。

YAML 提供者

YAML 提供者會將名稱對應至轉換定義,藉此定義新的 YAML 轉換。舉例來說,這個供應器定義的轉換會將輸入內容中的欄位平方:

- type: yaml
  transforms:
    SquareElement:
      body:
        type: chain
        transforms:
          - type: MapToFields
            config:
              language: python
              append: true
              fields:
                power: "element ** 2"

YAML 供應商也可以在轉換定義中,使用 config_schema 鍵指定轉換參數,並使用 Jinja2 範本化功能使用這些參數:

- type: yaml
  transforms:
    RaiseElementToPower:
      config_schema:
        properties:
          n: {type: integer}
      body:
        type: chain
        transforms:
          - type: MapToFields
            config:
              language: python
              append: true
              fields:
                power: "element ** {{n}}"

如果提供的轉換函式做為來源,則必須設定 requires_inputs: false

- type: yaml
  transforms:
    CreateTestElements:
      requires_inputs: false
      body: |
        type: Create
        config:
          elements: [1,2,3,4]

您也可以定義複合轉換:

- type: yaml
  transforms:
    ConsecutivePowers:
      config_schema:
        properties:
          end: {type: integer}
          n: {type: integer}
      requires_inputs: false
      body: |
        type: chain
        transforms:
          - type: Range
            config:
              end: {{end}}
          - type: RaiseElementToPower
            config:
              n: {{n}}

Python 供應商

您可以使用下列語法提供 Python 轉換:

- type: pythonPackage
  config:
    packages:
      - pypi_package>=version
  transforms:
    MyCustomTransform: "pkg.module.PTransformClassOrCallable"

如需深入範例,請參閱 GitHub 上的 Python 供應商入門專案

Java 供應商

您可以使用下列語法提供 Java 轉換:

- type: javaJar
  config:
    jar: gs://your-bucket/your-java-transform.jar
  transforms:
    MyCustomTransform: "urn:registered:in:transform"

如需深入範例,請參閱 GitHub 上的 Java 供應商入門專案

在工作建立工具中使用供應商

您可以從 Cloud Storage 匯入供應商中定義的轉換,並在工作建立工具中使用。如要在工作建構工具中使用供應商,請按照下列步驟操作:

  1. 將提供者儲存為 Cloud Storage 中的 YAML 檔案。

    前往 Cloud Storage

  2. 前往 Google Cloud 控制台的「Jobs」(工作) 頁面。

    前往「Jobs」(工作) 頁面

  3. 按一下「透過建構工具建立工作」

  4. 找出「YAML 提供者」部分。你可能需要捲動畫面。

  5. 在「YAML provider path」(YAML 提供者路徑) 方塊中,輸入提供者檔案的 Cloud Storage 位置。

  6. 等待供應商載入。如果提供者有效,提供者中定義的轉換就會顯示在「已載入的轉換」部分。

  7. 在「已載入的轉換」部分找到轉換名稱,然後按一下 按鈕,將轉換插入工作。

  8. 如果轉換作業需要參數,請在轉換作業的 YAML 轉換作業設定編輯器中定義參數。參數應定義為 YAML 物件,將參數名稱對應至參數值。

後續步驟