Empacote e importe transformações

O YAML do Apache Beam permite-lhe agrupar e reutilizar transformações através de fornecedores de YAML do Beam. Os fornecedores permitem-lhe encapsular transformações numa unidade reutilizável que pode importar nas suas pipelines YAML do Beam. As transformações YAML, Python e Java Apache Beam podem ser todas incluídas desta forma.

Com o criador de tarefas, pode carregar fornecedores do Cloud Storage para os usar na sua tarefa.

Fornecedores de escrita

Os fornecedores de YAML do Beam são definidos em ficheiros YAML. Estes ficheiros especificam a implementação e a configuração das transformações fornecidas. As fichas de fornecedores individuais são expressas como itens de lista YAML com chaves type e config. Os fornecedores de Java e Python também têm uma chave config que especifica a implementação da transformação. As implementações de fornecedores definidas em YAML são expressas inline.

Fornecedores de YAML

Os fornecedores de YAML definem novas transformações de YAML como um mapa de nomes para transformar definições. Por exemplo, este fornecedor define uma transformação que eleva ao quadrado um campo da respetiva entrada:

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

Os fornecedores de YAML também podem especificar parâmetros de transformação com uma chave config_schema na definição de transformação e usar estes parâmetros através da criação de modelos 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}}"

Se uma transformação fornecida funcionar como uma origem, tem de definir requires_inputs: false:

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

Também é possível definir transformações compostas:

- 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}}

Fornecedores de Python

As transformações Python podem ser fornecidas através da seguinte sintaxe:

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

Para ver um exemplo detalhado, consulte o projeto inicial do fornecedor Python no GitHub.

Fornecedores de Java

As transformações Java podem ser fornecidas através da seguinte sintaxe:

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

Para ver um exemplo detalhado, consulte o projeto inicial do fornecedor Java no GitHub.

Usar fornecedores no criador de trabalhos

As transformações definidas nos fornecedores podem ser importadas do Cloud Storage e usadas no criador de tarefas. Para usar um fornecedor no criador de tarefas:

  1. Guarde um fornecedor como um ficheiro YAML no Cloud Storage.

    Aceda ao Cloud Storage

  2. Aceda à página Tarefas na Google Cloud consola.

    Aceda a Empregos

  3. Clique em Criar tarefa a partir do criador.

  4. Localize a secção Fornecedores YAML. Pode ter de deslocar a página.

  5. Na caixa Caminho do fornecedor YAML, introduza a localização do Cloud Storage do ficheiro do fornecedor.

  6. Aguarde que o fornecedor seja carregado. Se o fornecedor for válido, as transformações definidas no fornecedor aparecem na secção Transformações carregadas.

  7. Localize o nome da transformação na secção Transformações carregadas e clique no botão para inserir a transformação no trabalho.

  8. Se a transformação exigir parâmetros, defina-os no editor de configuração de transformação YAML para a transformação. Os parâmetros devem ser definidos como um objeto YAML que mapeia os nomes dos parâmetros para os valores dos parâmetros.

O que se segue?