שימוש ב-Dataflow Prime

‫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, פועלים לפי השלבים הבאים:

  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

המשך

--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 באחת מהדרכים הבאות:

  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 במסמכי 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 חיוב רגיל

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