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:
Achten Sie darauf, dass das Datenbank-Flag
bigquery_fdw.enabledaufongesetzt ist. Sie können dies auf eine der folgenden Arten überprüfen:- Aktuelle Datenbank-Flags für die Instanz ansehen
- Stellen Sie eine Verbindung zur Instanz her und führen Sie den folgenden Befehl in
psqlaus:
SHOW bigquery_fdw.enabled;Wenn das Flag
bigquery_fdw.enabledden Wertoffhat, setzen Siebigquery_fdw.enabledaufon.
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.getundbigquery.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.createundbigquery.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.