שימוש ב-Dataflow Prime

‫Dataflow Prime היא פלטפורמה לעיבוד נתונים ללא שרתים לצינורות Apache Beam. ‫Dataflow Prime מבוסס על Dataflow ומשתמש בארכיטקטורה שבה המחשוב והמצב מופרדים. במקרים הבאים, יכול להיות ש-Dataflow Prime ישפר את היעילות של צינורות הנתונים:

‫Dataflow Prime תומך בצינורות לעיבוד נתונים באצווה ובסטרימינג. כברירת מחדל, Dataflow Prime משתמש ב-ארגון נתונים של Dataflow וב-Dataflow Runner v2 לצינורות עיבוד נתונים של אצווה.

תמיכה בגרסאות SDK

‫Dataflow Prime תומך בערכות Apache Beam SDK הבאות:

  • ‫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.
  • התאמה נכונה (רמזים למשאבים). תמיכה בצינורות עיבוד נתונים של אצווה ב-Python וב-Java.
  • Job Visualizer. תמיכה בצינורות עיבוד נתונים של אצווה ב-Python וב-Java.
  • המלצות חכמות. תמיכה בצינורות להעברת נתונים בסטרימינג ובאצוות ב-Python וב-Java.
  • צינורות נתונים. תמיכה בצינורות להעברת נתונים בסטרימינג ובאצוות ב-Python וב-Java.

התכונות Job Visualizer,‏ Smart Recommendations ו-Data Pipelines נתמכות גם במשימות שאינן Dataflow Prime.

התאמה אנכית אוטומטית לעומס

התכונה הזו מתאימה באופן אוטומטי את הזיכרון שזמין למכונות וירטואליות של Dataflow Worker בהתאם לצרכים של צינור הנתונים, ועוזרת למנוע שגיאות של חוסר זיכרון. ב-Dataflow Prime, התאמה אוטומטית לעומס (autoscaling) של משאבים אנכיים פועלת לצד התאמה אוטומטית לעומס של משאבים אופקיים כדי לשנות את גודל המשאבים באופן דינמי.

מידע נוסף זמין במאמר בנושא שינוי אוטומטי של גודל המכונה (VPA).

התאמה נכונה

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

כדי להשתמש בתכונה 'התאמה נכונה' צריך Apache Beam 2.30.0 ומעלה.

מידע נוסף זמין במאמר בנושא התאמה נכונה.

Job Visualizer

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

מידע נוסף זמין במאמר בנושא פרטי הביצוע.

המלצות חכמות

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

מידע נוסף זמין במאמר בנושא אבחון בעיות.

Data Pipelines

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

מידע נוסף זמין במאמר עבודה עם צינורות נתונים.

דרישות לגבי מכסות ומגבלות

המכסות והמגבלות זהות ל-Dataflow ול-Dataflow Prime. מידע נוסף זמין במאמר מכסות ומגבלות.

אם בוחרים ב-Data Pipelines, יש השלכות נוספות על מכסות ואזורים.

תכונות שלא נתמכות

אין תמיכה ב-Dataflow Prime בתכונות הבאות:

  • הגדרת סוגים ספציפיים של מכונות וירטואליות באמצעות הדגל --worker_machine_type או --machine_type לצינורות Python ו---workerMachineType לצינורות Java.
  • צפייה במכונות וירטואליות של עובדים או שימוש ב-SSH כדי להתחבר אליהן.
  • תזמון משאבים גמיש (FlexRS).
  • שימוש ב-VPC Service Controls עם Vertical Autoscaling. אם מפעילים את 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, פועלים לפי השלבים הבאים:

  1. עוצרים את צינור עיבוד הנתונים.

  2. מפעילים את Dataflow Prime.

  3. מריצים מחדש את צינור העיבוד.

הפעלת Dataflow Prime

כדי להפעיל את Dataflow Prime לצינור עיבוד נתונים:

  1. מפעילים את Cloud Autoscaling API.

    הפעלה של ה-API

    ‫Dataflow Prime משתמש ב-Cloud Autoscaling API כדי להתאים את הזיכרון באופן דינמי.

  2. מפעילים את 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

Go

--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

Go

--dataflow_service_options=enable_prime=false

שימוש ב-Dataflow Prime עם תבניות

אם אתם משתמשים בתבניות Dataflow, אתם יכולים להפעיל את Dataflow Prime באחת מהדרכים הבאות:

  1. לגבי משימות שהופעלו מהדף יצירת משימה מתבנית:

    1. עוברים לדף Create job from template (יצירת משימה מתבנית).

      כניסה לדף Create job from template

    2. בשדה Additional experiment (ניסוי נוסף), מזינים enable_prime.

  2. למשימות שמופעלות מתבנית דרך ממשק שורת הפקודה, מעבירים את הדגל --additional-experiments=enable_prime.

  3. כדי להפעיל את Dataflow Prime כשיוצרים תבנית, מגדירים את הדגל --experiments=enable_prime.

שימוש ב-Dataflow Prime ב-notebooks של Apache Beam

אם אתם משתמשים במחברת 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
התאמה אוטומטית אופקית לעומס תכונה שמופעלת כברירת מחדל עם אפשרות להשבתה תכונה שמופעלת כברירת מחדל עם אפשרות להשבית אותה
התאמה אנכית אוטומטית לעומס תכונה שמופעלת כברירת מחדל עם אפשרות להשבתה לא רלוונטי
התאמה נכונה תכונה אופציונלית תכונה אופציונלית
חיוב חיוב על שימוש ב-Serverless חיוב רגיל

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