Analizowanie logów w BigQuery

BigQuery to zaawansowane narzędzie do przeprowadzania analiz. Możesz go używać do przechowywania logów przez dłuższy czas i wykonywania na danych zapytań podobnych do zapytań SQL. Aby używać BigQuery do analizowania, musisz jawnie kierować logi do BigQuery, jak opisano w następnej sekcji.

Kierowanie dzienników do BigQuery

  1. W eksploratorze logów utwórz filtr, który wyodrębnia logi Fleet Engine: Fleetengine.googleapis.com/Fleet.
  2. W panelu Wyniki zapytania kliknij menu Działania lub Więcej działań i wybierz Utwórz miejsce docelowe.
  3. Określ nazwę elementu docelowego (np. FleetEngineLogsSink). Kliknij Dalej.
  4. W sekcji Miejsce docelowe ujścia wybierz Zbiór danych BigQuery.
  5. W sekcji Wybierz zbiór danych BigQuery kliknij Utwórz nowy zbiór danych BigQuery.
  6. W oknie Utwórz zbiór danych wpisz Identyfikator zbioru danych.
  7. Pozostaw inne ustawienia bez zmian i kliknij Utwórz zbiór danych.
  8. Zaznacz opcję Użyj tabel podzielonych na partycje. Kliknij Dalej.
  9. Pozostaw sekcje Wybierz logi do uwzględnienia w ujściu i Wybierz logi, które mają być odfiltrowywane z ujścia bez zmian.
  10. Kliknij Utwórz ujście.

Dzienniki powinny zacząć wypełniać zbiór danych BigQuery, co może zająć trochę czasu. Zobacz też Przekazywanie logów do obsługiwanych miejsc docelowych.

Gdy zaczniesz kierować dane logów do BigQuery, kilka tabel w zbiorze danych FleetEngineLogs zostanie automatycznie wypełnionych – po jednej dla każdego typu logu:

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

Nazwy tabel mają ten wzór:

project_id.data_set.log_name

Jeśli na przykład projekt ma nazwę test-project, a zbiór danych nazywa się FleetEngineLogs, tabela CreateTrip ma nazwę:

test-project.FleetEngineLogs.fleetengine_googleapis_com_create_trip

Przykładowe zapytania BigQuery

Poniższe przykładowe zapytania pokazują, jak wyszukiwać różne wpisy w dzienniku w BigQuery.

Liczba logów CreateTrips pogrupowanych według godziny

    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

Liczba przystanków na pojazd na godzinę

    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

Na przykład to zapytanie może Ci powiedzieć, że w ciągu ostatniej godziny:

  • Pojazd A wykonał 10 przystanków w 12 godzinie i 8 przystanków w 13 godzinie.
  • Pojazd B wykonał 5 przystanków w 11 godzinie i 7 przystanków w 12 godzinie.
  • Pojazd C wykonał 12 przystanków w 13 godzinie i 9 przystanków w 14 godzinie.

Zobacz też Wyświetlanie logów kierowanych do BigQuery.

Integracja BigQuery z Looker Studio

BigQuery można zintegrować z narzędziami analityki biznesowej, aby tworzyć panele do analizy biznesowej. Zobacz Looker Studio.

Poniższy przykład pokazuje, jak utworzyć panel Looker Studio do wizualizacji przejazdów i ruchów pojazdów na mapie.

  1. Uruchom nowy panel Looker Studio i jako połączenie danych wybierz BigQuery.
  2. Wybierz Zapytanie niestandardowe i ręcznie wpisz lub wybierz projekt w Google Cloud, do którego ma być przypisana płatność.
  3. Wpisz w polu zapytania jedno z tych zapytań.

Przykładowe zapytanie dotyczące przejazdów na żądanie

    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`

Przykładowe zapytanie dotyczące zaplanowanych zadań

    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. Wybierz Typ wykresu jako Mapa bąbelkowa, a następnie wybierz pole lokalizacja.
  2. Kliknij Dodaj pole.
  3. Nazwij pole i dodaj tę formułę: CONCAT(lat, ",", lng).
  4. Ustaw typ na Geo->Latitude, Longitude (Geografia –> Szerokość i długość geograficzna).
  5. Do panelu możesz dodawać elementy sterujące, aby filtrować dane. Na przykład wybierz filtr Zakres dat.
  6. Edytuj pole zakresu dat, aby wybrać domyślny zakres dat.
  7. Możesz dodać dodatkowe elementy sterujące listą dla vehicle_id. Za pomocą tych elementów sterujących możesz wizualizować ruch pojazdu lub ruch w ramach podróży.

Przykładowe dane wyjściowe Looker Studio:

Przykładowe dane wyjściowe Looker Studio

Co dalej?

Aby zachować zgodność z zasadami przechowywania danych, zapoznaj się z artykułem Ograniczanie przechowywania logów.