Fehlerbehebung bei der BigQuery-Erweiterung für Foreign Data Wrappers

Wenn Abfragen, die die Erweiterung bigquery_fdw verwenden, fehlschlagen, können Sie die folgenden Fehlermeldungen und empfohlenen Korrekturen verwenden, um den Echtzeitzugriff auf Ihre BigQuery-Daten aus AlloyDB for PostgreSQL wiederherzustellen. Häufige Ursachen sind eine deaktivierte Erweiterung, fehlende BigQuery-Berechtigungen für das Clusterdienstkonto und Definitionen für Fremdtabellen, die nicht mit den Spaltennamen oder Datentypen in BigQuery übereinstimmen.

Informationen zum Zugriff auf Daten mit dem BigQuery-Foreign-Data-Wrapper finden Sie unter AlloyDB for PostgreSQL-Zugriff auf Echtzeitdaten in BigQuery konfigurieren.

Probleme mit Erweiterungen und Metadaten

In diesem Abschnitt sind Erweiterungs- und Metadatenfehler aufgeführt, die auftreten können, sowie Vorschläge zu deren Behebung.

Die Erweiterung „bigquery_fdw“ ist deaktiviert

Empfohlene Fehlerbehebung

Führen Sie die folgenden Schritte aus, um das Problem zu beheben:

  1. Achten Sie darauf, dass das Datenbank-Flag bigquery_fdw.enabled auf on gesetzt ist. Sie können dies auf eine der folgenden Arten überprüfen:

    SHOW bigquery_fdw.enabled;
    
  2. Wenn das Flag bigquery_fdw.enabled den Wert off hat, setzen Sie bigquery_fdw.enabled auf on.

Berechtigungs- und Zugriffsprobleme

In diesem Abschnitt sind Berechtigungs- und Zugriffsfehler aufgeführt, die auftreten können, sowie empfohlene Korrekturen.

Zugriff verweigert: Tabellenberechtigung „bigquery.tables.get“ verweigert

Die Erweiterung konnte keine BigQuery-Lesesitzung erstellen. Es ist folgender Fehler aufgetreten:

Error in non-idempotent operation: Access Denied: Table TABLE_NAME: Permission bigquery.tables.get denied on table TABLE_NAME (or it may not exist).

Dies weist darauf hin, dass das AlloyDB-Clusterdienstkonto nicht die Berechtigungen „BigQuery-Datenbetrachter“ hat.

Empfohlene Fehlerbehebung

Weisen Sie dem primären Cluster service_account_email eine der folgenden Rollen zu, um dieses Problem zu beheben:

  • BigQuery Datenbetrachter (roles/bigquery.dataViewer)
  • Eine benutzerdefinierte Rolle mit den Berechtigungen bigquery.tables.get und bigquery.tables.getData.

Zugriff auf bigquery.readsessions.create verweigert

Die Erweiterung konnte keine BigQuery-Lesesitzung erstellen. Es ist folgender Fehler aufgetreten:

Error in non-idempotent operation: request failed: the user does not have 'bigquery.readsessions.create' permission for PROJECT_NAME.

Das bedeutet, dass das AlloyDB-Clusterdienstkonto nicht die Nutzerberechtigungen für BigQuery-Lesesitzungen hat.

Empfohlene Fehlerbehebung

Weisen Sie dem service_account_email des primären Clusters eine der folgenden Rollen zu, um dieses Problem zu beheben:

  • BigQuery Read Session-Nutzer (roles/bigquery.readSessionUser)
  • Eine benutzerdefinierte Rolle mit den Berechtigungen bigquery.readsessions.create und bigquery.readsessions.getData.

Der Nutzer hat nicht die Berechtigung „bigquery.jobs.create“.

Die Erweiterung konnte keine BigQuery-Lesesitzung erstellen. Es ist folgender Fehler aufgetreten:

Error in non-idempotent operation: Access Denied: Project PROJECT_NAME: User does not have bigquery.jobs.create permission in project PROJECT_NAME.

Empfohlene Fehlerbehebung

Weisen Sie dem AlloyDB-Cluster service_account_email eine der folgenden Rollen zu, um dieses Problem zu beheben:

  • BigQuery-Jobnutzer (roles/bigquery.jobUser).
  • Eine benutzerdefinierte Rolle mit der Berechtigung bigquery.jobs.create.

Probleme mit der Konfiguration und mit Datentypen

In diesem Abschnitt werden Konfigurations- und Datentypfehler aufgeführt, die auftreten können, und es werden empfohlene Korrekturen bereitgestellt.

Die ausgewählten Felder sind im Tabellenschema nicht vorhanden

Folgende Probleme sind aufgetreten:

Error in non-idempotent operation: request failed: The following selected fields do not exist in the table schema: POSTGRES_COLUMN_NAME(S).
Error in non-idempotent operation: Unrecognized name: POSTGRES_COLUMN_NAME(S);

Dies weist auf falsche Spaltennamen in der Definition der externen Tabelle hin.

Empfohlene Fehlerbehebung

Prüfen Sie zur Behebung dieses Problems, ob der genaue Spaltenname (Groß-/Kleinschreibung beachten) in der entsprechenden BigQuery-Tabelle vorhanden ist, die in der Definition angegeben ist.

Ungültige Eingabesyntax für Typzuordnung

Der Vorgang ist mit folgendem Fehler fehlgeschlagen:

ERROR: invalid input syntax for type POSTGRES_COLUMN_DATA_TYPE: BIGQUERY_COLUMN_VALUE_RECEIVED.

Dies weist auf eine falsche Zuordnung des Spaltendatentyps in der Definition der Fremdtabelle hin.

Empfohlene Fehlerbehebung

Achten Sie darauf, dass die Datentypzuordnung kompatibel ist. Beispielsweise kann eine Stringspalte in BigQuery nicht einer Ganzzahlspalte in PostgreSQL zugeordnet werden. Weitere Informationen finden Sie unter Datentypzuordnungen.

Nicht unterstützter BigQuery-Spaltendatentyp

Folgende Probleme sind aufgetreten:

ERROR: bigquery_fdw extension encountered internal error for column: POSTGRES_COLUMN_DATA_TYPE. Only avro logical type: AVRO_BIGQUERY_LOGICAL_TYPE is supported for avro type: AVRO_BIGQUERY_DATA_TYPE.
encountered internal error for column:POSTGRES_COLUMN_NAME. Data type: BIGQUERY_DATA_TYPE is not supported.

Das bedeutet, dass der abgefragte Spaltendatentyp nicht unterstützt wird.

Empfohlene Fehlerbehebung

Informationen zur Behebung dieses Problems finden Sie unter Datentypzuordnungen.

Nicht-Tabellenentitäten können nicht gelesen werden

Die Erweiterung ist mit dem folgenden Fehler fehlgeschlagen:

ERROR: bigquery_fdw extension failed to create BigQuery read session with error: Error in non-idempotent operation: request failed: non-table entities cannot be read with the storage API.

Dies weist darauf hin, dass der abgefragte BigQuery-Tabellentyp nicht unterstützt wird.

Empfohlene Fehlerbehebung

Achten Sie zur Behebung dieses Problems darauf, dass Sie einen unterstützten BigQuery-Entitätstyp abfragen, z. B. eine Standardtabelle.