Partitions- und Clusterempfehlungen ansehen

In diesem Dokument wird beschrieben, wie der Recommender für Partitionen und Cluster funktioniert und wie Sie Ihre Empfehlungen und Statistiken aufrufen.

Der BigQuery-Partitionierungs- und -Clustering-Recommender generiert Empfehlungen für Partitionen oder Cluster zur Optimierung Ihrer BigQuery-Tabellen. Der Recommender analysiert Workflows in Ihren BigQuery-Tabellen und gibt Empfehlungen zur besseren Optimierung Ihrer Workflows und Abfragekosten durch Tabellenpartitionierung oder Tabellen-Clustering.

Weitere Informationen zum Recommender-Dienst finden Sie in der Recommender-Übersicht.

Funktionsweise des Recommenders

Zum Generieren einer Empfehlung verwendet der Recommender für Partitionierung und Clustering die Arbeitslastausführungsdaten des Projekts der letzten 30 Tage, um jede BigQuery-Tabelle auf suboptimale Partitionierungs- und Clustering-Konfigurationen zu analysieren. Der Recommender verwendet auch maschinelles Lernen, um vorherzusagen, wie viel die Ausführung von Arbeitslasten mit verschiedenen Partitionierungs- oder Clustering-Konfigurationen optimiert werden könnte. Wenn der Recommender feststellt, dass Partitionierung oder Clustering einer Tabelle erhebliche Einsparungen ermöglicht, generiert der Recommender eine Empfehlung. Der Partitionierungs- und Clustering-Recommender generiert die folgenden Arten von Empfehlungen:

Vorhandener Tabellentyp Empfehlungsuntertyp Empfehlungsbeispiel
Nicht partitioniert, nicht geclustert Partition „Sparen Sie etwa 64 Slot-Stunden pro Monat durch Partitionierung nach column_C nach DAY“
Nicht partitioniert, nicht geclustert Cluster „Sparen Sie durch Clustering nach Spalte_C etwa 64 Slot-Stunden pro Monat“
Partitioniert, nicht geclustert Cluster „Sparen Sie durch Clustering nach Spalte_C etwa 64 Slot-Stunden pro Monat“

Jede Empfehlung besteht aus drei Teilen:

  • Anleitung zum Partitionieren oder Clustern einer bestimmten Tabelle
  • Die spezifische Spalte in einer Tabelle, die partitioniert oder geclustert werden soll
  • Geschätzte monatliche Einsparungen beim Anwenden der Empfehlung

Bei der Berechnung potenzieller Arbeitslasteinsparungen geht der Recommender davon aus, dass die Verlaufsdaten der Ausführungsarbeitslasten der letzten 30 Tage die zukünftige Arbeitslast darstellen.

Die Recommender API gibt auch Informationen zur Tabellenarbeitslast in Form von Statistiken zurück. Statistiken sind Erkenntnisse, mit denen Sie die Arbeitslast Ihres Projekts verstehen können. Sie erhalten dadurch mehr Kontext dazu, wie eine Partition oder Clusterempfehlung die Arbeitslastkosten verbessern kann.

Beschränkungen

Der Partitionierungs- und Clustering-Recommender schließt Legacy-SQL-Abfragen in seiner Analyse aus.

Der Partitionierungs- und Clustering-Recommender unterstützt keine Ressourcen, die in den folgenden Regionen gespeichert sind:

  • europe-central2, europe-west8, europe-west9, europe-west12, europe-north1, europe-southwest1
  • us-east1, us-east5, us-south1
  • me-central1, me-central2, me-west1
  • australia-southeast2
  • southamerica-west1

Hinweise

Bevor Sie Partitions- und Clusterempfehlungen aufrufen können, müssen Sie die Recommender API aktivieren.

Erforderliche Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Betrachter von BigQuery-Partitionierungsclustering-Recommender (roles/recommender.bigqueryPartitionClusterViewer) zu gewähren, um die Berechtigungen zu erhalten, die Sie für den Zugriff auf Partitions- und Clusterempfehlungen 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 Partitions- und Clusterempfehlungen erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Für den Zugriff auf Partitions- und Clusterempfehlungen sind die folgenden Berechtigungen erforderlich:

  • recommender.bigqueryPartitionClusterRecommendations.get
  • recommender.bigqueryPartitionClusterRecommendations.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 abrufen

In diesem Abschnitt wird beschrieben, wie Sie Empfehlungen zu Partitionen und Clustern mit der Google Cloud Console, der Google Cloud CLI oder der Recommender API aufrufen.

Wählen Sie eine der folgenden Optionen aus:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Klicken Sie zum Öffnen des Tabs „Empfehlungen“ auf Empfehlungen > Alle Empfehlungen ansehen.

    Klicken Sie auf „Empfehlungen“, um alle Empfehlungen aufzurufen.

    Auf dem Tab „Empfehlungen“ werden alle Empfehlungen aufgelistet, die für Ihr Projekt verfügbar sind.

  3. Klicken Sie im Bereich BigQuery-Arbeitslastkosten optimieren auf Alle ansehen.

    In der Tabelle mit den Kostenempfehlungen werden alle Empfehlungen aufgeführt, die für das aktuelle Projekt generiert wurden. Der folgende Screenshot zeigt beispielsweise, dass der Recommender die Tabelle example_table analysiert und dann das Clustering der Spalte example_column empfohlen hat, um eine ungefähre Menge von Byte und Slots zu sparen.

    Empfehlungstabelle mit Partitionierungs- und Clustering-Empfehlungen.

  4. Klicken Sie auf eine Empfehlung, um weitere Informationen zu den Daten und Empfehlungen der Tabelle zu sehen.

gcloud

Verwenden Sie den Befehl gcloud recommender recommendations list, um Partitions- oder Clusterempfehlungen für ein bestimmtes Projekt aufzurufen:

gcloud recommender recommendations list \
    --project=PROJECT_NAME \
    --location=REGION_NAME \
    --recommender=google.bigquery.table.PartitionClusterRecommender \
    --format=FORMAT_TYPE \

Dabei gilt:

  • PROJECT_NAME: der Name des Projekts, das Ihre BigQuery-Tabelle enthält
  • REGION_NAME: die Region, in der sich Ihr Projekt befindet
  • FORMAT_TYPE: ein unterstütztes Ausgabeformat der gcloud CLI, z. B. JSON
In der folgenden Tabelle werden die wichtigen Felder der Recommender API-Antwort beschrieben:

Attribut Relevant für Untertyp Beschreibung
recommenderSubtype Partition oder Cluster Gibt den Typ der Empfehlung an.
content.overview.partitionColumn Partition Empfohlener Name der Partitionierungsspalte.
content.overview.partitionTimeUnit Partition Empfohlene Partitionierungszeiteinheit. DAY bedeutet beispielsweise, dass Sie tägliche Partitionen in der empfohlenen Spalte haben sollten.
content.overview.clusterColumns Cluster Empfohlene Clustering-Spaltennamen.

Verwenden Sie den Befehl gcloud recommender insights list, um Tabellenstatistiken mit der gcloud CLI aufzurufen:

gcloud recommender insights list \
    --project=PROJECT_NAME \
    --location=REGION_NAME \
    --insight-type=google.bigquery.table.StatsInsight \
    --format=FORMAT_TYPE \

Dabei gilt:

  • PROJECT_NAME: der Name des Projekts, das Ihre BigQuery-Tabelle enthält
  • REGION_NAME: die Region, in der sich Ihr Projekt befindet
  • FORMAT_TYPE: ein unterstütztes Ausgabeformat der gcloud CLI, z. B. JSON
In der folgenden Tabelle werden die wichtigen Felder der insights API-Antwort beschrieben:

Attribut Relevant für Untertyp Beschreibung
content.existingPartitionColumn Cluster Vorhandene Partitionierungsspalte, falls vorhanden
content.tableSizeTb Alle Größe der Tabelle in Terabyte
content.bytesReadMonthly Alle Monatliche Byte, die aus der Tabelle gelesen werden
content.slotMsConsumedMonthly Alle Monatliche Slot-Millisekunden, die von der auf der Tabelle ausgeführten Arbeitslast verbraucht werden
content.queryJobsCountMonthly Alle Monatliche Anzahl von Jobs, die in der Tabelle ausgeführt werden

REST API

Verwenden Sie die REST API, um Partitions- oder Clusterempfehlungen 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_TOKEN"
    -H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/my-project/locations/us/recommenders/google.bigquery.table.PartitionClusterRecommender/recommendations

Dabei gilt:

  • GCLOUD_AUTH_TOKEN: der Name eines gültigen gcloud CLI-Zugriffstokens
  • PROJECT_NAME: der Name des Projekts, das Ihre BigQuery-Tabelle enthält
In der folgenden Tabelle werden die wichtigen Felder der Recommender API-Antwort beschrieben:

Attribut Relevant für Untertyp Beschreibung
recommenderSubtype Partition oder Cluster Gibt den Typ der Empfehlung an.
content.overview.partitionColumn Partition Empfohlener Name der Partitionierungsspalte.
content.overview.partitionTimeUnit Partition Empfohlene Partitionierungszeiteinheit. DAY bedeutet beispielsweise, dass Sie tägliche Partitionen in der empfohlenen Spalte haben sollten.
content.overview.clusterColumns Cluster Empfohlene Clustering-Spaltennamen.

Führen Sie den folgenden Befehl aus, um Tabellenstatistiken mit der REST API aufzurufen:

curl
-H "Authorization: Bearer $GCLOUD_AUTH_TOKEN"
-H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/my-project/locations/us/insightTypes/google.bigquery.table.StatsInsight/insights

Ersetzen Sie Folgendes:

  • GCLOUD_AUTH_TOKEN: der Name eines gültigen gcloud CLI-Zugriffstokens
  • PROJECT_NAME: der Name des Projekts, das Ihre BigQuery-Tabelle enthält
In der folgenden Tabelle werden die wichtigen Felder der insights API-Antwort beschrieben:

Attribut Relevant für Untertyp Beschreibung
content.existingPartitionColumn Cluster Vorhandene Partitionierungsspalte, falls vorhanden
content.tableSizeTb Alle Größe der Tabelle in Terabyte
content.bytesReadMonthly Alle Monatliche Byte, die aus der Tabelle gelesen werden
content.slotMsConsumedMonthly Alle Monatliche Slot-Millisekunden, die von der auf der Tabelle ausgeführten Arbeitslast verbraucht werden
content.queryJobsCountMonthly Alle Monatliche Anzahl von Jobs, die in der Tabelle ausgeführt werden

Fehlerbehebung

Problem: Für eine bestimmte Tabelle werden keine Empfehlungen angezeigt.

Partitions- und Clusterempfehlungen werden unter folgenden Umständen möglicherweise nicht angezeigt:

  • Die Tabelle ist kleiner als 10 GB.
  • Die Tabelle verursacht hohe Schreibkosten für Vorgänge zur Datenbearbeitungssprache (DML).
  • Die Tabelle wurde in den letzten 30 Tagen nicht gelesen.
  • Die geschätzten monatlichen Einsparungen sind zu unbedeutend (weniger als eine Slot-Stunde).
  • Die Tabelle ist bereits geclustert.

Preise

Die Anzeige von Empfehlungen erzeugt keine Kosten oder negative Auswirkungen auf die Arbeitslastleistung.

Nächste Schritte