Auf dieser Seite finden Sie allgemeine Tipps zur Fehlerbehebung. für BigQuery-Abos.
Status eines BigQuery-Abos prüfen
So prüfen Sie den Status eines Abos:
Rufen Sie in der Google Cloud Console die Pub/Sub-Seite auf. auf der Seite „Abos“ angezeigt.
Klicken Sie auf das Symbol für Status für Ihr BigQuery-Abo.
Wenn das Symbol ein grünes Häkchen ist, ist das Abo fehlerfrei.
Wenn das Symbol ein rotes Ausrufezeichen ist, hat das Abo einen Fehlerstatus.
Klicken Sie auf das BigQuery-Abo.
Die Seite mit den Abodetails wird geöffnet.
Prüfen Sie den Abostatus auf die Fehlermeldung.
Gehen Sie je nach Fehlermeldung zum entsprechenden Abschnitt in diesem Seite zur Fehlerbehebung.
Nachdem das Problem behoben wurde, wird das Abo wieder fehlerfrei arbeiten.
Abo kann nicht erstellt oder aktualisiert werden
Dies sind einige der häufigsten Probleme, die auftreten können, Erstellen oder Aktualisieren eines BigQuery-Abos.
Fehler „Tabelle nicht gefunden“
Wenn die Tabelle, die Sie im Workflow zur Aboerstellung oder -aktualisierung angeben, nicht vorhanden ist, gibt der Workflow den Fehler "Tabelle nicht gefunden" zurück. In der Google Cloud Console sieht die Meldung in etwa so aus:
The BigQuery table or dataset specified cannot be found.
Um das Problem zu beheben, erstellen Sie die Tabelle und sollten Sie prüfen, sein Bundesstaat bevor Sie sie mit einem BigQuery-Abo verwenden.
Fehler bei nicht übereinstimmendem Schema
Wenn die Schemas der Tabelle und des Themas nicht kompatibel sind, dann: Der Workflow zum Erstellen oder Aktualisieren von Abos gibt einen Fehler beim Schemakonflikt zurück. In der Google Cloud Console sieht die Meldung in etwa so aus:
Incompatible schema type for field project_ids: expected INT64, got STRING
Die angegebene Fehlermeldung bezieht sich auf einen Schemakonflikt für ein Feld namens project_ids
.
Je nach Art des nicht übereinstimmenden Schemas
eine andere Variante der Fehlermeldung.
Prüfen Sie, ob die Schemazuordnungen vorhanden sind, um das Problem zu beheben sind kompatibel.
Dienstkontofehler
Wenn Sie das Pub/Sub-Dienstkonto nicht mit der Berechtigungen erteilen, gibt der Workflow zum Erstellen oder Aktualisieren des Abos einen Fehler zurück. In der Google Cloud Console sieht die Meldung in etwa so aus:
Service account service-1234234234@gcp-sa-pubsub.iam.gserviceaccount.com
is missing permissions required to write to the BigQuery table:
bigquery.tables.get, bigquery.tables.updateData.
Prüfen Sie, ob für das Dienstkonto Folgendes zutrifft, um das Problem zu beheben: über die richtigen Berechtigungen verfügen.
Der Abostatus zeigt ein rotes Ausrufezeichen
Wenn Sie die Tabelle nach dem Erstellen eines Abos bearbeiten, kann sich dies auf Folgendes auswirken: wie Pub/Sub Nachrichten in die Tabelle schreibt. Wenn eine Änderung ist das Statusfeld des Abos auf einen Fehlerstatus gesetzt ist.
Prüfen Sie auf der Seite mit den Abodetails den Status des Felds Subscription state
.
Das Feld Subscription state
gibt einen spezifischeren Fehler an.
Folgende Werte sind möglich:
table not found: Die Tabelle wurde gelöscht. Erstellen und deren Status prüfen. Siehe Tabelleninformationen abrufen.
table Berechtigung verweigert: Das Pub/Sub-Dienstkonto nein. nicht länger über die Berechtigung zum Schreiben in die Tabelle verfügt. Prüfen Sie, ob das Dienstkonto über die richtigen Berechtigungen verfügen.
Tabellenschema stimmt nicht überein: Das Tabellenschema ist nicht mehr kompatibel mit dem BigQuery-Aboeinstellungen. Prüfen Sie, ob das Schema Zuordnungen sind kompatibel.
Wenn sich ein Pub/Sub-Abo
im Fehlerstatus befindet,
Nachrichten werden nicht in die BigQuery-Tabelle geschrieben,
im Aborückstand. Beachten Sie, dass Nachrichten nicht an eine
angehängtes Thema für unzustellbare Nachrichten, falls konfiguriert. Nicht bestätigte Nachrichten werden aufbewahrt.
für den in message_retention_duration
festgelegten Zeitraum(standardmäßig 7 Tage).
Ein Backlog baut sich auf
Sie sehen, dass sich im Abo oder in den Nachrichten ein Rückstand von Nachrichten aufbaut die Sie zum Thema unzustellbarer Nachrichten eines Abos aufrufen, Ursachen.
Fehlermeldung INVALID_ARGUMENT
Dieser Fehler tritt auf, wenn die bereitgestellte Nachricht in einem Format vorliegt, das von Pub/Sub als gültig erachtet, das Schema der BigQuery-Zieltabelle jedoch nicht. Das bedeutet, dass mindestens ein Feld in der Nachricht Werte enthält, die nicht zulässig durch das BigQuery-Tabellenschema. Lesen Sie die Schemakompatibilität dass die Datentypen und -formate korrekt sind. Einige der häufigsten Fehler umfassen:
Ein leerer String (
""
) ist kein gültiges JSON-Format. Beim Senden von Daten an ein Feld mit Nullwerten JSON BigQuery-Tabellenspalte, geben Sie entweder ein leeres JSON-Objekt({})
annull
oder ein leerer JSON-String("\"\"")
zur Darstellung fehlender Werte. Wird gesendet ein leerer String führt zu einem Fehler.Wenn ein Nachrichtenfeldwert die maximale Länge des BigQuery-Felds überschreitet, die Nachricht schlägt aufgrund von Größenbeschränkungen fehl.
Fügen Sie zum Beheben von INVALID_ARGUMENT
-Fehlern einen
Thema für unzustellbare Nachrichten an die
ein interessantes Abo. Im Thema für unzustellbare Nachrichten werden Nachrichten erfasst, die
zusammen mit einem Attribut namens
CloudPubSubDeadLetterSourceDeliveryErrorMessage
der die Fehlerursache erklärt.
Diese Auslieferungsfehler können auch im Metrics Explorer angezeigt werden.
Wählen Sie den Messwert pubsub.googleapis.com/subscription/push_request_count
und
Nach response_code=invalid_argument
filtern.
Fehlermeldung RESOURCE_EXHAUSTED
Wenn Nachrichten langsam in BigQuery geschrieben werden,
Pub/Sub-Push-Kontingent oder BigQuery-Speicher Ihres Projekts erhöhen
Durchsatzkontingent für Schreibvorgänge. So prüfen Sie, ob Kontingentbeschränkungen gelten:
den Messwert für Push-Anfragen prüfen (subscription/push_request_count
)
für alle resource_exhausted
Fehler.
Eine andere Möglichkeit zur Diagnose von Kontingentproblemen besteht darin, das Kontingent des Projekts zu prüfen. Navigieren
für IAM und Verwaltung > Kontingente innerhalb des Projekts, das Pub/Sub enthält
Ressource oder BigQuery-Instanz. Suchen Sie entweder nach dem entsprechenden Kontingent
pubsub.googleapis.com/regionalpushsubscriber
oder
bigquerystorage.googleapis.com/write/append_bytes
. Wenn für eines der Kontingente ein
erhöhen, können Sie ein höheres Kontingent anfordern.
Stündlich partitionierte Tabelle mit __UNPARTITIONED__
in Spalte für Partitions-ID
Wenn eine BigQuery-Zieltabelle nach Stunde partitioniert ist,
landen zunächst in einer speziellen Partition mit der Bezeichnung __UNPARTITIONED__
innerhalb der
INFORMATION_SCHEMA.PARTITIONS
Ansicht.
Dies ist das erwartete Verhalten für Tabellen mit Aufnahmezeitpartitionierung.
BigQuery verwendet einen Streaming-Zwischenspeicher, um den Schreibvorgang zu optimieren.
Daten können sich in der Partition __UNPARTITIONED__
befinden, bis genügend Volume vorhanden ist
angesammelt werden oder mindestens eine Stunde vergangen ist. Wenn diese Bedingungen erfüllt sind,
BigQuery partitioniert die Daten neu in die entsprechende stündliche Partition.
Sie können Daten innerhalb der Partition __UNPARTITIONED__
mit dem
INFORMATION_SCHEMA.PARTITIONS
Aufruf.
Nächste Schritte
- Wenn weiterhin Probleme mit BigQuery auftreten Weitere Informationen finden Sie unter Support.