BI Engine überwachen

BigQuery BI Engine arbeitet mit Google Cloud-Diensten zusammen, um die BI Engine-Nutzung zu überwachen und Fehler zu beheben. Looker Studio mit BigQuery BI Engine-Beschleunigung wird vom BigQuery-Monitoring vollständig unterstützt, einschließlich INFORMATION_SCHEMA, Ausführungsgrafik und Cloud Monitoring-Messwerte.

Cloud Monitoring

BigQuery BI Engine lässt sich in Cloud Monitoring integrieren, sodass Sie die aggregierte BI Engine-Nutzung in Zusammenfassungen überwachen und Warnungen konfigurieren können. Informationen zur Verwendung von Monitoring zum Erstellen von Dashboards für Ihre BI Engine-Messwerten finden Sie unter Diagramme erstellen in der Monitoring-Dokumentation.

Die folgenden Messwerte werden für BigQuery BI Engine bereitgestellt:

Ressource Messwert Details
BigQuery-Projekt Reservierung Gesamtbytes Gesamtkapazität, die einem Google Cloud-Projekt zugewiesen ist
BigQuery-Projekt Reservierung von benutzten Bytes Gesamtkapazität, die in einem Google Cloud-Projekt verwendet wird
BigQuery-Projekt Im Cache gespeicherte Bytes von BI Engine-Top-Tabellen Cache-Nutzung pro Tabelle. Dieser Messwert zeigt die obersten N Tabellen pro Region-Berichtsnutzung an.

Sie können Cloud Monitoring verwenden, um den Traffic für Looker Studio-Datenquellen aufzurufen, die von BI Engine im Cache gespeichert wurden. Eine vollständige Liste der verfügbaren Google Cloud-Messwerte finden Sie unter Google Cloud-Messwerte.

Die native Integration von Looker Studio BigQuery bietet keine Messwerte pro Modell. Stattdessen werden die Datenquellen- und Berichts-IDs in den INFORMATION_SCHEMA-Tabellen mit BigQuery API-Monitoring bereitgestellt.

Abfragestatistiken für BI Engine

In diesem Abschnitt wird erläutert, wie Sie Abfragestatistiken finden, mit denen Sie die Verwendung von BI Engine überwachen, diagnostizieren und beheben können.

BI Engine-Beschleunigungsmodi

Wenn die BI Engine-Beschleunigung aktiviert ist, kann Ihre Abfrage in einem der folgenden vier Modi ausgeführt werden:

BI_ENGINE_DISABLED
BI Engine deaktiviert die Beschleunigung. biEngineReasons gibt einen detaillierteren Grund an. Die Abfrage wurde mit der BigQuery-Ausführungs-Engine ausgeführt.
PARTIAL_INPUT
Ein Teil der Abfrageeingabe wurde mit BI Engine beschleunigt. Wie unter Abfrageoptimierung und -beschleunigung beschrieben, wird ein Abfrageplan im Allgemeinen in mehrere Eingabephasen unterteilt. BI Engine unterstützt die gängigen Typen von Unterabfragemustern, die normalerweise in Dashboards verwendet werden. Wenn die Abfrage aus mehreren Eingabephasen besteht, von denen nur wenige unter die unterstützten Anwendungsfälle fallen, führt BI Engine ohne Beschleunigung die nicht unterstützten Phasen in der normalen BigQuery-Engine aus. In diesem Fall gibt BI Engine einen PARTIAL-Beschleunigungscode zurück und verwendet biEngineReasons, um den Grund für die Beschleunigung anderer Eingabephasen zu füllen.
 FULL_INPUT
 
Alle Eingabephasen der Abfrage wurden mit BI Engine beschleunigt.
 FULL_QUERY
 
Die gesamte Abfrage wurde mit BI Engine beschleunigt.

BigQuery API-Jobstatistiken aufrufen

Detaillierte Statistiken zu BI Engine sind über die BigQuery API verfügbar.

Führen Sie folgenden Befehl des bq-Befehlszeilentools aus, um die Statistiken abzurufen, die mit beschleunigten BI Engine-Abfragen verknüpft sind:

bq show --format=prettyjson -j job_id

Wenn das Projekt für die BI Engine-Beschleunigung aktiviert ist, erzeugt die Ausgabe das neue Feld biEngineStatistics. Hier ist ein Beispiel für einen Jobbericht:

 "statistics": {
    "creationTime": "1602175128902",
    "endTime": "1602175130700",
    "query": {
      "biEngineStatistics": {
        "biEngineMode": "DISABLED",
        "biEngineReasons": [
          {
            "code": "UNSUPPORTED_SQL_TEXT",
            "message": "Detected unsupported join type"
          }
        ]
      },

Weitere Informationen zum Feld BiEngineStatistics finden Sie in der Jobreferenz.

INFORMATION_SCHEMA-Statistiken für BigQuery

Die BI Engine-Beschleunigungsstatistiken sind in den BigQuery INFORMATION_SCHEMA-Ansichten als Teil der INFORMATION_SCHEMA.JOBS_BY_*-Ansichten in der Spalte bi_engine_statistics enthalten. Diese Abfrage gibt beispielsweise die bi_engine_statistics für alle Jobs der aktuellen Projekte für die letzten 24 Stunden zurück:

SELECT
  creation_time,
  job_id,
  bi_engine_statistics
FROM
  `region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
  creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
  AND CURRENT_TIMESTAMP()
  AND job_type = "QUERY"

Verwenden Sie das folgende Format, um die Regionalität für die project-id, region und views in der INFORMATION_SCHEMA-Ansicht anzugeben:

`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.VIEW

Informationsschema-Details von Looker Studio ansehen

In der Ansicht INFORMATION_SCHEMA.JOBS können Sie verfolgen, welche Looker Studio-Berichte und Datenquellen von BigQuery verwendet werden. Wenn die native BigQuery-Integration aktiviert ist, erstellt jede Looker Studio-Abfrage einen Eintrag mit den Labels report_id und datasource_id. Diese IDs werden am Ende der Looker Studio-URL angezeigt, wenn Sie einen Bericht oder eine Datenquellenseite öffnen. Ein Bericht mit der URL http://lookerstudio.go888ogle.com.fqhub.com/navigation/reporting/my-report-id-123 hat beispielsweise die Berichts-ID "my-report-id-123".

Die folgenden Beispiele zeigen, wie Berichte und Datenquellen angezeigt werden:

Bericht- und Datenquellen-URL für jeden Looker Studio-BigQuery-Job suchen

-- Standard labels used by Looker Studio.
DECLARE requestor_key STRING DEFAULT 'requestor';
DECLARE requestor_value STRING DEFAULT 'looker_studio';

CREATE TEMP FUNCTION GetLabel(labels ANY TYPE, label_key STRING)
AS (
  (SELECT l.value FROM UNNEST(labels) l WHERE l.key = label_key)
);

CREATE TEMP FUNCTION GetDatasourceUrl(labels ANY TYPE)
AS (
  CONCAT("http://lookerstudio.go888ogle.com.fqhub.com/datasources/", GetLabel(labels, 'looker_studio_datasource_id'))
);

CREATE TEMP FUNCTION GetReportUrl(labels ANY TYPE)
AS (
  CONCAT("http://lookerstudio.go888ogle.com.fqhub.com/reporting/", GetLabel(labels, 'looker_studio_report_id'))
);

SELECT
  job_id,
  GetDatasourceUrl(labels) AS datasource_url,
  GetReportUrl(labels) AS report_url,
FROM
  `region-us`.INFORMATION_SCHEMA.JOBS jobs
WHERE
  creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
  AND GetLabel(labels, requestor_key) = requestor_value
LIMIT
  100;

Jobs ansehen, die mithilfe eines Berichts und einer Datenquelle erstellt wurden

-- Specify report and data source id, which can be found in the end of Looker Studio URLs.
DECLARE user_report_id STRING DEFAULT '*report id here*';
DECLARE user_datasource_id STRING DEFAULT '*datasource id here*';

-- Standard labels Looker Studio uses in native integration.
DECLARE requestor_key STRING DEFAULT 'requestor';
DECLARE requestor_value STRING DEFAULT 'looker_studio';
DECLARE datasource_key STRING DEFAULT 'looker_studio_datasource_id';
DECLARE report_key STRING DEFAULT 'looker_studio_report_id';

CREATE TEMP FUNCTION GetLabel(labels ANY TYPE, label_key STRING)
AS (
  (SELECT l.value FROM UNNEST(labels) l WHERE l.key = label_key)
);

SELECT
  creation_time,
  job_id,
FROM
  `region-us`.INFORMATION_SCHEMA.JOBS jobs
WHERE
  creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
  AND GetLabel(labels, requestor_key) = requestor_value
  AND GetLabel(labels, datasource_key) = user_datasource_id
  AND GetLabel(labels, report_key) = user_report_id
ORDER BY 1
LIMIT 100;

Cloud Logging

Loginformationen zu BI Engine können Sie auf der Cloud Logging-Seite der Google Cloud Console aufrufen. Wie Sie Loginformationen für BI Engine aufrufen, hängt vom Tool ab, das die Daten abfragt:

  • Für Looker Studio-Abfragen ohne aktivierte native Integration in Looker Studio: Sie können Loginformationen auf der Seite Cloud Logging mit einer Nutzlast von protoPayload.serviceName="bigquerybiengine.googleapis.com" aufrufen.
  • Für den gesamten anderen Traffic: Sie können Loginformationen auf der Seite Cloud Logging mit der Nutzlast protoPayload.serviceName="bigquery.googleapis.com" aufrufen.

Wie geht es weiter?