Fehlerbehebung bei der BigQuery-Arbeitslastverwaltung
In diesem Dokument wird beschrieben, wie Sie häufige Probleme bei der BigQuery-Arbeitslastverwaltung beheben, einschließlich Reservierungszuweisung und -zuordnungen, Reservierungskonfigurationsfehler, Slot-Konflikte, Reservierungsmonitoring und Konversations-Logging für konversationelle Analysen.
Wenn Sie Reservierungen und Diagramme zu Verwaltungsressourcen aufrufen und verwalten möchten, benötigen Sie die erforderlichen IAM-Rollen (Identity and Access Management) für das Verwaltungsprojekt, z. B. die Rolle „BigQuery-Ressourcenbetrachter“ (roles/bigquery.resourceViewer) oder „BigQuery-Ressourcenadministrator“ (roles/bigquery.resourceAdmin). Weitere Informationen finden Sie unter Zugriffssteuerung mit IAM.
Probleme mit Reservierungen beheben
Die folgenden Informationen helfen Ihnen, häufige Probleme mit Reservierungen zu beheben, z. B. Fehler beim Hinzufügen von Slots, warum eine Reservierung nicht für einen BigQuery-Job verwendet wird oder nicht erkannte Reservierungen.
Der Reservierungsgröße können keine weiteren Slots hinzugefügt werden
Wenn beim Hinzufügen weiterer Slots zu Ihrer Reservierung Fehler wie Failed to allocate slots for reservation in the
current system state oder Failed to update reservation: Failed to allocate slots
for reservation auftreten, ist dies in der Regel ein vorübergehendes Problem. So beheben Sie das Problem:
- Versuchen Sie es mit einer kleineren Anzahl von Slots noch einmal.
- Wenn der Versuch mit einer kleineren Anzahl von Slots fehlschlägt, warten Sie 15 Minuten und versuchen Sie es dann noch einmal.
Wenn Sie nach mehreren Versuchen und einer Wartezeit von 30 Minuten immer noch denselben Fehler erhalten, wenden Sie sich an Cloud Customer Care.
Das Kontingent reicht nicht aus, um diese Anfrage abzuschließen
Wenn in der Fehlermeldung There is insufficient quota to complete this
request angegeben ist, überschreitet die Anfrage das für das Projekt festgelegte Kontingentlimit.
Führen Sie einen der folgenden Schritte aus, um diesen Fehler zu beheben:
- Fügen Sie der Reservierung eine kleinere Anzahl von Slots hinzu, damit die Anfrage das Kontingentlimit nicht überschreitet.
- Fordern Sie eine Kontingenterhöhung in der entsprechenden Region an. Weitere Informationen finden Sie unter Kontingenterhöhung anfordern.
Reservierung wird von BigQuery nicht zum Ausführen eines Jobs verwendet
Es gibt mehrere Szenarien, in denen ein Job mit On-Demand-Preisen oder einem kostenlosen freigegebenen Slot-Pool ausgeführt werden kann, anstatt die von Ihnen erstellte Reservierung zu verwenden.
Abfrage und Reservierung befinden sich in verschiedenen Regionen
Reservierungen sind regionale Ressourcen. Eine Abfrage wird am selben Standort wie alle in der Abfrage referenzierten Tabellen ausgeführt.
Wenn der Standort einer Tabelle nicht mit dem Standort der Reservierung übereinstimmt, wird die Reservierung nicht für die Abfrage verwendet. Stattdessen wird die Abfrage mit On-Demand-Preisen (oder dem kostenlosen freigegebenen Slot-Pool für infrage kommende Batchlade- und Exportjobs) ausgeführt.
Die Reservierung wurde erstellt, aber das Projekt wurde ihr nicht zugewiesen
Damit Sie die Slots in einer Reservierung verwenden können, müssen Sie eine Zuweisung erstellen, die das Projekt, den Ordner oder die Organisation der jeweiligen Reservierung zuweist. Achten Sie darauf, dass das Projekt eine entsprechende Zuweisung für die Reservierung hat.
Jobtypen stimmen nicht überein
Achten Sie darauf, beim Erstellen einer Zuweisung den richtigen Jobtyp auszuwählen. Andernfalls wird die Reservierung nicht für die Jobs verwendet.
Wenn Sie beispielsweise PIPELINE als Jobtyp auswählen, werden alle Abfragejobs mit On-Demand-Preisen ausgeführt. Ändern Sie den Zuweisungstyp in QUERY, damit die Abfragejobs mit der Reservierung ausgeführt werden.
Abfragen mit mehreren Anweisungen
Wenn Sie Abfragen mit mehreren Anweisungen ausführen, ist dem übergeordneten Jobobjekt keine Reservierung zugeordnet, auch wenn die untergeordneten Jobs im Rahmen einer Reservierung ausgeführt werden.
Prüfen Sie die Metadaten des untergeordneten Jobs, um festzustellen, ob für den Job tatsächlich eine Reservierung verwendet wurde.
Im Cache gespeicherte Ergebnisse abrufen
Wenn ein Abfragejob im Cache gespeicherte Ergebnisse abruft, ist das Feld „Reservierung“ leer, da BigQuery keine Berechnung durchführt und die Ergebnisse direkt aus der temporären Tabelle abruft.
Vorgänge zur Zeilenänderung bei Change Data Capture
Wenn Sie CDC-Tabellen (Change Data Capture) haben, wendet BigQuery ausstehende Zeilenänderungen innerhalb des max_staleness-Intervalls als Hintergrundjobs an, die den Zuweisungstyp BACKGROUND verwenden. Wenn keine BACKGROUND-Zuweisungen vorhanden sind, wird für diese Jobs die On-Demand-Preisgestaltung verwendet. Erwägen Sie, eine BACKGROUND-Zuweisung für das Projekt zu erstellen, um unerwartete On-Demand-Kosten zu vermeiden. Sie erkennen diese Jobs am Teilstring queueworker_cdc_background_merge_coalesce in der Job-ID.
Im Projekt wurden unbekannte Reservierungen erkannt
BigQuery besitzt Reservierungen, die einen kostenlosen freigegebenen Slot-Pool für bestimmte Vorgänge in BigQuery darstellen.
default-pipeline
Standardmäßig wird für das Batch-Laden oder den Batch-Export von Daten in BigQuery ein kostenloser freigegebener Slot-Pool verwendet. Wenn Sie diese Lade- oder Extraktionsjobs prüfen, wird im Feld „Reservierung“ default-pipeline angezeigt.
Für die Verwendung des Pools für freigegebene Slots fallen keine Gebühren an. Wenn Sie eine konsistente, vorhersehbare Leistung wünschen, sollten Sie eine PIPELINE-Reservierung erwerben.
Fehlerbehebung bei Aufgaben zur Reservierungsverwaltung
Beim Erstellen oder Aktualisieren einer Reservierung können die folgenden Fehler auftreten.
Die Reservierungsgröße oder die Anzahl der Referenz-Slots muss ein Vielfaches von 50 sein
Fehlermeldung
Max reservation size can only be configured in multiples of 50, except when covered by excess commitments.Baseline slots can only be configured in multiples of 50, except when covered by excess commitments.
Ursache
Slots werden immer automatisch auf ein Vielfaches von 50 skaliert. BigQuery skaliert Slots basierend auf der tatsächlichen Nutzung und rundet auf die nächste 50-Slot-Schrittweite auf. Wenn keine Zusicherung vorhanden ist oder die Zusicherung die Erhöhungen nicht abdecken kann, können Sie die Referenz- und Autoscaling-Slots nur in Vielfachen von 50 erhöhen.
Wenn baseline slots oder max reservation size - baseline slots kein Vielfaches von 50 ist (und nicht durch Zusicherungen für überschüssige Kapazität abgedeckt ist), kann die Reservierung nicht auf die maximale Reservierungsgröße hochskaliert werden, was zu diesem Fehler führt.
Lösung
Führen Sie einen der folgenden Schritte aus:
- Kaufen Sie mehr Kapazitätszusicherungen, um die Slot-Erhöhungen abzudecken.
- Wählen Sie Referenz- und maximale Slots aus, die ein Vielfaches von 50 sind.
Maximale Anzahl von Slots kann nicht ohne Aktivierung der reservierungsbasierten Fairness verwendet werden
Fehlermeldung
Cannot use max slots without enabling reservation-based fairness.
Ursache
Sie versuchen, eine maximale Reservierungskapazität zu konfigurieren, z. B. max_slots oder vorhersagbare Reservierungen, wofür die reservierungsbasierte Fairness für das Projekt aktiviert sein muss, zu dem die Reservierung gehört.
Lösung
Sie müssen die reservierungsbasierte Fairness für das Projekt aktivieren.
Slotkonflikte beheben
Ein Slotkonflikt kann auftreten, wenn nicht genügend Slots vorhanden sind, um alle Ihre Jobs auszuführen. Dies kann zu Leistungsproblemen führen. Wenn Sie analysieren möchten, ob die Leistungsverschlechterung auf eine Erhöhung der Arbeitslast oder auf Änderungen der Umgebungskonfiguration zurückzuführen ist, können Sie zwei Systemintervalle über Reservierungen und Projekte hinweg vergleichen.
Führen Sie die folgenden Schritte aus und beachten Sie die Best Practices, um Probleme mit Slot-Konflikten zu beheben.
Wenn Sie diese Best Practices ausprobiert haben, aber weiterhin Probleme mit der Jobleistung auftreten, können Sie Support anfordern.
Spitzen bei der Jobnebenläufigkeit
Verwenden Sie die Detailansicht in den Diagrammen zu administrativen Ressourcen, um zu prüfen, ob es zu einem plötzlichen Anstieg der Jobausführungen mit gleichzeitigen Spitzen bei der Slot-Nutzung kommt. Diese Spitzen können darauf hindeuten, dass zu viele Jobs um die in Ihrer Reservierung verfügbaren Slots konkurrieren.
Best Practice: Optimieren Sie ressourcenintensive Abfragen oder erhöhen Sie die Slot-Kapazität Ihrer Reservierung. Weitere Informationen zur Optimierung der Abfrageleistung finden Sie unter Abfrageberechnung optimieren.
Hohe Slot-Nutzung
Verwenden Sie die Detailansicht, um nach längeren Jobdauern zu suchen, insbesondere wenn es Jobs gibt, die die maximale Kapazität Ihrer Reservierung überschreiten. Eine gleichbleibend hohe Slotnutzung kann auf anhaltende Slotkonflikte hinweisen.
Best Practice: Prüfen Sie Abfragen mit dem Slot-Konfliktfilter im Jobs Explorer, um die Abfragen zu identifizieren, die die meisten Slots verbrauchen, und optimieren Sie sie.
Lange Jobdauer
Wenn Jobs deutlich länger dauern, rufen Sie die Detailansicht auf. Eine hohe Job-Nebenläufigkeit und Spitzen bei der Slotnutzung können auf Slot-Konflikte hinweisen.
Best Practice: Isolieren Sie kritische Jobs, indem Sie weniger wichtige Jobs vorübergehend pausieren oder die Gesamtrate der Jobübermittlung reduzieren.
Meldungen zu Slot-Konflikten
In der Statistiktabelle können Meldungen wie There were NUMBER jobs detected with
slot_contention in the reservation. angezeigt werden, die auf Probleme mit Slot-Konflikten hinweisen.
Im Job-Explorer finden Sie Details zu den spezifischen Jobs, die in diesen Nachrichten gekennzeichnet sind.
Best Practice: Optimieren Sie die identifizierten Abfragen oder passen Sie die Slot-Zuweisung Ihrer Reservierung an.
Fehlerbehebung für das Monitoring von Reservierungen
In den folgenden Abschnitten wird beschrieben, wie Sie häufige Probleme beim Monitoring von BigQuery-Reservierungen und der Slot-Nutzung beheben können.
Messwerte zur Slot-Nutzung stimmen nicht mit INFORMATION_SCHEMA überein
Wenn Sie Abweichungen zwischen den Slot-Nutzungsmesswerten in Ressourcendiagrammen und INFORMATION_SCHEMA-Daten feststellen, versuchen Sie Folgendes:
- Detaillierungsgrad reduzieren: Ändern Sie die Diagrammgranularität in 1-Sekunden-Intervalle statt in 1-Stunden-Intervalle.
- Ausrichtungsaggregation Achten Sie darauf, dass Sie Aggregationsmethoden verwenden, die zwischen Ressourcendiagrammen und
INFORMATION_SCHEMA-Daten übereinstimmen. Wenn Sie beispielsweise die Spitzennutzung in Ressourcendiagrammen besser darstellen möchten, ändern Sie die Messwertaggregation einheitlich in p99 oder p90.
Geliehene Slots werden angezeigt, wenn inaktive Slots deaktiviert sind.
In Ihren Monitoring-Diagrammen wird möglicherweise ein Wert ungleich null für borrowed_slots angezeigt, auch wenn ignore_idle_slots=true für eine oder mehrere Reservierungen festgelegt ist. Diese Einstellung verhindert, dass eine Reservierung inaktive Slots ausleiht, aber nicht, dass sie ihre nicht verwendeten Slots an andere Reservierungen verleiht.
Diese geliehenen Slots werden in den folgenden Fällen angezeigt:
An andere Reservierungen verleihen. Eine Reservierung mit
ignore_idle_slots=truekann ihre nicht verwendeten Referenz-Slots an andere Reservierungen im selben Administrationsprojekt, in derselben Region und in derselben Version verleihen, die das Ausleihen inaktiver Slots (ignore_idle_slots=false) zulassen. Wenn alle Reservierungen in einem Administrationsprojekt, in einer Region und in einer Versionignore_idle_slots=truehaben, werden inaktive Slots nicht zwischen ihnen geteilt.Angenommen, Reservierung A hat 100 Slots, 0 Nutzung und ist mit
ignore_idle_slots=truekonfiguriert. Reservierung B befindet sich im selben Verwaltungsprojekt, in derselben Region und in derselben Version, hat 100 Slots, benötigt 150 Slots für die Arbeitslast und ist mitignore_idle_slots=falsekonfiguriert. Reservierung B kann 50 inaktive Slots von Reservierung A ausleihen, um ihren Bedarf zu decken. In diesem Fall werden in den Monitoring-Diagrammen 50lent_slotsfür Reservierung A und 50borrowed_slotsfür Reservierung B angezeigt.Nutzung, die die Kapazität überschreitet. Wenn die Slotnutzung einer Reservierung vorübergehend die Kapazität (Baseline + Autoscaling-Slots) überschreitet, wird diese Differenz in Monitoring-Diagrammen als
borrowed_slotsangezeigt. Dieses Verhalten kann auch bei Reservierungen mitignore_idle_slots=trueauftreten.
Die Slot-Nutzung kann gelegentlich die Summe Ihrer Referenz plus der skalierten Slots überschreiten. Ihnen wird keine Slot-Nutzung in Rechnung gestellt, die über Ihrer Referenz liegt, plus die skalierten Slots.
Ausgeliehene Slots werden angezeigt, bevor eine Reservierung vollständig genutzt wird
Monitoring-Dashboards verwenden Stichprobendaten, die die genaue zeitliche Abfolge der Slot-Nutzung innerhalb eines Stichprobenintervalls möglicherweise nicht genau widerspiegeln.
Für eine genauere Analyse der Slot-Nutzung können Sie Spalten abfragen, die sich auf inaktive Slots beziehen, z. B. die Spalten borrowed_slots und lent_slots in der Ansicht INFORMATION_SCHEMA.RESERVATIONS_TIMELINE.
Fehlerbehebung beim Logging von Unterhaltungen
Die folgenden Informationen helfen Ihnen, häufige Probleme mit dem Logging von Unterhaltungen für konversationelle Analysen in BigQuery zu beheben. Da Logging-Fehler nie zu einem Abbruch der Unterhaltung führen und weder im Chat noch in Cloud Logging gemeldet werden, ist eine leere oder fehlende Zieltabelle das wichtigste Signal für ein Konfigurations- oder Berechtigungsproblem.
Protokolltabelle fehlt oder ist leer
Wenn die Zieltabelle nach einer Unterhaltung nicht erstellt wird oder leer bleibt, prüfen Sie die folgenden möglichen Ursachen:
Unterhaltungsprotokolle werden nicht gespeichert oder veröffentlicht. Aktualisieren Sie die Seite in BigQuery Studio, öffnen Sie die Agenteneinstellungen noch einmal und prüfen Sie, ob Unterhaltungsprotokollierung aktivieren aktiviert ist, das Ziel-Dataset und die Zieltabelle festgelegt sind und Ihre Änderungen veröffentlicht wurden.
Das Ziel-Dataset fehlt oder befindet sich in einem anderen Projekt. Prüfen Sie, ob das Ziel-Dataset bereits im selben Projekt wie der Daten-Agent vorhanden ist. Sie können mit
bq show PROJECT_ID:LOG_DATASETprüfen, ob das Dataset vorhanden ist. Ersetzen SiePROJECT_IDdurch die ID des Projekts, das den KI-Datenagenten enthält, undLOG_DATASETdurch die ID des Ziel-Datasets. Der KI-Agent erstellt die Protokolltabelle beim ersten protokollierten Turn, aber nicht das Dataset.Fehlende Dienst-Agent- oder CMEK-Berechtigungen. Prüfen Sie, ob der Dienst-Agent der Conversational Analytics API (
service-PROJECT_NUMBER@gcp-sa-geminidataanalytics.s3ns-system.iam.gserviceaccount.com, wobei die Nummer des Agent-Projekts anstelle der Projekt-ID verwendet wird) die Rolle „BigQuery-Datenbearbeiter“ (roles/bigquery.dataEditor) für das Log-Dataset hat. Wenn das Dataset vom Kunden verwaltete Cloud KMS-Schlüssel (CMEK) verwendet, prüfen Sie, ob das BigQuery-Verschlüsselungsdienstkonto (bq-PROJECT_NUMBER@bigquery-encryption.s3ns-system.iam.gserviceaccount.com) die Rolleroles/cloudkms.cryptoKeyEncrypterDecrypterfür den Schlüssel hat.Nicht unterstützte Konversationsplattform oder Agentenkonfiguration. Unterhaltungen im Bereich Vorschau von BigQuery Studio werden nicht protokolliert. Testen Sie den veröffentlichten KI-Agenten über den Hauptchatbildschirm. Agenten, die einen Suchbereich anstelle bestimmter BigQuery-Tabellen verwenden, die Eigenschaftsgraphen als Wissensquellen konfigurieren oder keine BigQuery-Tabellen deklarieren, werden nicht protokolliert. Weitere Informationen finden Sie unter Einschränkungen.
Für Wissensquellentabellen werden Zugriffsrichtlinien verwendet. Wenn eine Tabelle der Wissensquelle Zugriffsrichtlinien auf Zeilenebene, Sicherheit auf Spaltenebene (Richtlinien-Tags) oder dynamische Datenmaskierung verwendet, werden die Runden nicht protokolliert.
Schemakonflikt in einer vorhandenen Zieltabelle. Wenn Sie eine vorhandene Tabelle als Ziel konfiguriert haben und eine Spalte denselben Namen wie eine Spalte im Schema des Unterhaltungsprotokolls hat, aber einen anderen Typ oder Modus, schreibt BigQuery keine Zeilen in diese Tabelle.
Zeilen werden in der Regel innerhalb weniger Sekunden nach Abschluss einer Runde angezeigt. Wenn die Zeilen nach einigen Minuten immer noch nicht angezeigt werden, aktualisieren Sie das Dataset.
Unterhaltungen einiger Nutzer werden nicht protokolliert
Ursache
Vor jeder Runde wird bei der Datenschutzprüfung anhand der Anmeldedaten des Nutzers, der chattet, geprüft, ob die Wissensquellentabellen des KI-Agenten keine Richtlinien für die Sicherheit auf Zeilenebene, die Sicherheit auf Spaltenebene oder die Datenmaskierung enthalten. Wenn ein Nutzer nicht die Berechtigung hat, diese Prüfung auszuführen, werden seine Turns nicht protokolliert.
Lösung
Weisen Sie allen Nutzern, die chatten, die Rolle BigQuery-Datenbetrachter (roles/bigquery.dataViewer) für die Tabellen der Wissensquelle und die Rolle BigQuery-Jobnutzer (roles/bigquery.jobUser) für das Projekt zu, in dem ihre Abfragen ausgeführt werden. Alternativ können Sie eine benutzerdefinierte Rolle mit den Berechtigungen bigquery.tables.get und bigquery.rowAccessPolicies.list für die Tabellen der Wissensquelle zuweisen.
Beim Speichern des KI-Agenten tritt ein INVALID_ARGUMENT-Fehler auf
Fehlermeldung
The BigQuery Agent Analytics table must be in the same project as the agent (agent project: ..., table project: ...).BigQuery Agent Analytics can only be enabled on agents whose datasource is BigQuery. Remove bigquery_agent_analytics_enabled and bigquery_agent_analytics_table, or point the agent at a BigQuery datasource.
Ursache
Das Ziel-Dataset befindet sich in einem anderen Projekt als der KI-Datenagent oder die Datenquelle des KI-Agenten ist nicht BigQuery.
Lösung
Wählen Sie ein vorhandenes Ziel-Dataset im selben Projekt wie der KI-Datenagent aus oder konfigurieren Sie den KI-Datenagenten mit einer BigQuery-Datenquelle.
Gewährung des Dataset-Zugriffs schlägt fehl, weil der Dienst-Agent nicht vorhanden ist
Fehlermeldung
Service account service-PROJECT_NUMBER@gcp-sa-geminidataanalytics... does not exist
Ursache
Der Dienst-Agent der Conversational Analytics API wurde im Projekt noch nicht bereitgestellt.
Lösung
Führen Sie einen der folgenden Schritte aus:
Konfigurieren Sie zuerst das Logziel auf dem Agent und weisen Sie die Rolle dann noch einmal zu.
Stellen Sie die Dienstidentität mit dem folgenden Befehl bereit:
gcloud beta services identity create \ --service=geminidataanalytics.googleapis.com \ --project=PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch die ID des Projekts, das den KI-Datenagenten enthält.
Einstellungen für das Unterhaltungs-Logging sind in BigQuery Studio nicht verfügbar
Ursache
Sie sehen die veröffentlichte Version des Daten-Agenten, in der die Konfigurationseinstellungen Lesezugriff haben, oder für den Daten-Agenten sind keine bestimmten BigQuery-Tabellen als Wissensquellen ausgewählt.
Lösung
Wechseln Sie in der Ansichtsauswahl zu Entwurf, achten Sie darauf, dass bestimmte BigQuery-Tabellen als Wissensquellen ausgewählt sind, aktualisieren Sie die Einstellungen für das Unterhaltungs-Logging und veröffentlichen Sie dann den KI-Agenten.
Nächste Schritte
- Weitere Informationen zur Arbeitslastverwaltung mit Reservierungen
- Arbeitslastreservierungen verwalten
- Reservierungen überwachen und Diagramme zu administrativen Ressourcen verwenden
- Weitere Informationen zum Logging von Unterhaltungen für die konversationelle Analyse
- Weitere Ressourcen zur Fehlerbehebung in BigQuery