אזורים של Dataflow

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

שמות האזורים מבוססים על מוסכמה סטנדרטית שמופיעה בשמות האזורים של Compute Engine. לדוגמה, השם של האזור 'מרכז ארה"ב' הוא us-central1.

התכונה הזו זמינה בכל האזורים שבהם יש תמיכה ב-Dataflow. כדי לראות את המיקומים הזמינים, אפשר לקרוא את המאמר בנושא מיקומים של Dataflow.

הנחיות לבחירת אזור

כדי לבחור אזור מתאים למשרה, מומלץ לפעול לפי ההנחיות הבאות.

אבטחה ותאימות

יכול להיות שתצטרכו להגביל את העיבוד של משימות Dataflow לאזור גיאוגרפי ספציפי כדי לתמוך בצרכי האבטחה והתאימות של הפרויקט.

אחסון ועיבוד נתונים באופן מקומי

כדי לצמצם את זמן האחזור ברשת ואת עלויות ההעברה ברשת, מומלץ להריץ משימת Dataflow מאותו אזור שבו נמצאים המקורות, היעדים, המיקומים של קובצי ההכנה והמיקומים של הקבצים הזמניים. אם אתם משתמשים במקורות, ביעדים, במיקומי קבצים זמניים או במיקומי קבצים להעברה שנמצאים מחוץ לאזור של העבודה, יכול להיות שהנתונים שלכם יישלחו בין אזורים.

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

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

אם אתם צריכים יותר שליטה על המיקום של הודעות יומן של צינורות, אתם יכולים לבצע את הפעולות הבאות:

  1. יוצרים מסנן החרגה עבור יעד של נתב יומנים _Default כדי למנוע ייצוא של יומני Dataflow אל קטגוריה ביומן _Default.
  2. יוצרים קטגוריה ביומן באזור לבחירתכם.
  3. מגדירים יעד חדש לניתוב יומנים שמייצא את היומנים של Dataflow לקטגוריית היומנים החדשה.

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

הערות לגבי מקורות נפוצים של משימות Dataflow:

עמידות ופיצול גיאוגרפי

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

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

מיקום אזורי

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

הצגת מודעות לפי אזור מציעה יתרונות כמו:

  • זמינות משופרת של משאבים: עבודות Dataflow עמידות יותר בפני שגיאות של זמינות משאבים של תחום מוגדר, כי אפשר להמשיך ליצור workers באזורים אחרים עם זמינות שנותרה.
  • מהימנות משופרת: במקרה של כשל אזורי, עבודות Dataflow יכולות להמשיך לפעול, כי העובדים נוצרים מחדש באזורים אחרים.

ההגבלות הבאות חלות:

  • מיקום אזורי נתמך רק לגבי משימות שמשתמשות ב-Streaming Engine או בארגון נתונים של Dataflow. אי אפשר להשתמש במיקום אזורי בעבודות שהוחרגו מ-Streaming Engine או מארגון נתונים של Dataflow.
  • מיקום אזורי חל רק על מכונות וירטואליות, ולא על משאבי קצה עורפי.
  • המכונות הווירטואליות לא משוכפלות בכמה אזורים. אם מכונה וירטואלית הופכת ללא זמינה, למשל, פריטי העבודה שלה נחשבים לאבודים ומעובדים מחדש על ידי מכונה וירטואלית אחרת.
  • אם אין ל-Compute Engine קיבולת באזור שהוגדר, שירות Dataflow לא יכול ליצור עוד מכונות וירטואליות.
  • אם ל-Compute Engine אין קיבולת באזור שהוגדר, יכול להיות ששירות Dataflow לא יצליח להפעיל את העבודה.

צפייה באזורים של משאבי עבודה

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

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

  • כדי לראות את אזורי השירות במסוףGoogle Cloud , משתמשים בשדה Service zones בחלונית Job info.

  • כדי להשתמש ב-API כדי לבדוק את אזורי השירות, משתמשים בשדה ServiceResources.

הערכים בשדה הזה מתעדכנים לאורך משך העבודה, כי המשאבים שבהם העבודה משתמשת משתנים בזמן שהיא פועלת.

מיקום אוטומטי של אזור

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

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

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

כדי להימנע משגיאות שקשורות לזמינות של משאבים של תחום מוגדר ושגיאות שקשורות למיצוי מאגר המשאבים, מומלץ להשתמש ב---region ולהפעיל את Streaming Engine או את ארגון נתונים של Dataflow כדי ליהנות ממיקום אזורי. מיקום אזורי מאפשר ל-Dataflow ליצור עובדים בכל האזורים הזמינים באזור מסוים, במקום להצמיד את העבודה לאזור אחד.

ציון אזור

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

ממשק שורת הפקודה של Dataflow תומך גם באפשרות --region לציון אזורים.

ביטול ההגדרה של האזור או האזור של העובד

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

אם רוצים לוודא שהעובדים של משימת Dataflow יפעלו רק באזור מסוים, אפשר לציין את האזור באמצעות אפשרות הצינור הבאה. דפוס השימוש הזה לא נפוץ במשימות Dataflow.

האפשרות הזו שולטת רק באזור שבו משתמשים בעובדי Dataflow. היא לא חלה על משאבי קצה עורפי. יכול להיות שמשאבי ה-Backend ייווצרו בכל תחום באזור של העבודה.

Java

--workerZone

Python

--worker_zone

המשך

--worker_zone

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

מכיוון שהעבודה מוגדרת להפעלה בתחום (zone) אחד, יכול להיות שהפעולה תיכשל עם שגיאה של זמינות משאב של תחום מוגדר אם לא יהיו מספיק משאבי Compute Engine זמינים. אם אתם נתקלים בשגיאות שקשורות לזמינות משאבים של תחום מוגדר או בשגיאות שקשורות למיצוי מאגר המשאבים, אל תשתמשו ב---workerZone או ב---worker_zone כדי להצמיד את העבודה לאזור מסוים. במקום זאת, צריך לציין --region ולהפעיל את Streaming Engine או את ארגון נתונים של Dataflow כדי להשתמש במיקום אזורי, שמשתמש בכל התחומים הזמינים באזור.

אפשר להריץ את הפקודה gcloud compute regions list כדי לראות רשימה של אזורים ושל אזורים זמינים לפריסת עובדים.

תרחישים נפוצים

בטבלה הבאה מפורטות המלצות לשימוש בתרחישים נפוצים.

תרחיש המלצה
אני רוצה להשתמש באזור נתמך ואין לי העדפה לגבי אזור בתוך האזור הזה. במקרה כזה, האזור הטוב ביותר נבחר אוטומטית על סמך הקיבולת הזמינה. משתמשים ב---region כדי לציין את האזור שבו נמצאת המשרה. כך אפשר לוודא ש-Dataflow ינהל את המשימה ויעבד את הנתונים באזור שצוין.
אני רוצה להימנע משגיאות שקשורות לזמינות של משאב של תחום מוגדר ומשגיאות שקשורות לעומס על מאגר משאבים. מציינים את --region ומפעילים את Streaming Engine או את ארגון נתונים של Dataflow כדי להשתמש במיקום אזורי בכל התחומים באזור. לא מומלץ לציין --workerZone או --worker_zone, כי זה מצמיד את העובדים לאזור יחיד.
אני צריך שהעיבוד של העובדים יתבצע באזור ספציפי באזור. צריך לציין גם את --region וגם את --workerZone או --worker_zone.

משתמשים ב---region כדי לציין את האזור שבו נמצאת המשרה. משתמשים באפשרות --workerZone או באפשרות --worker_zone כדי לציין את התחום הספציפי באזור הזה.