תבניות 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 מפעיל מכונה וירטואלית של Launcher, שולף את קובץ האימג' של Docker ומריץ את צינור עיבוד הנתונים. גרף הביצוע נוצר באופן דינמי על סמך פרמטרים של זמן ריצה שסופקו על ידי המשתמש. כדי להשתמש ב-API להפעלת ג'וב שמשתמש בתבנית Flex, צריך להשתמש ב-method projects.locations.flexTemplates.launch.
תבנית מותאמת אישית מכילה את הסריאליזציה של JSON של גרף משימות Dataflow. הקוד של צינור העיבוד צריך להקיף את כל הפרמטרים של זמן הריצה בממשק ValueProvider. הממשק הזה מאפשר למשתמשים לציין ערכי פרמטרים כשהם פורסים את התבנית. כדי להשתמש ב-API לעבודה עם תבניות קלאסיות, אפשר לעיין במאמרי העזרה של projects.locations.templates API.
לתבניות Flex יש את היתרונות הבאים לעומת תבניות קלאסיות:
- בניגוד לתבניות קלאסיות, תבניות Flex לא דורשות את הממשק
ValueProviderלפרמטרים של קלט. לא כל המקורות והיעדים של Dataflow תומכים ב-ValueProvider. - בתבניות קלאסיות יש גרף עבודות סטטי, אבל בתבניות גמישות אפשר ליצור גרף עבודות באופן דינמי. לדוגמה, התבנית עשויה לבחור מחבר קלט/פלט אחר על סמך פרמטרים של קלט.
- תבנית Flex יכולה לבצע עיבוד מקדים במכונה וירטואלית (VM) במהלך בניית צינור הנתונים. לדוגמה, יכול להיות שהיא תאמת ערכים של פרמטרים של קלט.
תהליך העבודה עם תבניות
השימוש בתבניות Dataflow כולל את השלבים הכלליים הבאים:
- מפתחים מגדירים סביבת פיתוח ומפתחים את צינור עיבוד הנתונים שלהם. הסביבה כוללת את Apache Beam SDK ויחסי תלות אחרים.
- בהתאם לסוג התבנית (Flex או קלאסית):
- בתבניות גמישות, המפתחים אורזים את צינור הנתונים בקובץ אימג' של Docker, מעבירים את קובץ האימג' בדחיפה ל-Artifact Registry ומעלים קובץ מפרט של תבנית ל-Cloud Storage.
- בתבניות קלאסיות, מפתחים מריצים את צינור העברת הנתונים, יוצרים קובץ תבנית ומעבירים את התבנית ל-Cloud Storage.
- משתמשים אחרים שולחים בקשה לשירות Dataflow להפעלת התבנית.
- Dataflow יוצר צינור מהתבנית. יכולות לעבור חמש עד שבע דקות עד שהצינור יתחיל לפעול.
הגדרת הרשאות IAM
עבודות Dataflow, כולל עבודות שמופעלות מתבניות, משתמשות בשני חשבונות שירות של IAM:
- שירות Dataflow משתמש בחשבון שירות של Dataflow כדי לבצע פעולות על משאבים Google Cloud , כמו יצירת מכונות וירטואליות.
- המכונות הווירטואליות של העובדים ב-Dataflow משתמשות בחשבון שירות של העובדים כדי לגשת לקבצים ולמשאבים אחרים של צינור הנתונים. לחשבון השירות הזה צריכה להיות גישה לכל המשאבים שהמשימה בצינור עיבוד הנתונים מפנה אליהם, כולל מקור הנתונים ויעד הנתונים שבהם התבנית משתמשת. מידע נוסף זמין במאמר בנושא גישה למשאבי Google Cloud .
מוודאים שלשני חשבונות השירות האלה יש תפקידים מתאימים. מידע נוסף זמין במאמר אבטחה והרשאות ב-Dataflow.
דרישות לגבי גרסת 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.