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 :
Enregistrez un fournisseur en tant que fichier YAML dans Cloud Storage.
Accédez à la page Jobs de la console Google Cloud .
Cliquez sur
Créer un job à partir du générateur.Recherchez la section Fournisseurs YAML. Vous devrez peut-être faire défiler la page.
Dans le champ Chemin d'accès au fournisseur YAML, saisissez l'emplacement Cloud Storage du fichier de fournisseur.
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.
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.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
- En savoir plus sur les fournisseurs YAML Beam