שימוש ב-Dataflow Prime

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

‫Dataflow Prime תומך גם בצינורות עיבוד נתונים באצווה וגם בפייפליין זורם. כברירת מחדל, ב-Dataflow Prime נעשה שימוש ב-Dataflow Shuffle וב-Dataflow Portable Runner לצינורות עיבוד נתונים באצווה.

תמיכה בגרסאות 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.
  • Data Pipelines. תמיכה בצינורות להעברת נתונים בסטרימינג ובאצוות ב-Python וב-Java.

התכונות Job Visualizer (כלי להמחשת משימות), Smart Recommendations (המלצות חכמות) ו-Data Pipelines (צינורות נתונים) נתמכות גם במשימות שאינן Dataflow Prime.

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

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

למידע נוסף, קראו את המאמר שינוי קנה מידה אנכי באופן אוטומטי.

Job Visualizer

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

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

המלצות חכמות

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

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

Data Pipelines

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

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

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

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

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

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

‫Dataflow Prime לא תומך ב:

  • הגדרת סוגים ספציפיים של מכונות וירטואליות באמצעות הדגל --worker_machine_type או --machine_type לצינורות Python ו---workerMachineType לצינורות Java.
  • הגדרת סוגים ספציפיים של מכונות וירטואליות או פלטפורמות של מעבדים באמצעות פרמטרים ניסיוניים, כמו --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:
    • שימוש במנוע סטרימינג
    • להשתמש בגרסאות 2.58.0 ואילך של Apache Beam SDK
    • לא להשתמש ב-Portable Runner

כל האפשרויות של צינור עיבוד הנתונים שלא צוינו במפורש קודם או בטבלת השוואת התכונות פועלות באותו אופן ב-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. למשימות שהופעלו מהדף Create job from template:

    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

אם אתם משתמשים במסמך 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
Portable Runner תכונת ברירת מחדל ללא אפשרות להשבתה למשימות באצווה, ואופציונלית למשימות סטרימינג תכונה שמופעלת כברירת מחדל עם אפשרות להשבית אותה במשימות באצווה, ואופציונלית במשימות סטרימינג
ארגון נתונים של Dataflow למשימות באצווה תכונה שמופעלת כברירת מחדל עם אפשרות להשבית אותה תכונה שמופעלת כברירת מחדל עם אפשרות להשבית אותה
מנוע סטרימינג למשימות סטרימינג תכונה אופציונלית לצינורות עיבוד נתונים ב-Java, ותמיד מופעלת לצינורות עיבוד נתונים ב-Python תכונה אופציונלית לצינורות עיבוד נתונים ב-Java, ותמיד מופעלת לצינורות עיבוד נתונים ב-Python החל מגרסה 2.45.0
התאמה אוטומטית אופקית של קבוצות Pod לעומס תכונה שמוגדרת כברירת מחדל עם אפשרות להשבתה תכונה שמופעלת כברירת מחדל עם אפשרות להשבית אותה
התאמה אנכית אוטומטית של קבוצות Pod לעומס תכונה שמופעלת כברירת מחדל עם אפשרות להשבית אותה לא רלוונטי
התאמה נכונה תכונה אופציונלית תכונה אופציונלית
חיוב חיוב על שימוש ב-Serverless חיוב רגיל

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