תבניות Dataflow

תבניות Dataflow מאפשרות לארוז צינור Dataflow לפריסה. כל מי שיש לו את ההרשאות המתאימות יכול להשתמש בתבנית כדי לפרוס את צינור העברת הנתונים הארוז. אתם יכולים ליצור תבניות Dataflow מותאמות אישית משלכם, ו-Google מספקת תבניות מוכנות מראש לתרחישים נפוצים.

יתרונות

לתבניות יש כמה יתרונות בהשוואה לפריסה ישירה של צינור עיבוד נתונים ב-Dataflow:

  • תבניות מפרידות בין עיצוב צינור עיבוד הנתונים לבין הפריסה. לדוגמה, מפתח יכול ליצור תבנית, ומדען נתונים יכול לפרוס את התבנית במועד מאוחר יותר.
  • תבניות יכולות לכלול פרמטרים שמאפשרים להתאים אישית את צינור העיבוד כשפורסים את התבנית.
  • אפשר לפרוס תבנית באמצעות מסוף Google Cloud , Google Cloud CLI או קריאות ל-API בארכיטקטורת REST. אתם לא צריכים סביבת פיתוח או תלות בצינורות שמותקנים במחשב המקומי שלכם.
  • תבנית היא ארטיפקט קוד שאפשר לאחסן במאגר של בקרת מקורות ולהשתמש בו בצינורות עיבוד נתונים של אינטגרציה רציפה (CI/CD).

תבניות ש-Google מספקת

‫Google מספקת מגוון של תבניות Dataflow מוגדרות מראש עם קוד פתוח, שאפשר להשתמש בהן בתרחישים נפוצים. מידע נוסף על התבניות הזמינות זמין במאמר בנושא תבניות ש-Google סיפקה.

השוואה בין תבניות Flex לתבניות קלאסיות

‫Dataflow תומך בשני סוגים של תבניות: תבניות Flex, שהן חדשות יותר, ותבניות קלאסיות. אם אתם יוצרים תבנית חדשה של Dataflow, מומלץ ליצור אותה כתבנית Flex.

בתבנית Flex, הצינור נארז כקובץ אימג' של Docker ב-Artifact Registry, יחד עם קובץ מפרט של התבנית ב-Cloud Storage. מפרט התבנית מכיל מצביע לקובץ אימג' של Docker. כשמריצים את התבנית, שירות Dataflow מפעיל מכונה וירטואלית להפעלת התבנית, שולף את קובץ האימג' של Docker ומריץ את צינור עיבוד הנתונים. גרף הביצוע נוצר באופן דינמי על סמך פרמטרים של זמן ריצה שסופקו על ידי המשתמש. כדי להשתמש ב-API להפעלת משימה שמשתמשת בתבנית Flex, צריך להשתמש ב-method‏ projects.locations.flexTemplates.launch.

תבנית קלאסית מכילה את הסריאליזציה של JSON של גרף משימות Dataflow. הקוד של צינור העיבוד צריך להקיף את כל הפרמטרים של זמן הריצה בממשק ValueProvider. הממשק הזה מאפשר למשתמשים לציין ערכי פרמטרים כשהם פורסים את התבנית. כדי להשתמש ב-API לעבודה עם תבניות קלאסיות, אפשר לעיין במסמכי העזרה של projects.locations.templates API.

לתבניות Flex יש את היתרונות הבאים לעומת תבניות קלאסיות:

  • בשונה מתבניות קלאסיות, בתבניות Flex לא נדרש ממשק ValueProvider לפרמטרים של קלט. לא כל המקורות והיעדים של Dataflow תומכים ב-ValueProvider.
  • בתבניות קלאסיות יש גרף עבודה סטטי, אבל בתבניות גמישות אפשר ליצור גרף עבודה באופן דינמי. לדוגמה, התבנית עשויה לבחור מחבר קלט/פלט אחר על סמך פרמטרים של קלט.
  • תבנית Flex יכולה לבצע עיבוד מקדים במכונה וירטואלית (VM) במהלך בניית צינור הנתונים. לדוגמה, יכול להיות שהיא תאמת את ערכי פרמטר הקלט.

תהליך העבודה של התבנית

השימוש בתבניות Dataflow כולל את השלבים הכלליים הבאים:

  1. מפתחים מגדירים סביבת פיתוח ומפתחים את צינור עיבוד הנתונים. הסביבה כוללת את Apache Beam SDK ויחסי תלות אחרים.
  2. בהתאם לסוג התבנית (Flex או קלאסית):
    • בתבניות Flex, המפתחים אורזים את צינור הנתונים בקובץ אימג' של Docker, מעבירים את קובץ האימג' בדחיפה ל-Artifact Registry ומעלים קובץ מפרט של תבנית ל-Cloud Storage.
    • בתבניות קלאסיות, המפתחים מריצים את צינור העיבוד, יוצרים קובץ תבנית ומעבירים את התבנית ל-Cloud Storage.
  3. משתמשים אחרים שולחים בקשה לשירות Dataflow להרצת התבנית.
  4. ‫Dataflow יוצר צינור מהתבנית. יכולות לעבור חמש עד שבע דקות עד שהצינור יתחיל לפעול.

הגדרת הרשאות IAM

עבודות Dataflow, כולל עבודות שמופעלות מתבניות, משתמשות בשני חשבונות שירות של IAM:

  • שירות Dataflow משתמש בחשבון שירות של Dataflow כדי לבצע מניפולציות במשאבים Google Cloud , כמו יצירת מכונות וירטואליות.
  • המכונות הווירטואליות של העובדים ב-Dataflow משתמשות בחשבון שירות של העובדים כדי לגשת לקבצים ולמשאבים אחרים של צינור הנתונים. לחשבון השירות הזה צריכה להיות גישה לכל המשאבים שהמשימה בצינור עיבוד הנתונים מפנה אליהם, כולל המקור והיעד שבהם התבנית משתמשת. מידע נוסף זמין במאמר בנושא גישה למשאבי Google Cloud .

מוודאים שלשני חשבונות השירות האלה יש תפקידים מתאימים. מידע נוסף זמין במאמר בנושא אבטחה והרשאות ב-Dataflow.

אם הארגון שלכם משתמש במדיניות של גבולות גישה של גורמים מרכזיים (PAB), יכול להיות שתיחסם הגישה של גורמים מרכזיים (כמו משתמשים או חשבונות שירות) לתבניות שסופקו על ידי Google, והם לא יוכלו לצפות בהן או להפעיל אותן. מידע נוסף ופתרונות זמינים במאמר בנושא גישה לתבניות שסופקו על ידי Google באמצעות מדיניות של גבולות גישה למשתמשים.

דרישות לגבי גרסת Apache Beam SDK

כדי ליצור תבניות משלכם, צריך לוודא שגרסת Apache Beam SDK תומכת ביצירת תבניות.

Java

כדי ליצור תבניות באמצעות Apache Beam SDK 2.x for Java, צריך גרסה 2.0.0-beta3 ואילך.

Python

כדי ליצור תבניות באמצעות Apache Beam SDK 2.x ל-Python, צריך גרסה 2.0.0 ואילך.

כדי להריץ תבניות באמצעות Google Cloud CLI, צריך להתקין את Google Cloud CLI בגרסה 138.0.0 ומעלה.

הרחבת תבניות

אתם יכולים ליצור תבניות משלכם על ידי הרחבה של תבניות Dataflow קוד פתוח. לדוגמה, בתבנית שמשתמשת במשך חלון קבוע, יכול להיות שנתונים שמגיעים מחוץ לחלון יימחקו. כדי להימנע מהתנהגות כזו, צריך להשתמש בקוד התבנית כבסיס ולשנות את הקוד כדי להפעיל את הפעולה .withAllowedLateness.

המאמרים הבאים