Fehlerbehebung bei BigQuery-Abos

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:

  1. Rufen Sie in der Google Cloud Console die Pub/Sub-Seite auf. auf der Seite „Abos“ angezeigt.

    Zu den Abos

  2. 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.

  3. Klicken Sie auf das BigQuery-Abo.

    Die Seite mit den Abodetails wird geöffnet.

  4. Prüfen Sie den Abostatus auf die Fehlermeldung.

  5. 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. ist länger zum Schreiben in die Tabelle berechtigt. 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 ({}) an null 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 eines anderen Abos. 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.