Apache Beam YAML מאפשר לארוז טרנספורמציות ולעשות בהן שימוש חוזר באמצעות ספקי Beam YAML. ספקי נתונים מאפשרים לכם להכניס טרנספורמציות ליחידה לשימוש חוזר, שאותה תוכלו לייבא לצינורות Beam YAML. אפשר לארוז כך את כל הטרנספורמציות של YAML, Python ו-Java Apache Beam.
באמצעות הכלי ליצירת משימות, אפשר לטעון ספקים מ-Cloud Storage כדי להשתמש בהם במשימה.
ספקי כתיבה
ספקי Beam YAML מוגדרים בקובצי YAML. הקבצים האלה מציינים את ההטמעה וההגדרה של הטרנספורמציות שסופקו. כרטיסי מוצר של ספקים בודדים מופיעים כפריטים ברשימת YAML עם מפתחות type ו-config. לספקי Java ו-Python יש גם מפתח config שמציין את הטמעת הטרנספורמציה. הטמעות של ספקים שמוגדרים ב-YAML מוצגות בשורה.
ספקי YAML
ספקי YAML מגדירים טרנספורמציות חדשות של YAML כמיפוי של שמות להגדרות של טרנספורמציות. לדוגמה, הספק הזה מגדיר טרנספורמציה שמעלה בריבוע שדה מהקלט שלו:
- type: yaml
transforms:
SquareElement:
body:
type: chain
transforms:
- type: MapToFields
config:
language: python
append: true
fields:
power: "element ** 2"
ספקי YAML יכולים גם לציין פרמטרים של טרנספורמציה באמצעות מפתח config_schema בהגדרת הטרנספורמציה, ולהשתמש בפרמטרים האלה באמצעות תבניות 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}}"
אם טרנספורמציה שסופקה פועלת כמקור, צריך להגדיר את requires_inputs: false:
- type: yaml
transforms:
CreateTestElements:
requires_inputs: false
body: |
type: Create
config:
elements: [1,2,3,4]
אפשר גם להגדיר טרנספורמציות מורכבות:
- 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}}
ספקי Python
אפשר לספק טרנספורמציות של Python באמצעות התחביר הבא:
- type: pythonPackage
config:
packages:
- pypi_package>=version
transforms:
MyCustomTransform: "pkg.module.PTransformClassOrCallable"
דוגמה מפורטת אפשר לראות בפרויקט התחלה של ספק Python ב-GitHub.
ספקי Java
אפשר לספק טרנספורמציות של Java באמצעות התחביר הבא:
- type: javaJar
config:
jar: gs://your-bucket/your-java-transform.jar
transforms:
MyCustomTransform: "urn:registered:in:transform"
דוגמה מפורטת מופיעה בפרויקט התחלה של ספק Java ב-GitHub.
שימוש בספקים בכלי ליצירת משרות
אפשר לייבא טרנספורמציות שמוגדרות בספקים מ-Cloud Storage ולהשתמש בהן בכלי ליצירת משימות. כדי להשתמש בספק בכלי ליצירת משרות:
שומרים ספק כקובץ YAML ב-Cloud Storage.
נכנסים לדף Jobs במסוף Google Cloud .
לוחצים על Create job from builder (יצירת משימה מבונה).
מאתרים את הקטע ספקי YAML. יכול להיות שתצטרכו לגלול.
בתיבה YAML provider path (נתיב ספק YAML), מזינים את המיקום של קובץ הספק ב-Cloud Storage.
מחכים שהספק ייטען. אם הספק תקין, הטרנספורמציות שהוגדרו אצל הספק יופיעו בקטע Loaded transforms(טרנספורמציות שנטענו).
מאתרים את שם הטרנספורמציה בקטע Loaded transforms (טרנספורמציות שנטענו) ולוחצים על הלחצן כדי להוסיף את הטרנספורמציה לעבודה.
אם הטרנספורמציה דורשת פרמטרים, צריך להגדיר אותם בכלי לעריכת הגדרות הטרנספורמציה ב-YAML. הפרמטרים צריכים להיות מוגדרים כמיפוי של אובייקט YAML בין שמות הפרמטרים לערכי הפרמטרים.