האזור של Dataflow מאחסן ומטפל במטא-נתונים של משימת Dataflow, ופורס ומנהל את ה-workers של Dataflow.
שמות האזורים מבוססים על מוסכמה סטנדרטית שמבוססת על שמות האזורים של Compute Engine.
לדוגמה, השם של האזור 'מרכז ארה"ב' הוא us-central1.
התכונה הזו זמינה בכל האזורים שבהם יש תמיכה ב-Dataflow. כדי לראות את המיקומים הזמינים, קראו את המאמר מיקומים של Dataflow.
הנחיות לבחירת אזור
כדי לבחור אזור מתאים למשרה, אפשר להיעזר בהנחיות הבאות.
אבטחה ותאימות
יכול להיות שתצטרכו להגביל את העיבוד של משימות Dataflow לאזור גיאוגרפי ספציפי כדי לתמוך בצרכי האבטחה והתאימות של הפרויקט.
אחסון ועיבוד נתונים באופן מקומי
כדי לצמצם את זמן האחזור ברשת ואת עלויות ההעברה ברשת, מומלץ להריץ משימת Dataflow מאותו אזור שבו נמצאים המקורות, היעדים, המיקומים של קובצי ההכנה והמיקומים של הקבצים הזמניים. אם אתם משתמשים במקורות, בכיורים, במיקומים של קובצי Staging או במיקומים של קבצים זמניים שנמצאים מחוץ לאזור של המשימה, יכול להיות שהנתונים יישלחו בין אזורים.
במהלך הפעלת צינור, נתוני משתמשים מטופלים רק על ידי מאגר העובדים של Dataflow, והתנועה של הנתונים מוגבלת לנתיבי הרשת שמקשרים בין העובדים של Dataflow במאגר.
למרות שנתוני המשתמשים מטופלים אך ורק על ידי ה-workers של Dataflow באזור הגיאוגרפי שהוקצה להם, הודעות היומן של צינור עיבוד הנתונים מאוחסנות ב-Cloud Logging, שיש לו נוכחות גלובלית אחת ב-Google Cloud.
אם אתם רוצים יותר שליטה על המיקום של הודעות יומן צינורות, אתם יכולים:
- יוצרים מסנן החרגה
למאגר (sink) של נתבים ביומן
_Defaultכדי למנוע ייצוא של יומנים מ-Dataflow למאגר יומנים_Default. - יוצרים קטגוריה של יומנים באזור הרצוי.
- מגדירים כיור חדש לניתוב יומנים שמייצא את יומני Dataflow לקטגוריית היומנים החדשה.
מידע נוסף על הגדרת רישום ביומן זמין במאמרים סקירה כללית על ניתוב ואחסון וסקירה כללית על ניתוב יומנים.
הערות לגבי מקורות נפוצים של משימות ב-Dataflow:
- כשמשתמשים בקטגוריה של Cloud Storage כמקור, מומלץ לבצע פעולות קריאה באותו אזור שבו נמצאת הקטגוריה.
- נושאי Pub/Sub, כשמפרסמים אותם בנקודת הקצה הגלובלית של Pub/Sub, מאוחסנים באזור Google Cloud הכי קרוב. עם זאת, אפשר לשנות את מדיניות האחסון של הנושא לאזור ספציפי או לקבוצה של אזורים. באופן דומה, נושאים ב-Pub/Sub Lite תומכים רק באחסון אזורי.
חוסן והפרדה גיאוגרפית
יכול להיות שתרצו לבודד את פעולות Dataflow הרגילות שלכם מהפסקות שעלולות להתרחש באזורים גיאוגרפיים אחרים. או שאתם צריכים לתכנן אתרים חלופיים להמשכיות עסקית במקרה של אסון באזור כולו.
בתוכניות להתאוששות מאסון ולהמשכיות עסקית, מומלץ לכלול פרטים על מקורות ועל יעדים שמשמשים בעבודות Dataflow. Google Cloud צוות המכירות יעזור לכם לעמוד בדרישות הספציפיות שלכם.
מיקום אזורי
כברירת מחדל, האזור שאתם בוחרים מגדיר את מאגר העובדים של Dataflow כך שישתמש בכל האזורים הזמינים באזור. בחירת האזור מחושבת לכל עובד בזמן היצירה שלו, כדי לבצע אופטימיזציה לרכישת משאבים ולניצול של הזמנות לא מנוצלות.
היתרונות של מיקום אזורי:
- זמינות משופרת של משאבים: משימות Dataflow עמידות יותר בפני שגיאות שקשורות לזמינות של משאבים בתחום מוגדר, כי אפשר להמשיך ליצור עובדים בתחומים אחרים עם זמינות שנותרה.
- מהימנות משופרת: במקרה של כשל אזורי, עבודות 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.
הערכים בשדה הזה מתעדכנים לאורך משך העבודה, כי המשאבים שבהם נעשה שימוש בעבודה משתנים בזמן שהעבודה פועלת.
מיקום אוטומטי של אזורים
לגבי משימות שלא נתמכות במיקום אזורי, המערכת בוחרת באופן אוטומטי את האזור הטוב ביותר באזור, על סמך קיבולת האזור הזמינה בזמן בקשת יצירת המשימה. בחירת אזור אוטומטית עוזרת לוודא שה-workers של המשימה פועלים באזור שהכי מתאים למשימה.
מכיוון שהעבודה מוגדרת להפעלה בתחום (zone) יחיד, יכול להיות שהפעולה תיכשל עם שגיאה של זמינות משאב של תחום מוגדר אם לא יהיו מספיק משאבי Compute Engine זמינים.
אם הקיבולת באזור מסוים מוצתה, יכול להיות שתופיע השגיאה ZONE_RESOURCE_POOL_EXHAUSTED. אפשר להטמיע לולאת ניסיון חוזר כדי להתחיל את המשימה כשהמשאבים יהיו זמינים.
בנוסף, כשאזור לא זמין, יכול להיות שגם הקצה העורפי של הסטרימינג לא יהיה זמין, מה שעלול לגרום לאובדן נתונים.
כדי למנוע שגיאות שקשורות לזמינות של משאבים בתחום מוגדר ושגיאות שקשורות למאגר משאבים שמוצה, מומלץ להשתמש ב---region ולהפעיל את Streaming Engine או את ארגון הנתונים של Dataflow כדי לנצל את היתרונות של מיקום אזורי. מיקום אזורי מאפשר ל-Dataflow ליצור תהליכי Worker בכל האזורים הזמינים באזור מסוים, במקום להצמיד את העבודה לאזור אחד.
ציינו אזור
כדי לציין אזור למשימה, מגדירים את האפשרות --region לאחד מהאזורים הנתמכים.
האפשרות --region מבטלת את האזור שמוגדר כברירת מחדל בשרת המטא-נתונים, בלקוח המקומי או במשתני הסביבה.
ממשק שורת הפקודה של Dataflow תומך גם באפשרות --region לציון אזורים.
שינוי אזור או תחום העובד
כברירת מחדל, כששולחים עבודה עם האפשרות --region, העובדים מוקצים אוטומטית לאזורים ברחבי האזור או לאזור הטוב ביותר בתוך האזור, בהתאם לסוג העבודה.
אם רוצים לוודא שהעובדים של משימת Dataflow יפעלו רק באזור ספציפי, אפשר לציין את האזור באמצעות אפשרות הצינור הבאה. דפוס השימוש הזה לא נפוץ במשימות של Dataflow.
האפשרות הזו שולטת רק באזור שבו משתמשים בעובדי Dataflow. הוא לא חל על משאבי בקאנד. יכול להיות שמשאבי הקצה העורפי ייווצרו בכל אזור בתוך אזור המשימה.
Java
--workerZone
Python
--worker_zone
המשך
--worker_zone
בכל המקרים האחרים, אנחנו לא ממליצים לשנות את מיקום העובד. בטבלת התרחישים הנפוצים מפורטות המלצות לשימוש במצבים האלה.
מכיוון שהמשימה מוגדרת לפעול באזור אחד, אם אין מספיק משאבים זמינים של Compute Engine, יכול להיות שהפעולה תיכשל ותופיע השגיאה zonal resource availability. אם נתקלתם בשגיאות שקשורות לזמינות של משאבים של תחום מוגדר או בשגיאות שקשורות למאגר משאבים שמוצה, אל תשתמשו ב---workerZone או ב---worker_zone כדי להצמיד את המשימה לתחום ספציפי. במקום זאת, ציינו את --region והפעילו את Streaming Engine או את ארגון הנתונים של Dataflow כדי להשתמש במיקום אזורי, שמשתמש בכל האזורים הזמינים בתוך האזור.
אפשר להריץ את הפקודה gcloud compute regions list כדי לראות רשימה של אזורים ואזורים זמינים לפריסת עובדים.
תרחישים נפוצים
בטבלה הבאה מפורטות המלצות לשימוש בתרחישים נפוצים.
| תרחיש | המלצה |
|---|---|
| אני רוצה להשתמש באזור נתמך ואין לי העדפה לגבי אזור בתוך האזור הזה. במקרה כזה, האזור הטוב ביותר נבחר אוטומטית על סמך הקיבולת הזמינה. | משתמשים בפרמטר --region כדי לציין את האזור שבו נמצאת המשרה.
כך אפשר לוודא ש-Dataflow מנהל את המשימה ומעבד את הנתונים באזור שצוין. |
| אני רוצה להימנע משגיאות שקשורות לזמינות של משאבים של תחום מוגדר ומשגיאות שקשורות למאגר משאבים שמוצה. | מציינים את --region ומפעילים את Streaming Engine או את ארגון נתונים של Dataflow כדי להשתמש במיקום אזורי בכל התחומים (zones) באזור. לא כדאי לציין --workerZone או
--worker_zone, כי זה מצמיד את מופעי ה-worker לאזור יחיד. |
| אני צריך שהעיבוד של העובדים יתבצע באזור ספציפי באזור. | צריך לציין גם את --region וגם את --workerZone או את --worker_zone.משתמשים ב- |