Risolvere i problemi relativi all'estensione wrapper di dati esterni BigQuery

Se le query che utilizzano l'estensione bigquery_fdw non vanno a buon fine, utilizza i seguenti messaggi di errore e le correzioni consigliate per ripristinare l'accesso in tempo reale ai dati BigQuery da AlloyDB per PostgreSQL. Le cause più comuni includono un'estensione disabilitata, autorizzazioni BigQuery mancanti per il account di servizio del cluster e definizioni di tabelle esterne che non corrispondono ai nomi delle colonne o ai tipi di dati in BigQuery.

Per informazioni sull'utilizzo del wrapper di dati esterni di BigQuery per accedere ai dati, consulta Configura l'accesso di AlloyDB per PostgreSQL ai dati in tempo reale in BigQuery.

Problemi relativi a estensioni e metadati

Questa sezione elenca gli errori relativi alle estensioni e ai metadati che potresti riscontrare e fornisce suggerimenti su come risolverli.

L'estensione bigquery_fdw è disabilitata

Correzione consigliata

Per risolvere il problema, procedi nel seguente modo:

  1. Assicurati che il flag di database bigquery_fdw.enabled sia impostato su on. Puoi verificarlo in uno dei seguenti modi:

    SHOW bigquery_fdw.enabled;
    
  2. Se il flag bigquery_fdw.enabled è off, imposta bigquery_fdw.enabled su on.

Problemi di autorizzazione e accesso

Questa sezione elenca gli errori di autorizzazione e accesso che potresti riscontrare e fornisce le correzioni consigliate.

Accesso negato: autorizzazione per la tabella bigquery.tables.get negata

L'estensione non è riuscita a creare una sessione di lettura BigQuery con il seguente errore:

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

Ciò indica che il account di servizio del cluster AlloyDB non dispone delle autorizzazioni di visualizzatore dati BigQuery.

Correzione consigliata

Per risolvere il problema, fornisci al cluster principale service_account_email uno dei seguenti ruoli:

  • BigQuery Data Viewer (roles/bigquery.dataViewer)
  • Un ruolo personalizzato contenente le autorizzazioni bigquery.tables.get e bigquery.tables.getData.

Accesso bigquery.readsessions.create negato

L'estensione non è riuscita a creare una sessione di lettura BigQuery con il seguente errore:

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

Ciò indica che il account di servizio del cluster AlloyDB non dispone delle autorizzazioni utente per la sessione di lettura di BigQuery.

Correzione consigliata

Per risolvere il problema, fornisci al service_account_email del cluster principale uno dei seguenti ruoli:

  • Utente sessione di lettura BigQuery (roles/bigquery.readSessionUser)
  • Un ruolo personalizzato contenente le autorizzazioni bigquery.readsessions.create e bigquery.readsessions.getData.

L'utente non dispone dell'autorizzazione bigquery.jobs.create

L'estensione non è riuscita a creare una sessione di lettura BigQuery con il seguente errore:

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

Correzione consigliata

Per risolvere il problema, fornisci al cluster AlloyDB service_account_email uno dei seguenti ruoli:

  • Utente job BigQuery (roles/bigquery.jobUser).
  • Un ruolo personalizzato contenente l'autorizzazione bigquery.jobs.create.

Problemi di configurazione e relativi ai tipi di dati

Questa sezione elenca gli errori di configurazione e del tipo di dati che potresti riscontrare e fornisce le correzioni consigliate.

I campi selezionati non esistono nello schema della tabella

Si sono verificati i seguenti problemi:

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);

Indica nomi di colonne non corretti nella definizione della tabella esterna.

Correzione consigliata

Per risolvere il problema, assicurati che il nome esatto della colonna (sensibile alle maiuscole) esista nella tabella BigQuery corrispondente specificata nella definizione.

Sintassi di input non valida per la mappatura dei tipi

Operazione non riuscita con il seguente errore:

ERROR: invalid input syntax for type POSTGRES_COLUMN_DATA_TYPE: BIGQUERY_COLUMN_VALUE_RECEIVED.

Ciò indica una mappatura errata del tipo di dati della colonna nella definizione della tabella esterna.

Correzione consigliata

Per risolvere il problema, assicurati che la mappatura dei tipi di dati sia compatibile. Ad esempio, una colonna di stringhe in BigQuery non può essere mappata a una colonna di numeri interi in PostgreSQL. Per saperne di più, consulta Mappature dei tipi di dati.

Tipo di dati della colonna BigQuery non supportato

Si sono verificati i seguenti problemi:

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.

Ciò indica che il tipo di dati della colonna su cui viene eseguita la query non è supportato.

Correzione consigliata

Per risolvere il problema, consulta Mappature dei tipi di dati.

Impossibile leggere le entità non tabulari

L'estensione non è riuscita con il seguente errore:

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.

Ciò indica che il tipo di tabella BigQuery su cui viene eseguita la query non è supportato.

Correzione consigliata

Per risolvere il problema, assicurati di eseguire query su un tipo di entità BigQuery supportato, ad esempio una tabella standard.