Paquete e importación de transformaciones

Apache Beam YAML te permite empaquetar y reutilizar transformaciones a través de proveedores de Beam YAML. Los proveedores te permiten encapsular transformaciones en una unidad reutilizable que luego puedes importar en tus canalizaciones de Beam YAML. Las transformaciones de Apache Beam en YAML, Python y Java se pueden empaquetar de esta manera.

Con el compilador de trabajos, puedes cargar proveedores desde Cloud Storage para usarlos en tu trabajo.

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 en 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 intercaladas.

Proveedores de YAML

Los proveedores de YAML definen nuevas transformaciones de YAML como un mapa de nombres para transformar definiciones. 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 transformación y usar estos parámetros con la plantilla 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 establecer 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 de inicio del proveedor de Java en GitHub.

Usa proveedores en el compilador de trabajos

Las transformaciones definidas en los proveedores se pueden importar desde Cloud Storage y usar en el compilador de trabajos. Para usar un proveedor en el compilador de trabajos, haz lo siguiente:

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

    Ir a Cloud Storage

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

    Ir a Trabajos

  3. Haz clic en Crear trabajo a partir del compilador.

  4. Busca la sección Proveedores de YAML. Es posible que debas desplazarte.

  5. En el cuadro Ruta de acceso del proveedor de YAML, ingresa 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 tu transformación en la sección Loaded transforms y haz clic en el botón para insertarla en tu trabajo.

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

¿Qué sigue?