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:
Pastikan flag database
bigquery_fdw.enabledditetapkan keon. Anda dapat memverifikasinya dengan salah satu cara berikut:- Melihat flag database saat ini pada instance.
- Hubungkan ke instance dan jalankan perintah berikut di
psql:
SHOW bigquery_fdw.enabled;Jika flag
bigquery_fdw.enabledadalahoff, tetapkanbigquery_fdw.enabledkeon.
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.getdanbigquery.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.createdanbigquery.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.