Empaqueter et importer des transformations

Apache Beam YAML vous permet d'empaqueter et de réutiliser des transformations à l'aide de fournisseurs Beam YAML. Les fournisseurs vous permettent d'encapsuler des transformations dans une unité réutilisable que vous pouvez ensuite importer dans vos pipelines Beam YAML. Les transformations Apache Beam YAML, Python et Java peuvent toutes être regroupées de cette manière.

Avec le générateur de tâches, vous pouvez charger des fournisseurs depuis Cloud Storage pour les utiliser dans votre tâche.

Fournisseurs de services de rédaction

Les fournisseurs YAML Beam sont définis dans des fichiers YAML. Ces fichiers spécifient l'implémentation et la configuration des transformations fournies. Les fiches individuelles des fournisseurs sont exprimées sous forme d'éléments de liste YAML avec les clés type et config. Les fournisseurs Java et Python disposent également d'une clé config qui spécifie l'implémentation de la transformation. Les implémentations de fournisseur définies par YAML sont exprimées de manière intégrée.

Fournisseurs YAML

Les fournisseurs YAML définissent de nouvelles transformations YAML sous la forme d'un mappage des noms aux définitions de transformation. Par exemple, ce fournisseur définit une transformation qui met au carré un champ à partir de son entrée :

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

Les fournisseurs YAML peuvent également spécifier des paramètres de transformation avec une clé config_schema dans la définition de la transformation et utiliser ces paramètres à l'aide de la modélisation 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 une fonction de transformation fournie sert de source, elle doit définir requires_inputs: false :

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

Il est également possible de définir des transformations composites :

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

Fournisseurs Python

Les transformations Python peuvent être fournies à l'aide de la syntaxe suivante :

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

Pour obtenir un exemple détaillé, consultez le projet de démarrage du fournisseur Python sur GitHub.

Fournisseurs Java

Les transformations Java peuvent être fournies à l'aide de la syntaxe suivante :

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

Pour obtenir un exemple détaillé, consultez le projet de démarrage du fournisseur Java sur GitHub.

Utiliser des fournisseurs dans le générateur de jobs

Les transformations définies dans les fournisseurs peuvent être importées depuis Cloud Storage et utilisées dans le générateur de jobs. Pour utiliser un fournisseur dans le générateur de tâches :

  1. Enregistrez un fournisseur en tant que fichier YAML dans Cloud Storage.

    Accéder à Cloud Storage

  2. Accédez à la page Jobs de la console Google Cloud .

    Accéder aux tâches

  3. Cliquez sur Créer un job à partir du générateur.

  4. Recherchez la section Fournisseurs YAML. Vous devrez peut-être faire défiler la page.

  5. Dans le champ Chemin d'accès au fournisseur YAML, saisissez l'emplacement Cloud Storage du fichier de fournisseur.

  6. Attendez que le fournisseur se charge. Si le fournisseur est valide, les transformations définies dans le fournisseur s'affichent dans la section Transformations chargées.

  7. Recherchez le nom de votre transformation dans la section Transformations chargées, puis cliquez sur le bouton  pour insérer la transformation dans votre job.

  8. Si votre transformation nécessite des paramètres, définissez-les dans l'éditeur de configuration de la transformation YAML. Les paramètres doivent être définis en tant qu'objet YAML mappant les noms de paramètres à leurs valeurs.

Étapes suivantes