Dataflow Prime היא פלטפורמה לעיבוד נתונים ללא שרתים לצינורות עיבוד נתונים של Apache Beam. Dataflow Prime מבוסס על Dataflow ומשתמש בארכיטקטורה שבה המחשוב והמצב מופרדים. במקרים הבאים, יכול להיות ש-Dataflow Prime ישפר את יעילות צינור הנתונים:
- שינוי גודל אוטומטי אנכי יכול לשפר את צינור הנתונים.
Dataflow Prime תומך בצינורות לעיבוד נתונים באצווה ובסטרימינג. כברירת מחדל, Dataflow Prime משתמש ב-ארגון נתונים של Dataflow וב-Dataflow Runner v2 עבור צינורות עיבוד נתונים של אצווה.
תמיכה בגרסאות SDK
Dataflow Prime תומך בערכות ה-SDK הבאות של Apache Beam:
Apache Beam Python SDK גרסה 2.21.0 ואילך
Apache Beam Java SDK גרסה 2.30.0 ואילך
Apache Beam Go SDK גרסה 2.44.0 ואילך
כדי להוריד את חבילת ה-SDK או לקרוא את הערות המוצר, אפשר לעבור אל הורדות של Apache Beam.
תכונות של Dataflow Prime
בהמשך מפורטת רשימה של תכונות נתמכות ב-Dataflow Prime לסוגים שונים של צינורות:
- שינוי גודל אוטומטי אנכי (זיכרון). תמיכה בצינורות להעברת נתונים בסטרימינג ב-Python, Java ו-Go.
- Job Visualizer. תמיכה בצינורות עיבוד נתונים של אצווה ב-Python וב-Java.
- המלצות חכמות. תמיכה בצינורות סטרימינג ובצינורות אצווה ב-Python וב-Java.
- צינורות נתונים. תמיכה בצינורות סטרימינג ובצינורות אצווה ב-Python וב-Java.
התכונות Job Visualizer (כלי להמחשת משימות), Smart Recommendations (המלצות חכמות) ו-Data Pipelines (צינורות נתונים) נתמכות גם במשימות Prime שאינן משימות Dataflow.
התאמה אנכית אוטומטית לעומס
התכונה הזו מתאימה באופן אוטומטי את הזיכרון שזמין למכונות וירטואליות של Dataflow Worker בהתאם לצרכים של צינור הנתונים, ועוזרת למנוע שגיאות של חוסר זיכרון. ב-Dataflow Prime, התאמה אוטומטית לעומס (autoscaling) של משאבים אנכיים פועלת לצד התאמה אוטומטית לעומס (autoscaling) של משאבים אופקיים כדי לשנות את גודל המשאבים באופן דינמי.
מידע נוסף זמין במאמר בנושא שינוי אוטומטי של גודל המכונה הווירטואלית.
Job Visualizer
התכונה הזו מאפשרת לכם לראות את הביצועים של משימת Dataflow ולבצע אופטימיזציה של הביצועים שלה על ידי איתור קוד לא יעיל, כולל צווארי בקבוק של מקביליות. במסוף Google Cloud , אפשר ללחוץ על כל משימה של Dataflow בדף משימות כדי לראות את הפרטים שלה. אפשר גם לראות את רשימת השלבים שמשויכים לכל שלב בצינור.
מידע נוסף זמין במאמר בנושא פרטי ההפעלה.
המלצות חכמות
התכונה הזו מאפשרת לכם לבצע אופטימיזציה של צינור הנתונים ולפתור בעיות בו על סמך ההמלצות שמופיעות בכרטיסייה אבחון בדף הפרטים של העבודה. במסוף Google Cloud , אפשר ללחוץ על כל משימה של Dataflow בדף משימות כדי לראות את הפרטים שלה.
מידע נוסף זמין במאמר בנושא אבחון בעיות.
Data Pipelines
התכונה הזו מאפשרת לתזמן משימות, לעקוב אחרי ניצול המשאבים, לעקוב אחרי יעדים של רעננות נתונים בסטרימינג ולבצע אופטימיזציה של צינורות.
מידע נוסף זמין במאמר עבודה עם צינורות נתונים.
דרישות לגבי מכסות ומגבלות
המכסות והמגבלות זהות ל-Dataflow ול-Dataflow Prime. מידע נוסף זמין במאמר מכסות ומגבלות.
אם בוחרים ב-Data Pipelines, יש השלכות נוספות על מכסות ואזורים.
תכונות שלא נתמכות
אין תמיכה ב-Dataflow Prime בתכונות הבאות:
- הגדרת סוגים ספציפיים של מכונות וירטואליות באמצעות הדגל
--worker_machine_typeאו--machine_typeלצינורות Python ו---workerMachineTypeלצינורות Java. - הגדרת סוגים ספציפיים של מכונות וירטואליות או פלטפורמות CPU באמצעות פרמטרים ניסיוניים, כמו
--additional-experiments=min_cpu_platform=...או--experiments=min_cpu_platform=.... ניסיון להגדיר פלטפורמת CPU מינימלית באמצעות Dataflow Prime עלול להוביל לשגיאה כמו:Setting minimum CPU platform is not supported for the selected machine type e2-standard-2. - צפייה במכונות וירטואליות של Worker או שימוש ב-SSH כדי להתחבר אליהן.
- תזמון משאבים גמיש (FlexRS).
- בחירה אוטומטית של מכונה וירטואלית. כשמשתמשים ב-Dataflow Prime, התכונה 'בחירה אוטומטית של מכונות וירטואליות' לא נתמכת.
- שימוש ב-VPC Service Controls עם תכונת ההתאמה האוטומטית של גודל המכונה. אם מפעילים את Dataflow Prime ומריצים משימה חדשה בתוך גבולות גזרה של VPC Service Controls, המשימה משתמשת ב-Dataflow Prime בלי התאמה אוטומטית לעומס אנכית.
- NVIDIA Multi-Process Service (MPS).
- בצינורות Java שעומדים בדרישות הבאות אפשר להשתמש במחלקות
MapStateו-SetState:- שימוש ב-Streaming Engine
- שימוש בגרסאות Apache Beam SDK 2.58.0 ואילך
- לא להשתמש ב-Runner v2
כל אפשרויות הצינור שלא צוינו במפורש קודם או בטבלת השוואת התכונות פועלות באופן זהה ב-Dataflow וב-Dataflow Prime.
לפני שמשתמשים ב-Dataflow Prime
כדי להשתמש ב-Dataflow Prime, אפשר לעשות שימוש חוזר בקוד הקיים של צינור עיבוד הנתונים, וגם להפעיל את האפשרות Dataflow Prime דרך Cloud Shell או באופן פרוגרמטי.
Dataflow Prime תואם לאחור למשימות באצווה שמשתמשות בארגון נתונים של Dataflow ולמשימות סטרימינג שמשתמשות במנוע סטרימינג. עם זאת, מומלץ לבדוק את צינורות הנתונים באמצעות Dataflow Prime לפני שמשתמשים בהם בסביבת ייצור.
אם צינור הנתונים הזורמים שלכם פועל בסביבת ייצור, כדי להשתמש ב-Dataflow Prime, פועלים לפי השלבים הבאים:
עצירה של הפייפליין.
מפעילים את Dataflow Prime.
מריצים מחדש את צינור העיבוד.
הפעלת Dataflow Prime
כדי להפעיל את Dataflow Prime לצינור עיבוד נתונים:
מפעילים את Cloud Autoscaling API.
Dataflow Prime משתמש ב-Cloud Autoscaling API כדי להתאים את הזיכרון באופן דינמי.
מפעילים את Prime באפשרויות של צינור הנתונים.
אפשר להגדיר את אפשרויות הצינור באופן פרוגרמטי או באמצעות שורת הפקודה. בגרסאות נתמכות של Apache Beam SDK, מפעילים את הדגל הבא:
Java
--dataflowServiceOptions=enable_prime
Python
Apache Beam Python SDK בגרסה 2.29.0 ואילך:
--dataflow_service_options=enable_prime
Apache Beam Python SDK גרסה 2.21.0 עד 2.28.0:
--experiments=enable_prime
המשך
--dataflow_service_options=enable_prime
השבתה של Dataflow Prime
לפעמים, כמו בתבניות מסוימות ש-Google מספקת, יכול להיות ש-Dataflow Prime מופעל כברירת מחדל. כדי להשבית באופן מפורש את Dataflow Prime ולהשתמש ב-Dataflow רגיל, צריך להגדיר את אפשרות צינור עיבוד הנתונים enable_prime לערך false.
Java
--dataflowServiceOptions=enable_prime=false
Python
Apache Beam Python SDK בגרסה 2.29.0 ואילך:
--dataflow_service_options=enable_prime=false
Apache Beam Python SDK גרסה 2.21.0 עד 2.28.0:
--experiments=enable_prime=false
המשך
--dataflow_service_options=enable_prime=false
שימוש ב-Dataflow Prime עם תבניות
אם אתם משתמשים בתבניות Dataflow, אתם יכולים להפעיל את Dataflow Prime באחת מהדרכים הבאות:
לגבי משימות שהופעלו מהדף יצירת משימה מתבנית:
עוברים לדף Create job from template (יצירת משימה מתבנית).
בשדה Additional experiment (ניסוי נוסף), מזינים
enable_prime.
כדי להפעיל משימות מתבנית דרך ממשק שורת הפקודה, מעבירים את הדגל
--additional-experiments=enable_prime.כדי להפעיל את Dataflow Prime כשיוצרים תבנית, מגדירים את הדגל
--experiments=enable_prime.
שימוש ב-Dataflow Prime במסמכי notebook של Apache Beam
אם אתם משתמשים במסמך notebook של Apache Beam, אתם יכולים להפעיל את Dataflow Prime באמצעות תכנות באמצעות PipelineOptions:
options = pipeline_options.PipelineOptions(
flags=[],
dataflow_service_options=['enable_prime'],
)
מידע נוסף על הגדרת אפשרויות של Dataflow ב-notebook זמין במאמר הפעלת משימות Dataflow מצינור עיבוד נתונים שנוצר ב-notebook.
השוואת תכונות בין Dataflow לבין Dataflow Prime
בטבלה הבאה מוצגות השוואה בין התכונות הזמינות בשני סוגי Dataflow.
| תכונה | Dataflow Prime | Dataflow |
|---|---|---|
| Runner v2 | התכונה מופעלת כברירת מחדל ואי אפשר להשבית אותה למשימות באצווה, והיא אופציונלית למשימות סטרימינג | תכונה שמופעלת כברירת מחדל עם אפשרות להשבתה למשימות באצווה, ואופציונלית למשימות סטרימינג |
| ארגון נתונים של Dataflow למשימות באצווה | תכונה שמוגדרת כברירת מחדל עם אפשרות להשבית אותה | תכונה שמוגדרת כברירת מחדל עם אפשרות להשבית אותה |
| Streaming Engine לעבודות סטרימינג | תכונה אופציונלית לצינורות Java ותמיד פעילה לצינורות Python | תכונה אופציונלית לצינורות Java ותמיד פעילה לצינורות Python מגרסה 2.45.0 |
| התאמה אופקית לעומס (auto-scaling) | תכונה שמופעלת כברירת מחדל עם אפשרות להשבתה | תכונה שמופעלת כברירת מחדל עם אפשרות להשבתה |
| התאמה אנכית לעומס (VPA) | תכונה שמופעלת כברירת מחדל עם אפשרות להשבתה | לא רלוונטי |
| התאמה נכונה | תכונה אופציונלית | תכונה אופציונלית |
| חיוב | חיוב על שימוש ב-Serverless | חיוב רגיל |
המאמרים הבאים
- מידע נוסף על מכסות ב-Dataflow
- איך מגדירים אפשרויות של צינורות
- אפשר לעיין באפשרויות הצינורות הזמינות לצינורות Java ו-Python.
- מידע נוסף על תכונות של כוונון אוטומטי ב-Dataflow Prime
- מידע נוסף על יחידות GPU ב-Dataflow