Memecahkan masalah ekstensi pembungkus data asing BigQuery

Jika kueri yang menggunakan ekstensi bigquery_fdw gagal, gunakan pesan error dan perbaikan yang direkomendasikan berikut untuk memulihkan akses real-time ke data BigQuery Anda dari AlloyDB untuk PostgreSQL. Penyebab umumnya mencakup ekstensi yang dinonaktifkan, izin BigQuery yang tidak ada untuk akun layanan cluster, dan definisi tabel asing yang tidak cocok dengan nama kolom atau jenis data di BigQuery.

Untuk mengetahui informasi tentang cara menggunakan wrapper data asing BigQuery untuk mengakses data, lihat Mengonfigurasi akses AlloyDB untuk PostgreSQL ke data real-time di BigQuery.

Masalah ekstensi dan metadata

Bagian ini mencantumkan error ekstensi dan metadata yang mungkin Anda alami dan memberikan saran tentang cara memperbaiki setiap error tersebut.

Ekstensi bigquery_fdw dinonaktifkan

Perbaikan yang direkomendasikan

Untuk menyelesaikan masalah ini, ikuti langkah berikut:

  1. Pastikan flag database bigquery_fdw.enabled ditetapkan ke on. Anda dapat memverifikasinya dengan salah satu cara berikut:

    SHOW bigquery_fdw.enabled;
    
  2. Jika flag bigquery_fdw.enabled adalah off, tetapkan bigquery_fdw.enabled ke on.

Masalah izin dan akses

Bagian ini mencantumkan error izin dan akses yang mungkin Anda alami dan memberikan perbaikan yang direkomendasikan.

Access Denied: Table permission bigquery.tables.get denied

Ekstensi gagal membuat sesi baca BigQuery dengan error berikut:

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

Hal ini menunjukkan bahwa akun layanan cluster AlloyDB tidak memiliki izin BigQuery Data Viewer.

Perbaikan yang direkomendasikan

Untuk mengatasi masalah ini, berikan cluster utama service_account_email salah satu peran berikut:

  • BigQuery Data Viewer (roles/bigquery.dataViewer)
  • Peran khusus yang berisi izin bigquery.tables.get dan bigquery.tables.getData.

Akses bigquery.readsessions.create ditolak

Ekstensi gagal membuat sesi baca BigQuery dengan error berikut:

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

Hal ini menunjukkan bahwa akun layanan cluster AlloyDB tidak memiliki izin pengguna sesi baca BigQuery.

Perbaikan yang direkomendasikan

Untuk mengatasi masalah ini, berikan service_account_email cluster utama dengan salah satu peran berikut:

  • BigQuery Read Session User (roles/bigquery.readSessionUser)
  • Peran khusus yang berisi izin bigquery.readsessions.create dan bigquery.readsessions.getData.

Pengguna tidak memiliki izin bigquery.jobs.create

Ekstensi gagal membuat sesi baca BigQuery dengan error berikut:

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

Perbaikan yang direkomendasikan

Untuk mengatasi masalah ini, berikan salah satu peran berikut ke cluster AlloyDB service_account_email:

  • BigQuery Job User (roles/bigquery.jobUser).
  • Peran khusus yang berisi izin bigquery.jobs.create.

Masalah konfigurasi dan jenis data

Bagian ini mencantumkan error konfigurasi dan jenis data yang mungkin Anda alami dan memberikan perbaikan yang direkomendasikan.

Kolom yang dipilih tidak ada dalam skema tabel

Masalah berikut terjadi:

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

Hal ini menunjukkan nama kolom yang salah dalam definisi tabel asing.

Perbaikan yang direkomendasikan

Untuk mengatasi masalah ini, pastikan nama kolom yang sama persis (peka huruf besar/kecil) ada di tabel BigQuery terkait yang ditentukan dalam definisi.

Sintaksis input tidak valid untuk pemetaan jenis

Operasi gagal dengan error berikut:

ERROR: invalid input syntax for type POSTGRES_COLUMN_DATA_TYPE: BIGQUERY_COLUMN_VALUE_RECEIVED.

Hal ini menunjukkan pemetaan jenis data kolom yang salah dalam definisi tabel asing.

Perbaikan yang direkomendasikan

Untuk mengatasi masalah ini, pastikan pemetaan jenis data kompatibel—misalnya, kolom string di BigQuery tidak dapat dipetakan ke kolom bilangan bulat di PostgreSQL. Untuk mengetahui informasi selengkapnya, lihat Pemetaan jenis data.

Jenis data kolom BigQuery yang tidak didukung

Masalah berikut terjadi:

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.

Hal ini menunjukkan bahwa jenis data kolom yang sedang dikueri tidak didukung.

Perbaikan yang direkomendasikan

Untuk mengatasi masalah ini, lihat Pemetaan jenis data.

Entitas non-tabel tidak dapat dibaca

Ekstensi gagal dengan error berikut:

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.

Hal ini menunjukkan bahwa jenis tabel BigQuery yang dikueri tidak didukung.

Perbaikan yang direkomendasikan

Untuk mengatasi masalah ini, pastikan Anda membuat kueri jenis entity BigQuery yang didukung, seperti tabel standar.