1. מבוא
Google Cloud Dataflow
עדכון אחרון: 2020 עד 26 במאי
מה זה Dataflow?
Dataflow הוא שירות מנוהל לביצוע מגוון רחב של תבניות עיבוד נתונים. בתיעוד באתר הזה מוסבר איך לפרוס צינורות עיבוד נתונים באצווה ובסטרימינג באמצעות Dataflow, כולל הוראות לשימוש בתכונות שירות.
Apache Beam SDK הוא מודל תכנות בקוד פתוח שמאפשר לפתח צינורות עיבוד נתונים באצווה וגם בסטרימינג. את צינורות עיבוד הנתונים שלכם יוצרים באמצעות תוכנית Apache Beam, ולאחר מכן מריצים אותם בשירות Dataflow. מסמכי התיעוד של Apache Beam כוללים מידע מושגים וחומר עזר מפורטים למודל התכנות Apache Beam, לערכות SDK ולעובדים אחרים.
ניתוח נתונים בסטרימינג במהירות
Dataflow להעלאת צינור נתונים בסטרימינג מהיר ופשוט, עם זמן אחזור קצר יותר.
לפשט את הפעולות והניהול
מאפשרים לצוותים להתמקד בתכנות במקום לנהל אשכולות שרתים, כי הגישה של Dataflow ללא שרת (serverless) מסירה מעומסי העבודה של הנדסת מערכות מידע.
הפחתת עלות הבעלות הכוללת
התאמה לעומס (autoscaling) של משאבים עם יכולות עיבוד באצווה שעברו אופטימיזציה לעלות, מאפשרת ל-Dataflow קיבולת כמעט בלתי מוגבלת לנהל עומסי עבודה עונתיים וקוצניים בלי להוציא יותר מדי כסף.
תכונות עיקריות
ניהול משאבים אוטומטי ואיזון עבודה דינמי
Dataflow מאפשר הקצאה וניהול של משאבי עיבוד באופן אוטומטי כדי למזער את זמן האחזור ולמקסם את השימוש, כך שלא תצטרכו להפעיל מכונות או לשמור אותן ידנית. חלוקת העבודה למחיצות היא גם אוטומטית ועברה אופטימיזציה לאיזון מחדש באופן דינמי. אין צורך לרדוף אחרי 'מפתחות חמים'. או לעבד מראש את נתוני הקלט.
התאמה לעומס (autoscaling) לרוחב
התאמה לעומס (autoscaling) של משאבי עובדים באופן אופקי לתפוקה אופטימלית, משפרת את המחיר הכולל לביצועים.
תמחור גמיש לתזמון משאבים לעיבוד ברצף (batch processing)
לצורך עיבוד עם גמישות בזמן תזמון משימות, כמו משימות במהלך לילה, התכונה 'תזמון משאבים גמיש' (FlexRS) מציעה מחיר נמוך יותר לעיבוד ברצף. המשימות הגמישות האלה מוצבות בתור ומבטיחה שהן יאוחזרו לביצוע בתוך חלון זמן של שש שעות.
מה תפעילי במסגרת התהליך הזה
ב-Codelab הזה, אתם תתחילו להשתמש ב-Dataflow SQL על ידי שליחת הצהרת SQL דרך ממשק המשתמש של Dataflow SQL. לאחר מכן תכירו את צינור עיבוד הנתונים שפועל באמצעות ממשק המשתמש למעקב של Dataflow.
מה תלמדו
- איך לשלוח הצהרת SQL כמשימה ב-Dataflow בממשק המשתמש של Dataflow SQL.
- איך לנווט ל-Dataflow Pipeline.
- לסקור את התרשים של Dataflow שנוצר באמצעות הצהרת SQL.
- עיון בפרטי המעקב שמתקבלים מהתרשים.
מה צריך להכין
- פרויקט ב-Google Cloud Platform שהחיוב מופעל בו.
- Google Cloud Dataflow ו-Google Cloud PubSub הופעלו.
2. בתהליך ההגדרה
ודאו שהפעלתם את Dataflow API ואת Cloud Pub/Sub API. אפשר לבדוק את זה דרך ה-API הדף 'שירותים'.
3. גישה לממשק המשתמש של Dataflow SQL
ממשק המשתמש של Dataflow SQL הוא הגדרה של ממשק המשתמש באינטרנט ב-BigQuery ליצירת משימות SQL ב-Dataflow. אפשר לגשת לממשק המשתמש של Dataflow SQL מממשק המשתמש של BigQuery באינטרנט.
- נכנסים לממשק המשתמש של BigQuery באינטרנט.
- עוברים למנוע Cloud Dataflow.
- לוחצים על התפריט הנפתח עוד ובוחרים באפשרות הגדרות שאילתה.
- בתפריט Query settings, בוחרים באפשרות Dataflow Engine.
- בהודעה שמופיעה אם ממשקי ה-API של Dataflow ו-Data Catalog לא מופעלים, לוחצים על Enable APIs.
- מקישים על שמירה.
אפשר לגשת לממשק המשתמש של Dataflow SQL גם מממשק המעקב של Dataflow.
- עוברים לממשק המעקב של Dataflow.
- לוחצים על יצירת משימה מ-SQL.
4. הרצת משימת Dataflow עם שאילתת SQL
כתיבת שאילתות SQL של Dataflow
שאילתות SQL של Dataflow משתמשות בתחביר של שאילתות SQL ב-Dataflow. תחביר השאילתות ב-Dataflow SQL דומה לתחביר BigQuery סטנדרטי של BigQuery. אפשר להשתמש בתוספים לסטרימינג של SQL ב-Dataflow כדי לצבור נתונים מעדכון מתמשך של מקורות Dataflow כמו Pub/Sub. לדוגמה, השאילתה הבאה סופרת את הנוסעים בזרם Pub/Sub של נסיעות במונית מדי דקה:
SELECT
TUMBLE_START('INTERVAL 1 MINUTE') as period_start,
SUM(passenger_count) AS pickup_count
FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`
WHERE
ride_status = "pickup"
GROUP BY
TUMBLE(event_timestamp, 'INTERVAL 1 MINUTE')
הרצת שאילתות SQL של Dataflow
כשמריצים שאילתת SQL של Dataflow, Dataflow הופך את השאילתה לצינור עיבוד נתונים של Apache Beam ומפעיל את צינור עיבוד הנתונים.
אפשר להריץ שאילתת Dataflow SQL באמצעות מסוף Cloud או כלי שורת הפקודה של Google Cloud.
כדי להריץ שאילתת SQL של Dataflow, עליכם להשתמש בממשק המשתמש של Dataflow SQL.
- נכנסים לממשק המשתמש של Dataflow SQL.
- מזינים את שאילתת ה-SQL של Dataflow שלמעלה בעורך השאילתות.
- לוחצים על 'יצירת משימה ב-Cloud Dataflow' כדי לפתוח חלונית של אפשרויות משימה.
- (אופציונלי) לוחצים על 'הצגת פרמטרים אופציונליים' ומעיינים ברשימה.
- בקטע 'יעד' בחלונית, בוחרים ב-BigQuery בתור סוג הפלט.
- בוחרים מזהה מערך נתונים ויוצרים את שם הטבלה "passengers_per_min"
- לוחצים על Create.
למידע נוסף על שליחת שאילתות על נתונים וכתיבת תוצאות של שאילתות SQL ב-Dataflow, ראו שימוש ב-Dataflow SQL.
5. בחינת המשימה בממשק המשתמש של Dataflow Monitoring
כשמפעילים את צינור עיבוד הנתונים באמצעות השירות המנוהל של Dataflow, אפשר לצפות במשימה הזו וכל משימה אחרת באמצעות ממשק המשתמש למעקב מבוסס-האינטרנט של Dataflow. ממשק המעקב מאפשר לכם לראות את המשימות שלכם ב-Dataflow ולקיים איתן אינטראקציה.
אפשר לגשת לממשק המעקב של Dataflow באמצעות מסוף Google Cloud. בממשק המעקב אפשר לראות את הפרטים הבאים:
- רשימה של כל המשימות שפועלות כרגע ב-Dataflow ומשימות שהופעלו בעבר ב-30 הימים האחרונים.
- ייצוג גרפי של כל צינור עיבוד נתונים.
- פרטים לגבי סטטוס המשימה, הביצוע וגרסת ה-SDK של המשימה.
- קישורים למידע על שירותי Google Cloud שמפעילים את צינור עיבוד הנתונים שלכם, כמו Compute Engine ו-Cloud Storage.
- שגיאות או אזהרות שמתרחשות במהלך עבודה.
אפשר לצפות בתרשימי מעקב אחרי משימות בממשק המעקב של Dataflow. בתרשימים האלה מוצגים מדדים במהלך המשימה בצינור עיבוד נתונים, וכוללים את המידע הבא:
- הרשאות גישה ברמת השלב שיעזרו לזהות אילו שלבים עשויים לגרום לעיכוב בצינור עיבוד הנתונים.
- מידע סטטיסטי שעלול לחשוף התנהגות חריגה.
- מדדי קלט/פלט (I/O) שיכולים לעזור לזהות צווארי בקבוק במקורות וב-sinks.
גישה לממשק המעקב של Dataflow
כדי לגשת לממשק המעקב של Dataflow, מבצעים את השלבים הבאים:
- נכנסים למסוף Cloud:
- בוחרים את הפרויקט ב-Google Cloud.
- לוחצים על התפריט בפינה הימנית העליונה.
- עוברים לקטע Big Data ולוחצים על Dataflow.
תופיע רשימה של משימות Dataflow עם הסטטוס שלהן.
רשימה של משימות Dataflow במסוף Cloud עם משימות במצב 'פועל', 'נכשל' ו'בהצלחה'.
למשימה יכולים להיות הסטטוסים הבאים:
- —: ממשק המשתמש למעקב עדיין לא קיבל סטטוס משירות Dataflow.
- פועלת: המשימה מתבצעת כרגע.
- לא התחילה: המשימה נוצרת, אבל המערכת צריכה זמן מה כדי להתכונן לפני ההפעלה.
- בהמתנה בתור: משימתFlexRS נמצאת בתור.
- ביטול...: המשימה מתבטלת.
- בוטלה: המשימה שהמשתמש ביטל.
- ריקון...: המשימה מתרוקנת.
- מרוקנים: המשתמש רוקן את העבודה.
- מתעדכן...: המשימה מתעדכנת.
- עודכן: המשתמש עדכן את המשימה.
- הצלחה: המשימה הסתיימה בהצלחה.
- נכשל: המשימה לא הושלמה.
מחפשים את המשימה באמצעות dfsql כחלק מתפקיד התפקיד, ולוחצים על שמו.
דף פרטי המשרה, שמכיל את הפרטים הבאים:
- תרשים משרות: הייצוג החזותי של צינור עיבוד הנתונים שלכם
- מדדי המשרה: מדדים לגבי ביצוע המשרה
- חלונית פרטי משימה: מידע תיאורי על צינור עיבוד הנתונים שלכם
- יומני משימות: יומנים שנוצרו על ידי שירות Dataflow ברמת המשימה
- יומני עובדים: יומנים שנוצרו על ידי שירות Dataflow ברמת העובד
- דיווח על שגיאות במשרות: תרשימים שמראים איפה התרחשו שגיאות בציר הזמן שנבחר וספירה של כל השגיאות שנרשמו ביומן
- בורר הזמן: כלי שמאפשר לכם לשנות את טווח הזמן של המדדים
בדף פרטי המשרה, אפשר להחליף את תצוגת המשרה באמצעות תרשים המשרה והכרטיסייה מדדי משרה.
- לוחצים על הכרטיסייה 'מדדי JOB' ומעיינים בתרשימים
6. הפסקת משימת ה-SQL של Dataflow
כדי להפסיק משימות ב-Dataflow SQL, משתמשים בפקודה ביטול. אין תמיכה בעצירה של משימת SQL ב-Dataflow עם Drain.