אזורים של 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 עמידות יותר בפני שגיאות של זמינות משאבים אזורית, כי אפשר להמשיך ליצור עובדים באזורים אחרים עם זמינות שנותרה.
  • מהימנות משופרת: במקרה של כשל אזורי, עבודות Dataflow יכולות להמשיך לפעול, כי העובדים נוצרים מחדש באזורים אחרים.

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

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

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

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

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

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

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

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

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

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

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

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

ציון אזור

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

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

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

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

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

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

Java

--workerZone

Python

--worker_zone

המשך

--worker_zone

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

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

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

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

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

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

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