באזור Dataflow מאוחסנים ומטופלים מטא-נתונים לגבי משימת Dataflow, והוא משמש לפריסה ולשליטה בעובדי Dataflow.
שמות האזורים פועלים לפי מוסכמה סטנדרטית שמבוססת על שמות האזורים של Compute Engine.
לדוגמה, השם של האזור 'מרכז ארה"ב' הוא us-central1.
התכונה הזו זמינה בכל האזורים שבהם יש תמיכה ב-Dataflow. כדי לראות את המיקומים הזמינים, אפשר לקרוא את המאמר בנושא מיקומים של Dataflow.
הנחיות לבחירת אזור
כדי לבחור אזור מתאים למשרה, מומלץ לפעול לפי ההנחיות הבאות.
אבטחה ותאימות
יכול להיות שתצטרכו להגביל את העיבוד של משימות Dataflow לאזור גיאוגרפי ספציפי כדי לתמוך בצרכי האבטחה והתאימות של הפרויקט.
סביבת נתונים
כדי לצמצם את זמן האחזור ברשת ואת עלויות ההעברה ברשת, מומלץ להריץ משימת Dataflow מאותו אזור שבו נמצאים המקורות, היעדים, מיקומי קובצי הביניים ומיקומי הקבצים הזמניים. אם אתם משתמשים במקורות, ביעדים, במיקומי קבצים זמניים או במיקומי קבצים להעברה שנמצאים מחוץ לאזור של העבודה, יכול להיות שהנתונים שלכם יישלחו בין אזורים.
כשמריצים צינור, נתוני משתמשים מטופלים רק על ידי מאגר העובדים של Dataflow, והתנועה של הנתונים מוגבלת לנתיבי הרשת שמקשרים בין העובדים של Dataflow במאגר.
למרות שנתוני המשתמשים מטופלים באופן קפדני על ידי עובדי Dataflow באזור הגיאוגרפי שהוקצה להם, הודעות יומן של צינורות מאוחסנות ב-Cloud Logging, שזמין באופן גלובלי ב-Google Cloud.
אם אתם צריכים יותר שליטה על המיקום של הודעות יומן צינורות, אתם יכולים לבצע את הפעולות הבאות:
- יוצרים מסנן החרגה עבור יעד של נתבי יומנים ב-
_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 נמצא באזור הזה, יכול להיות שהמשימה תיכשל.
כדי להבין אם משימה נכשלה בגלל הפסקה זמנית בשירות אזורית, צריך לבדוק את אזורי השירות שבהם משתמשים משאבי ה-בק-אנד של המשימה. התכונה הזו זמינה רק למשימות של 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
Go
--worker_zone
בכל שאר המקרים, לא מומלץ לשנות את מיקום העובד. בטבלת התרחישים הנפוצים מופיעות המלצות לשימוש במצבים האלה.
מכיוון שהעבודה מוגדרת להפעלה באזור יחיד, יכול להיות שהפעולה תיכשל עם שגיאה של זמינות משאב של תחום מוגדר אם לא יהיו מספיק משאבי Compute Engine זמינים.
אפשר להריץ את הפקודה gcloud compute regions list כדי לראות רשימה של אזורים ושל אזורים זמינים לפריסת עובדים.
תרחישים נפוצים
בטבלה הבאה מפורטות המלצות לשימוש בתרחישים נפוצים.
| תרחיש | המלצה |
|---|---|
| אני רוצה להשתמש באזור נתמך ואין לי העדפה לגבי אזור בתוך האזור הזה. במקרה כזה, האזור הטוב ביותר נבחר אוטומטית על סמך הקיבולת הזמינה. | משתמשים ב---region כדי לציין אזור של משרה.
כך אפשר לוודא ש-Dataflow ינהל את המשימה ויעבד את הנתונים באזור שצוין. |
| אני צריך שהעיבוד של העובדים יתבצע באזור ספציפי באזור. | צריך לציין את --region ואת --workerZone או --worker_zone.משתמשים ב- |