Empfehlungen für materialisierte Ansichten verwalten
In diesem Dokument wird die Funktionsweise des Recommenders für materialisierte Ansichten beschrieben. Außerdem erfahren Sie, wie Sie Empfehlungen für materialisierte Ansichten aufrufen und anwenden.
Einleitung
Mit dem Recommender für materialisierte Ansichten in BigQuery können Sie die Arbeitslastleistung verbessern und Kosten für die Ausführung der Arbeitslast sparen. Diese Empfehlungen basieren auf Verlaufseigenschaften der Abfrageausführung der letzten 30 Tage.
Materialisierte Ansichten bietet vorausberechnete Ansichten, die die Ergebnisse einer Abfrage regelmäßig im Cache speichern, um die Leistung und Effizienz zu steigern. Materialisierte Ansichten verwenden eine intelligente Abstimmung, um Abfragen transparent für Quelltabellen neu zu schreiben, um vorhandene materialisierte Ansichten für eine bessere Leistung und Effizienz zu verwenden.
Funktionsweise des Recommenders
Der Recommender generiert täglich Empfehlungen für jedes Projekt, das Abfragejobs in BigQuery ausführt. Empfehlungen basieren auf der Analyse der Arbeitslastausführung in den letzten 30 Tagen. Der Recommender für materialisierte Ansichten sucht nach sich wiederholenden Abfragemustern und berechnet alle Einsparungen, wenn die sich wiederholende Unterabfrage in eine inkrementelle materialisierte Ansicht verschoben werden kann. Der Recommender berücksichtigt alle Einsparungen zum Zeitpunkt der Abfrage und berücksichtigt die Wartungskosten für die materialisierte Ansicht. Wenn diese kombinierten Faktoren ein signifikantes positives Ergebnis zeigen, gibt der Recommender eine Empfehlung.
Betrachten Sie das folgende Abfragebeispiel:
WITH revenue AS
(SELECT l_suppkey as supplier_no,
sum(l_extendedprice * (1 - l_discount)) as total_revenue
FROM lineitem
WHERE
l_shipdate >= date '1996-01-01'
AND l_shipdate < date_add(date '1996-01-01', interval 3 MONTH)
GROUP BY l_suppkey)
SELECT s_suppkey,
s_name,
s_address,
s_phone,
total_revenue
FROM
supplier,
revenue
WHERE s_suppkey = supplier_no
AND total_revenue =
(SELECT max(total_revenue)
FROM revenue)
ORDER BY s_suppkey
Dieses Abfragebeispiel enthält Informationen zum Top-Anbieter. Die Abfrage enthält
einen allgemeinen Tabellenausdruck mit dem Namen revenue
, der den Gesamtumsatz pro Anbieter (l_suppkey
) darstellt. revenue
ist unter Bedingung, dass total_revenue
des Anbieters unter allen Lieferanten mit max(total_revenue)
übereinstimmt, mit der Anbietertabelle verbunden. Daher berechnet die Abfrage Informationen (l_suppkey
, s_name
, s_address
, s_phone
, total_revenue
) zum Anbieter mit dem maximalen Gesamtumsatz.
Die gesamte Abfrage selbst ist zu kompliziert, um in eine inkrementelle materialisierte Ansicht eingebunden zu werden. Der CTE von supplier
ist jedoch eine Zusammenfassung einer einzelnen Tabelle: Ein Abfragemuster, das von inkrementellen materialisierten Ansichten unterstützt wird. Der supplier
-CTE ist auch der rechenintensivste Teil der Abfrage. Wenn also die Beispielabfrage wiederholt über sich ständig ändernde Quelltabellen ausgeführt wurde, könnte der Recommender für materialisierte Ansichten vorschlagen, die supplier
-CTE in eine materialisierte Ansicht zu versetzen. Die Empfehlung der materialisierten Ansicht für die vorherige Beispielabfrage kann in etwa so aussehen:
CREATE MATERIALIZED VIEW mv AS
SELECT l_suppkey as supplier_no,
sum(l_extendedprice * (1 - l_discount)) as total_revenue
FROM lineitem
WHERE
l_shipdate >= date '1996-01-01'
AND l_shipdate < date_add(date '1996-01-01', interval 3 MONTH)
GROUP BY l_suppkey
Die Recommender API gibt auch Informationen zur Abfrageausführung in der Form Statistiken. Statistiken sind Erkenntnisse, mit denen Sie die Arbeitslast Ihres Projekts verstehen können. Sie erhalten dadurch mehr Kontext dazu, wie eine Empfehlung für eine materialisierte Ansicht die Arbeitslastkosten verbessern kann.
Beschränkungen
- Der Recommender für materialisierte Ansichten unterstützt nicht den Standardprozess zum Deaktivieren der Datenverarbeitung. Um den Empfang von Empfehlungen für materialisierte Ansichten zu beenden, folgen Sie den Anweisungen im Gemini in BigQuery Pre-GA-Anmeldeformular.
- Die Empfehlungen für die materialisierte Ansichten können nicht nach BigQuery exportiert werden.
Hinweise
Bevor Sie Empfehlungen für materialisierte Ansichten aufrufen oder anwenden können, müssen Sie die Recommender API aktivieren.
Erforderliche Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Betrachter von BigQuery Materialized View Recommender (roles/recommender.bigqueryMaterializedViewViewer
) zu gewähren, um die Berechtigungen zu erhalten, die Sie für den Zugriff auf Empfehlungen für materialisierte Ansichten benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die für den Zugriff auf Empfehlungen für materialisierte Ansichten erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind für den Zugriff auf Empfehlungen für materialisierte Ansichten erforderlich:
-
recommender.bigqueryMaterializedViewRecommendations.get
-
recommender.bigqueryMaterializedViewRecommendations.list
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Einführung in IAM.
Empfehlungen für die materialisierte Ansicht ansehen
In diesem Abschnitt wird beschrieben, wie Sie Empfehlungen und Statistiken für materialisierte Ansichten mit der Google Cloud Console, der Google Cloud CLI oder der Recommender API aufrufen.
Wählen Sie eine der folgenden Optionen aus:
Console
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Klicken Sie auf
Empfehlungen.Der Bereich BigQuery-Empfehlungen wird geöffnet. Klicken Sie unter BigQuery-Arbeitslastkosten optimieren auf Details ansehen.
Eine Empfehlungsliste mit allen Empfehlungen, die für das aktuelle Projekt generiert wurden, wird angezeigt. Jede Empfehlung in dieser Liste zeigt die ungefähren Einsparungen an, wenn die Empfehlung angewendet wurde. Klicken Sie auf Details, um weitere Informationen zu einer bestimmten Empfehlung für materialisierte Ansichten oder Tabellenstatistiken aufzurufen.
gcloud
Verwenden Sie den Befehl gcloud recommender recommendations list
, um Empfehlungen für materialisierte Ansichten für ein bestimmtes Projekt aufzurufen:
gcloud recommender recommendations list \ --project=PROJECT_NAME \ --location=REGION_NAME \ --recommender=google.bigquery.materializedview.Recommender \ --format=FORMAT_TYPE \
Ersetzen Sie Folgendes:
PROJECT_NAME
ist der Name des Projekts, in dem Abfragejobs ausgeführt werden.REGION_NAME
ist die Region, in der die Abfragejobs ausgeführt werdenFORMAT_TYPE
: ein unterstütztes Ausgabeformat der gcloud CLI, z. B. JSON
Attribut | Relevant für Untertyp | Beschreibung |
---|---|---|
recommenderSubtype |
CREATE_MATERIALIZED_VIEW |
Der Typ der Empfehlung. |
content.overview.sql |
CREATE_MATERIALIZED_VIEW |
Vorgeschlagene DDL-Anweisung, mit der eine materialisierte Ansicht erstellt wird |
content.overview.slotMsSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Geschätzte Slot-Millisekunden, die monatlich durch die vorgeschlagene Ansicht gespeichert werden. |
content.overview.bytesSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Geschätzte Byte, die gescannt werden und monatlich von der vorgeschlagenen Ansicht gespeichert werden. |
content.overview.baseTables |
CREATE_MATERIALIZED_VIEW |
Reserviert für zukünftige Verwendungen. |
- Weitere Informationen zu anderen Feldern in der Antwort
recommendations
finden Sie unter REST-Ressource:projects.locations.recommenders.recommendation
. - Weitere Informationen zur Verwendung der Recommender API finden Sie unter API verwenden – Empfehlungen.
Verwenden Sie den Befehl gcloud recommender insights list
, um mit der gcloud CLI Statistiken aufzurufen, für die Empfehlungen für materialisierte Ansichten angefordert wurden:
gcloud recommender insights list \ --project=PROJECT_NAME \ --location=REGION_NAME \ --insight-type=google.bigquery.materializedview.Insight \ --format=FORMAT_TYPE \
Ersetzen Sie Folgendes:
PROJECT_NAME
ist der Name des Projekts, in dem Abfragejobs ausgeführt werden.REGION_NAME
ist die Region, in der die Abfragejobs ausgeführt werden.FORMAT_TYPE
: ein unterstütztes Ausgabeformat der gcloud CLI, z. B. JSON
Attribut | Relevant für Untertyp | Beschreibung |
---|---|---|
content.queryCount |
CREATE_MATERIALIZED_VIEW |
Anzahl der Abfragen im Beobachtungszeitraum mit einem sich wiederholenden Muster, das mithilfe der materialisierten Ansicht optimiert werden kann. |
- Weitere Informationen zu anderen Feldern in der Statistikantwort finden Sie unter REST-Ressource:
projects.locations.insightTypes.insights
. - Weitere Informationen zur Verwendung von Statistiken finden Sie unter API verwenden – Statistiken.
REST API
Verwenden Sie die REST API, um Empfehlungen für materialisierte Ansichten für ein bestimmtes Projekt aufzurufen. Bei jedem Befehl müssen Sie ein Authentifizierungstoken angeben, das Sie mit der gcloud CLI abrufen können. Weitere Informationen zum Abrufen eines Authentifizierungstokens finden Sie unter Methoden zum Abrufen eines ID-Tokens.
Mit der curl list
-Anfrage können Sie alle Empfehlungen für ein bestimmtes Projekt anzeigen:
$ curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/PROJECT_NAME/locations/LOCATION/recommenders/google.bigquery.materializedview.Recommender/recommendations
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts, das Ihre BigQuery-Tabelle enthältLOCATION
ist der Standort, an dem sich das Projekt befindet.
Attribut | Relevant für Untertyp | Beschreibung |
---|---|---|
recommenderSubtype |
CREATE_MATERIALIZED_VIEW |
Der Typ der Empfehlung. |
content.overview.sql |
CREATE_MATERIALIZED_VIEW |
Vorgeschlagene DDL-Anweisung, mit der eine materialisierte Ansicht erstellt wird |
content.overview.slotMsSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Geschätzte Slot-Millisekunden, die monatlich durch die vorgeschlagene Ansicht gespeichert werden. |
content.overview.bytesSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Geschätzte Byte, die gescannt werden und monatlich von der vorgeschlagenen Ansicht gespeichert werden. |
content.overview.baseTables |
CREATE_MATERIALIZED_VIEW |
Reserviert für zukünftige Verwendungen. |
- Weitere Informationen zu anderen Feldern in der Antwort
recommendations
finden Sie unter REST-Ressource:projects.locations.recommenders.recommendation
. - Weitere Informationen zur Verwendung der Recommender API finden Sie unter API verwenden – Empfehlungen.
Führen Sie den folgenden Befehl aus, um mit der REST API Informationen aufzurufen, zu denen Empfehlungen für materialisierte Ansichten angefordert wurden:
$ curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/PROJECT_NAME/locations/LOCATION/insightTypes/google.bigquery.materializedview.Insight/insights
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts, das Ihre BigQuery-Tabelle enthältLOCATION
ist der Standort, an dem sich das Projekt befindet.
Attribut | Relevant für Untertyp | Beschreibung |
---|---|---|
content.queryCount |
CREATE_MATERIALIZED_VIEW |
Anzahl der Abfragen im Beobachtungszeitraum mit einem sich wiederholenden Muster, das mithilfe der materialisierten Ansicht optimiert werden kann. |
- Weitere Informationen zu anderen Feldern in der Statistikantwort finden Sie unter REST-Ressource:
projects.locations.insightTypes.insights
. - Weitere Informationen zur Verwendung von Statistiken finden Sie unter API verwenden – Statistiken.
Empfehlungen für materialisierte Ansichten anwenden
Sie können eine Empfehlung zum Erstellen einer materialisierten Ansicht anwenden, indem Sie die vorgeschlagene DDL-Anweisung CREATE MATERIALIZED VIEW
in der Google Cloud Console ausführen.
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Klicken Sie auf
Empfehlungen.Der Bereich BigQuery-Empfehlungen wird geöffnet. Klicken Sie unter BigQuery-Arbeitslastkosten optimieren auf Details ansehen.
Eine Empfehlungsliste mit allen Empfehlungen, die für das aktuelle Projekt generiert wurden, wird angezeigt. Suchen Sie eine Empfehlung für materialisierte Ansichten und klicken Sie auf Details.
Klicken Sie auf In BigQuery Studio ansehen. Ein SQL-Editor wird geöffnet, der eine
CREATE MATERIALIZED VIEW
-DDL-Anweisung enthält.Ändern Sie in der bereitgestellten
CREATE MATERIALIZED VIEW
-Anweisung den PlatzhalterMATERIALIZED_VIEW
mit einem eindeutigen Namen für die materialisierte Ansicht.Führen Sie die
CREATE MATERIALIZED VIEW
-DDL-Anweisung aus, um eine empfohlene materialisierte Ansicht zu erstellen.
Probleme mit Empfehlungen beheben
Problem: Für eine bestimmte Tabelle werden keine Empfehlungen angezeigt.
Empfehlungen für materialisierte Ansichten werden unter folgenden Umständen möglicherweise nicht angezeigt:
- Unter den von einem Projekt ausgeführten Abfragejobs wurden keine wiederkehrenden Abfragemuster gefunden.
- Wiederkehrende Abfragemuster erfüllen nicht die Einschränkungen für inkrementelle materialisierte Ansichten und können nicht in eine materialisierte Ansicht eingefügt werden, die für eine intelligente Feinabstimmung geeignet ist.
- Potenzielle materialisierte Ansichten würden hohe Wartungskosten verursachen. Beispiel: Quelltabellen werden häufig durch DML-Vorgänge (Data Manipulation Language, Datenbearbeitungssprache) geändert. Daher würde eine materialisierte Ansicht vollständig aktualisiert werden, was zu weiteren Kosten führt.
- Es gibt eine unzureichende Anzahl von Abfragen mit einem gemeinsamen wiederkehrenden Muster.
- Die geschätzten monatlichen Einsparungen sind zu unbedeutend (weniger als 1 Slot).
- Vom Projekt ausgeführte Abfragejobs verwenden bereits materialisierte Ansichten.
Preise
Die Anzeige von Empfehlungen erzeugt keine Kosten oder negative Auswirkungen auf die Arbeitslastleistung.
Wenn Sie Empfehlungen durch das Erstellen von materialisierten Ansichten anwenden, können Kosten für Speicher, Wartung und Abfrage anfallen. Weitere Informationen finden Sie unter Preise für materialisierte Ansichten.