תיעוד הבקשות והתשובות של ה-API

Fleet Engine מציע שירות רישום פשוט, שמאפשר לשמור את בקשות ה-API ואת מטענים ייעודיים (payloads) של תגובות. בעזרת היומנים האלה תוכלו לנפות באגים בשילוב, ליצור מדדי מעקב ולנתח דפוסי תנועה.

Fleet Engine שולח את היומנים כיומני פלטפורמה ל-Cloud Logging, כדי שתוכלו לגשת אליהם באמצעות כלי Cloud Logging.

מה יומני Fleet Engine

Fleet Engine שולח מספר קטעי מידע ל-Cloud Logging, כמו:

  • כל הבקשות והתשובות ל-REST ול-gRPC שאומתו
  • תשובות לשגיאות
  • בקשות, תגובות והודעות שגיאה משיחות שיזמו ה-SDK של Drive ל-Flet Engine.
  • פיצול יומנים לסוגי יומנים נתמכים:

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

שימוש בקטגוריות יומן מוגבלות ומוגדרות כברירת מחדל כדי לעמוד בדרישות של מדיניות שמירת הנתונים

השימוש בקטגוריות 'מוגבל' ו'ברירת מחדל' מבטיח תמונה ברורה של השימוש המוגבל והבלתי מוגבל. בהתאם לתנאים הספציפיים לשירות ניידות, ייתכן שחלק מנתוני היומן ש-Flet Engine שולח ל-Google Maps Platform יישמרו לפרק זמן מוגבל בלבד. כדי לוודא שאתם שומרים נתונים מוגבלים רק למשך הזמן המותר, יש לסמן נתונים כאלה כ-TOS_מוגבל (Fleet Engine כבר עושה זאת) ולרשום אותם בקטגוריה ייעודית בשם 'מוגבל'.

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

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

שולחים את כל נתוני היומן הבלתי מוגבלים לקטגוריה 'ברירת מחדל', שבה הם יכולים להישאר ללא הגבלת זמן.

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

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

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

הפעלת Cloud Logging

Fleet Engine מפעיל באופן אוטומטי יומני ברירת מחדל ללקוחות חדשים של Mobility, החל מפרויקטים שנוצרו ב-10 בפברואר 2022. כדי לוודא שהרישום ביומן מופעל, אפשר להשתמש בשאילתה הבאה ב-Logs Explorer :

resource.type:"fleetengine.googleapis.com"

אם לא מופיעים יומנים לשאילתה הזו, יכול להיות ש-Cloud Logging לא הופעל בפרויקט שלכם. אם רוצים להפעיל את התכונה, צריך לפנות לתמיכה.

הפעלת יומנים לשימוש מוגבל

יומנים לשימוש מוגבל מופעלים לפי בקשה. על מנת להפעיל את היומנים האלה לפרויקט Google Cloud:

הכנת הפרויקט לקבלת יומנים לשימוש מוגבל

  1. במסוף Google Cloud, פותחים את הדף Log Router.
  2. מעדכנים את קטגוריית הרישום ביומן ברירת המחדל כדי להחריג יומנים בשימוש מוגבל.
    1. בוחרים את _default Logging bucket ולאחר מכן בוחרים Edit sink.
    2. בקטע "Choose logs to filter out of sink", לוחצים על הלחצן Add [הוספת החרגה]:
      1. שם מסנן ההחרגה: ExcludeRestrictedLogs
      2. מסנן החרגה: labels.restriction="TOS_פיםED"
    3. לוחצים על 'עדכון sink'.
  3. כדי לאחסן את היומנים לשימוש מוגבל, מעדכנים את קטגוריית הרישום ביומן המוגבל.
    1. בדף Log Router, בוחרים באפשרות Create sink.
    2. יוצרים sink עם ההגדרות הבאות:
      1. פרטי sink:
        1. שם: RestrictedLogs
        2. תיאור: יומנים לשימוש מוגבל של Routes Fleet Engine
      2. יעד sink:
        1. שירות Sink: קטגוריית רישום ביומן
        2. בחירת קטגוריית יומן: יצירת קטגוריית יומן חדשה
          1. שם: מוגבל
          2. תיאור: מכיל יומנים לשימוש מוגבל של Fleet Engine
        3. תקופת שמירה: 30 ימים
          1. הערה: תקופת השמירה לא יכולה לחרוג מ-30 ימים.
      3. יומנים להכללה ב-sink: להשאיר ריק
      4. יומנים לסינון מתוך sink: לוחצים על הוספת החרגה
        1. שם מסנן ההחרגה: excludeNonRestrictedLogs
        2. מסנן החרגה: NOT (resource.type = "fleetengine.googleapis.com/Fleet" OR resource.type = "fleetengine.googleapis.com/deliveryFleet") NOT (labels.restriction = "TOS_RestrictED")
      5. לוחצים על 'יצירת sink'.

כדי להפעיל יומנים לשימוש מוגבל, צריך לפנות לתמיכה

אחרי כן תוכלו לפנות לתמיכה ולספק את הפרטים הבאים בבקשת התמיכה:

  1. מזהי הפרויקטים שרוצים להפעיל:
  2. כתובת האימייל של האדם שמבקש את השינוי:
    1. הערה: לאדם הזה צריכה להיות גישת עריכה לפרויקטים ב-Google Cloud שברשימה.
  3. הפעלת תוכן של מפות Google לשימוש מוגבל ב-Cloud Logging מבטאת את הסכמתך לפעול בהתאם לתנאים של הפלטפורמה של מפות Google ולתנאים הספציפיים של שירות התחבורה, כולל שמירה במטמון ודרישות לשימוש מורשה בהקשר לתוכן של מפות Google. כן / לא

כשצוות התמיכה יקבל את הבקשה, יישלח אישור על כך שהופעל הרישום ביומן בפרויקט

פיצול יומני ענן

מגבלת הגודל של יומנים נכנסים ב-Cloud Logging ל-256KB. השירות מסיר יומנים מעבר לסף הזה. כדי להבטיח שב-Cloud Logging יישארו יומנים גדולים, Fleet Engine יכול לפצל אותם לסדרה של יומנים מתחת לסף של 256KB. ליומנים כאלה יש קידומת insertId משותפת, כדי לציין את הסדר שבו השירות פיצל את היומן הקטן יותר מהיומן המקורי בגודל גדול. לאחר מכן תוכלו להצטרף אליהם מחדש יחד בהתאם לinsertId שלהם.

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

המבנה של יומן הביקורת זהה למבנה שמצוין במדריך לרשומות מפוצלות ביומן הביקורת ליומני הביקורת של Cloud. ההבדל העיקרי במקרה של יומנים מפוצלים ב-Flet Logging הוא שהפיצול מתבצע בשדה jsonPayload ולא בשדה protoPayload. עיינו בחלוקה לדוגמה שמוצגת בקטע הבא.

סוגי יומנים נתמכים

Fleet Engine תומך בפיצול יומנים רק לסוגי היומנים הבאים שגודל היומן שלהם גדול מ-256KB:

דוגמה למבנה של יומן מפוצל

// First Split Log
{
  // insertId appended with an increasing number
  "insertId": "ABCDE-1",
  "jsonPayload": {
    "response": {
      "matches": [
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-0",
            // ...
          }
        },
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-1",
            // ...
            }
        }
      ]
    },
    "@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
    "request": {
      "searchTripTypes": [
        "EXCLUSIVE_TRIP"
      ],
      "pickupPoint": {},
      "count": 50,
      "pickupRadiusMeters": 400,
      "minimumCapacity": 1,
      "matchOrderBy": "PICKUP_POINT_ETA",
      "vehicleTypes": [
        {
          "vehicleCategory": "TAXI"
        }
      ]
    }
  },
  "resource": {
    "type": "fleetengine.googleapis.com/Fleet",
    "labels": {
      "resource_container": "projects/test-123",
      "location": "global"
    }
  },
  // Same timestamp
  "timestamp": "2024-02-06T22:48:50.620713Z",
  "logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
  "receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
  "split": {
    // UID for this logical log entry (same across splits)
    "uid": "ABCDE",
    "totalSplits": 2
  }
}
// Second Split Log
{
  // insertId appended with an increasing number
  "insertId": "ABCDE-2",
  "jsonPayload": {
    "response": {
      "matches": [
        {},{} // Previous matches appear as empty objects
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-2",
            // ...
          },
        }
      ]
    },
    "@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
    "request": {
      "searchTripTypes": [
        "EXCLUSIVE_TRIP"
      ],
      "pickupPoint": {},
      "count": 50,
      "pickupRadiusMeters": 400,
      "minimumCapacity": 1,
      "matchOrderBy": "PICKUP_POINT_ETA",
      "vehicleTypes": [
        {
          "vehicleCategory": "TAXI"
        }
      ]
    }
  },
  "resource": {
    "type": "fleetengine.googleapis.com/Fleet",
    "labels": {
      "resource_container": "projects/test-123",
      "location": "global"
    }
  },
  // Same timestamp
  "timestamp": "2024-02-06T22:48:50.620713Z",
  "logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
  "receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
  "split": {
    // UID for this logical log entry (same across splits)
    "uid": "ABCDE",
    // Subsequent logs after the original will have a zero based index
    "index": 1,
    "totalSplits": 2
  }
}

גישה ליומנים

יומני Cloud בנויים סביב הפורמט LogEntry. Fleet Engine שולח יומנים ל-Cloud Logging כאשר resource.type של LogEntry מוגדר ל-fleetengine.googleapis.com. אפשר להשתמש ב-Logs Explorer כדי לכתוב שאילתות להצגת היומנים.

לדוגמה, כדי להציג את כל RPCs ל-Feet Engine שהחזירו שגיאה, משתמשים בשאילתה הבאה של Logs Explorer:

resource.type:"fleetengine.googleapis.com"
severity=ERROR

כדי להציג יומנים של RPCs שבוצעו ל-method UpdateVehicle בפרויקט example-project-id, משתמשים בשאילתה הבאה ב-Logs Explorer:

logName="projects/project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle"

בדוגמה הבאה מוצג LogEntry עבור היומן UpdateVehicle. הבקשה והתגובה ל-RPC נמצאות בשדה jsonPayload:

    {
      "insertId": "c6b85fbc927343fc8a85338c57a65733",
      "jsonPayload": {
        "request": {
          "header": {4},
          "updateMask": "deviceSettings",
          "vehicleId": "uniqueVehicleId",
          "vehicle": {2}
        },
        "response": {
          "name": "providers/example-project-id/vehicles/uniqueVehicleId",
          "availableCapacity": 2,
          "state": "VEHICLE_STATE_OFFLINE",
          "maximumCapacity": 2,
          "vehicleType": {1},
          "supportedTrips": {1}
        },
        "@type": "type.googleapis.com/maps.fleetengine.v1.UpdateVehicleLog"
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "labels": {2},
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

אם מוחזרת שגיאת RPC, מתבצע ניקוי של השדה responseVehicle והשדה errorResponse מוגדר ומאוכלס בתוך jsonPayload:

    {
      "insertId": "c6b85fbc927343fc8a85338c57a65733",
      "jsonPayload": {
        "errorResponse": {
          "httpStatusCode": 404,
          "code": "NOT_FOUND",
          "message": "No entity with id invalidVehicleId exists"
        },
        "@type": "type.googleapis.com/maps.fleetengine.v1.UpdateVehicleLog",
        "request": {
          "vehicle": {3},
          "updateMask": "deviceSettings",
          "vehicleId": "fakeVehicleId",
          "header": {4}
        }
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "severity": "ERROR",
      "labels": {2}
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

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

ניהול עלויות הרישום ביומן

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

צמצום השימוש ברישום ביומן

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

ייצוא או ניתוב של יומנים

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

כדי להימנע מחיובים, כדאי להשבית את הטמעת הנתונים ביומן

עדיף לצמצם את השימוש ברישום ביומן, או לייצא או לנתב יומנים, על פני השבתה של הטמעת הנתונים ביומן. עם זאת, אם אתם לא מתכוונים להשתמש ביומנים של Fleet Engine, תוכלו להשבית את הטמעת הנתונים כדי להימנע מחיובים אפשריים ב-Cloud Logging. כברירת מחדל, היומנים של Flet Engine מנותבים אל קטגוריית היומן _Default.

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

gcloud logging sinks update _Default \
--log-filter='NOT LOG_ID("cloudaudit.googleapis.com/activity") \
AND NOT LOG_ID("externalaudit.googleapis.com/activity") \
AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") \
AND NOT LOG_ID("externalaudit.googleapis.com/system_event") \
AND NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") \
AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency") \
AND NOT resource.type:"fleetengine.googleapis.com"''

למידע נוסף, תוכלו לקרוא את המאמרים החרגות ב-Cloud Logging והחרגת יומנים. ייצוא של Cloud Logging וייצוא יומנים.

שימוש ב-Logs Explorer

כדי להשתמש ב-Logs Explorer, פותחים את Cloud Console, בוחרים באפשרות Logging ולאחר מכן באפשרות Logs Explorer. כדי לראות רשימה של כל היומנים הזמינים של Fleet Engine, לוחצים על סוג המשאב Fleet Engine. חלק מיומני ה-API מסומנים במזהה נסיעה ובמזהה רכב. אפשר להשתמש בתוויות האלה כדי לבחור יומנים לנסיעות או לרכבים שמעניינים אתכם.

תוויות יומן

סינון היומנים לפי מזהה הרכב

ב-Logs Explorer, אפשר להשתמש בשאילתה הבאה כדי להגביל את היומנים לרכב ספציפי:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.vehicle_id="vehicle_id"

סינון הרכב

סינון היומנים לפי מזהה הנסיעה

ב-Logs Explorer, אפשר להשתמש בשאילתה הבאה כדי להגביל את היומנים לנסיעה ספציפית:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.trip_id=~"trip_id"

סינון יומנים של כלי רכב בתקופה ספציפית

ב-Logs Explorer, ניתן לך להשתמש בשאילתה הבאה כדי להגביל יומנים אלה של כלי רכב במהלך תקופת זמן ספציפית:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.vehicle_id="vehicle_id"
    timestamp>="2020-09-24T20:00:00.000Z"
    timestamp<"2020-09-24T21:00:00.000Z"

דוגמה למדדים מבוססי-יומן

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

  1. ב-Cloud Console, בוחרים באפשרות Logging ולאחר מכן Logs Explorer כדי לפתוח את Logs Explorer. לאחר מכן החל את המסנן הבא:

    resource.type="audited_resource"
    resource.labels.method="maps.fleetengine.v1.TripService.ReportBillableTrip"
    
  2. בחלונית Query Results, בוחרים בתפריט הנפתח Actions ואז בוחרים באפשרות Create Metric.

    יצירת מדד

  3. בתיבת הדו-שיח 'עורך המדדים':

    • מציינים את שם המדד (לדוגמה, billable_trips).
    • מציינים תיאור של המדד (לדוגמה, מספר שיחות הנסיעה לחיוב).
    • משאירים את האפשרות Units (יחידות) ריקה. _ משאירים את האפשרות Type כ-Counter.

    לאחר מכן לוחצים על הלחצן יצירת מדד.

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

  5. בוחרים את התפריט הנפתח האנכי מצד ימין של המדד החדש, ואז בוחרים באפשרות View in Metrics Explorer.

    הצגת המדד

  6. בחלונית השמאלית בקטע Build Your Query, מגדירים את Resource Type כ-Fleet Engine ומחפשים את המדד billingable_trips.

    מדד חיפוש

    התרשים מימין מציג את קצב הקריאות של billing_trips.

שימוש ב-BigQuery

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

ניתוב יומנים ל-BigQuery

כדי לנצל את BigQuery, צריך לנתב את היומנים למאגר נתונים של BigQuery באופן הבא:

  1. ב-Cloud Console, בוחרים באפשרות Logging ולאחר מכן Logs Explorer.

  2. יצירת מסנן שמבודד את היומנים של Fleet Engine. ב-Logs Field Explorer, בחר את סוג המשאב Fleetengine.googleapis.com/Fleet.

    יצירת מסנן

  3. בחלונית Query Results, לוחצים על התפריט הנפתח Actions ובוחרים באפשרות Create Sink.

    יצירת sink

  4. בתיבת הדו-שיח Select sink service, בוחרים באפשרות BigQuery dataset.

    בחירת
כיור

  5. בתיבת הדו-שיח 'עריכת Sink', מציינים את האפשרויות הבאות:

    • מציינים את שם ה-sink (לדוגמה, FleetEngineLogsSink).
    • משאירים את Sink Service כ-BigQuery.
    • בוחרים באפשרות שימוש בטבלאות מחולקות למחיצות. זה ישפר את ביצועי השאילתות.
    • בקטע Sink destination (יעד Sink), בוחרים באפשרות Create New BigQuery Dataset (יצירת מערך נתונים חדש של BigQuery) ואז מציינים את השם של מערך הנתונים ב-BigQuery (למשל, FleetEngineLogs).
    • לוחצים על הלחצן יצירת Sink.

    עריכת
    sink

עכשיו היומנים אמורים להתחיל לאכלס את מערך הנתונים ב-BigQuery. אפשר לראות את הנתונים בקטע BigQuery ב-Cloud Console.

הקטע של 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

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

בקטע הזה מוצגות דוגמאות לשאילתות שאפשר ליצור.

נסיעות שנוצרו בשעה

בשאילתה הבאה סופרים את מספר יומני 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

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

בשאילתה הבאה המערכת יוצרת את מספר העצירות שכלי רכב מסוים ביצע, בחלוקה לפי שעה.

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

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

    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
    

מרכזי בקרה של Data Studio

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

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

  1. משיקים מרכז בקרה חדש של Datastudio ובוחרים ב-BigQuery כחיבור הנתונים.

    חיבור
נתונים

  2. בוחרים באפשרות Custom Query (שאילתה מותאמת אישית) ואז בוחרים את הפרויקט ב-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.FleetEngineLogs.fleetengine_googleapis_com_update_vehicle`
    
  4. בוחרים באפשרות 'סוג תרשים' בתור מפת הבועה, ולאחר מכן בוחרים את שדה המיקום.

    סוג
התרשים

  5. בוחרים באפשרות יצירת שדה.

    יצירת
שדה

  6. נותנים שם לשדה ומוסיפים את הנוסחה הבאה: CONCAT(lat, ",", lng).

    לאחר מכן מגדירים את הסוג לגיאו->קו רוחב, קו אורך.

    סוג ההגדרה

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

    הוספת פקדים

  8. עורכים את התיבה של טווח התאריכים כדי לבחור טווח תאריכים שיוגדר כברירת מחדל.

    טווח
תאריכים

  9. אפשר להוסיף עוד פקדים ברשימה הנפתחת של הערך Automotive_id.

    רשימה נפתחת

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