ניתוח יומנים באמצעות BigQuery

‫BigQuery הוא כלי רב עוצמה לביצוע ניתוחים. אפשר להשתמש בו כדי לאחסן יומנים לטווח ארוך ולהריץ שאילתות דמויות SQL על הנתונים. כדי להשתמש ב-BigQuery לניתוח, צריך להפנות את היומנים ל-BigQuery באופן מפורש, כמו שמתואר בקטע הבא.

העברת יומנים ל-BigQuery

  1. ב-Logs Explorer, יוצרים מסנן שמבודד את היומנים של Fleet Engine: Fleetengine.googleapis.com/Fleet.
  2. בחלונית Query Results, לוחצים על התפריט Actions או More Actions ובוחרים באפשרות Create Sink.
  3. מציינים שם ליעד (לדוגמה, FleetEngineLogsSink). לוחצים על Next.
  4. בSink Destination (יעד להעברה), בוחרים באפשרות BigQuery dataset (מערך נתונים ב-BigQuery).
  5. בקטע בחירת מערך נתונים ב-BigQuery, בוחרים באפשרות יצירת מערך נתונים חדש ב-BigQuery.
  6. בתיבת הדו-שיח Create dataset, מזינים Dataset ID.
  7. משאירים את כל שאר ההגדרות כמו שהן ולוחצים על יצירת מערך נתונים.
  8. מסמנים את התיבה Use partitioned tables (שימוש בטבלאות עם חלוקה למחיצות). לוחצים על Next.
  9. משאירים את האפשרויות Choose logs to include in sink ו-Choose logs to filter out of sink כמו שהן.
  10. לוחצים על Create Sink.

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

אחרי שמגדירים ניתוב של נתוני יומן ל-BigQuery, כמה טבלאות במערך הנתונים FleetEngineLogs מתמלאות באופן אוטומטי, אחת לכל סוג יומן:

  • CreateVehicle
  • GetVehicle
  • ListVehicles
  • SearchVehicles
  • UpdateVehicle
  • CreateTrip
  • GetTrip
  • UpdateTrip
  • ListTrips

שמות הטבלאות נקבעים לפי התבנית הבאה:

project_id.data_set.log_name

לדוגמה, אם שם הפרויקט הוא test-project ושם מערך הנתונים הוא FleetEngineLogs, שם הטבלה CreateTrip יהיה:

test-project.FleetEngineLogs.fleetengine_googleapis_com_create_trip

דוגמאות לשאילתות ב-BigQuery

בדוגמאות הבאות לשאילתות אפשר לראות איך מחפשים רשומות שונות ביומן ב-BigQuery.

מספר היומנים של CreateTrips שמקובצים לפי שעה

    SELECT TIMESTAMP_TRUNC(timestamp, HOUR) as hour,
           count(*) as num_trips_created
    FROM
    `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_create_trip`
    GROUP BY hour
    ORDER by hour

מספר העצירות לכל רכב בשעה

    SELECT
      jsonpayload_v1_updatevehiclelog.request.vehicleid AS vehicle,
      TIMESTAMP_TRUNC(timestamp, HOUR) AS hour,
      COUNT(*) AS num_stops
    FROM
      `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update__vehicle`
    WHERE
    ARRAY_LENGTH(jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments) > 0
    AND jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments[
    OFFSET
    (0)].stop.state = 'VEHICLE_STOP_STATE_LOG_ARRIVED'
    GROUP BY
    1,
    2
    ORDER BY
    2

לדוגמה, השאילתה הזו יכולה להראות לכם שבשעה האחרונה:

  • רכב א' השלים 10 עצירות בשעה 12 ו-8 עצירות בשעה 13.
  • רכב ב' השלים 5 עצירות בשעה 11 ו-7 עצירות בשעה 12.
  • רכב ג' השלים 12 עצירות בשעה 13 ו-9 עצירות בשעה 14.

אפשר גם לעיין במאמר בנושא הצגת יומנים שמועברים ל-BigQuery.

שילוב של BigQuery עם Looker Studio

אפשר לשלב את BigQuery עם כלי בינה עסקית (BI) כדי ליצור לוחות בקרה לניתוח עסקי. מידע נוסף על Looker Studio

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

  1. מפעילים לוח בקרה חדש של Looker Studio ובוחרים באפשרות BigQuery כחיבור הנתונים.
  2. בוחרים באפשרות שאילתה בהתאמה אישית ומזינים ידנית את פרויקט Cloud שאליו צריך לחייב את העלות, או בוחרים אותו.
  3. מזינים אחת מהשאילתות הבאות בתיבת השאילתה.

שאילתה לדוגמה של נסיעות לפי דרישה

    SELECT
     timestamp,
     labels.vehicle_id,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.latitude AS lat,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.longitude AS lng
    FROM
    `ProjectId.TableName.fleetengine_googleapis_com_update_vehicle`

שאילתה לדוגמה של משימות מתוזמנות

    SELECT
    labels.delivery_vehicle_id,
    jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.longitude as lat, jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.latitude as lng
    FROM `ProjectID.TableName.fleetengine_googleapis_com_update_delivery_vehicle`
  1. בוחרים באפשרות Chart Type as Bubble Map (סוג התרשים הוא מפת בועות) ואז בוחרים בשדה location (מיקום).
  2. לוחצים על הוספת שדה.
  3. נותנים שם לשדה ומוסיפים את הנוסחה הבאה: CONCAT(lat, ",", lng).
  4. מגדירים את הסוג Geo->Latitude, Longitude.
  5. אפשר להוסיף אמצעי בקרה ללוח הבקרה כדי לסנן את הנתונים. לדוגמה, בוחרים במסנן Date-range.
  6. עורכים את התיבה 'טווח תאריכים' כדי לבחור טווח תאריכים שיוגדר כברירת מחדל.
  7. אפשר להוסיף עוד אמצעי בקרה של תפריט נפתח בשביל vehicle_id. באמצעות אמצעי הבקרה האלה, אפשר לראות את תנועת הרכב או את התנועה במהלך הנסיעה.

פלט לדוגמה ב-Looker Studio:

פלט לדוגמה של Looker Studio

המאמרים הבאים

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