Empaquetar e importar transformaciones

Apache Beam YAML te permite empaquetar y reutilizar transformaciones mediante proveedores de YAML de Beam. Los proveedores te permiten encapsular transformaciones en una unidad reutilizable que puedes importar en tus flujos de trabajo de Beam YAML. Las transformaciones de Apache Beam de YAML, Python y Java se pueden empaquetar de esta forma.

Con el creador de tareas, puedes cargar proveedores desde Cloud Storage para usarlos en tu tarea.

Proveedores de escritura

Los proveedores de YAML de Beam se definen en archivos YAML. Estos archivos especifican la implementación y la configuración de las transformaciones proporcionadas. Las fichas de proveedores individuales se expresan como elementos de lista de YAML con las claves type y config. Los proveedores de Java y Python también tienen una clave config que especifica la implementación de la transformación. Las implementaciones de proveedores definidas en YAML se expresan de forma insertada.

Proveedores de YAML

Los proveedores de YAML definen nuevas transformaciones de YAML como un mapa de nombres a definiciones de transformación. Por ejemplo, este proveedor define una transformación que eleva al cuadrado un campo de su entrada:

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

Los proveedores de YAML también pueden especificar parámetros de transformación con una clave config_schema en la definición de la transformación y usar estos parámetros mediante plantillas 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}}"

Si una transformación proporcionada funciona como fuente, debe definir requires_inputs: false:

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

También es posible definir transformaciones compuestas:

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

Proveedores de Python

Las transformaciones de Python se pueden proporcionar con la siguiente sintaxis:

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

Para ver un ejemplo detallado, consulta el proyecto de inicio del proveedor de Python en GitHub.

Proveedores de Java

Las transformaciones de Java se pueden proporcionar con la siguiente sintaxis:

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

Para ver un ejemplo detallado, consulta el proyecto inicial del proveedor de Java en GitHub.

Usar proveedores en el creador de trabajos

Las transformaciones definidas en los proveedores se pueden importar desde Cloud Storage y usar en el creador de trabajos. Para usar un proveedor en el compilador de trabajos, sigue estos pasos:

  1. Guarda un proveedor como archivo YAML en Cloud Storage.

    Ir a Cloud Storage

  2. Ve a la página Trabajos de la Google Cloud consola.

    Ir a Tareas

  3. Haz clic en Crear trabajo desde creador.

  4. Busque la sección Proveedores de YAML. Es posible que tengas que desplazarte.

  5. En el cuadro Ruta del proveedor de YAML, introduce la ubicación del archivo del proveedor en Cloud Storage.

  6. Espera a que se cargue el proveedor. Si el proveedor es válido, las transformaciones definidas en él aparecerán en la sección Transformaciones cargadas.

  7. Busca el nombre de la transformación en la sección Transformaciones cargadas y haz clic en el botón para insertarla en el trabajo.

  8. Si tu transformación requiere parámetros, defínelos en el editor Configuración de transformación YAML de la transformación. Los parámetros deben definirse como un objeto YAML que asigne nombres de parámetros a valores de parámetros.

Siguientes pasos