Menyinkronkan data BigQuery ke AlloyDB

Untuk memberi aplikasi operasional Anda akses transaksional berlatensi rendah ke data analisis, sinkronkan tabel dari BigQuery ke instance AlloyDB untuk PostgreSQL. Tidak seperti foreign data wrapper (FDW), yang mengkueri data di BigQuery, fitur sinkronisasi menyalin data ke penyimpanan AlloyDB sehingga kueri Anda membaca dari tabel lokal untuk meningkatkan performa.

AlloyDB menyediakan cara berikut untuk memindahkan data BigQuery ke instance Anda:

  • Sinkronisasi satu kali: membuat salinan tabel BigQuery yang dapat ditulis dan independen.

  • Sinkronisasi atau pencerminan berkala: membuat tabel lokal hanya baca yang otomatis dimuat ulang sesuai jadwal—misalnya, setiap 6 jam atau setiap hari.

Pertimbangan performa dan operasional

Saat Anda menggunakan tabel sinkronisasi BigQuery, pertimbangkan hal berikut:

  • Penggunaan resource: pemindahan data menggunakan CPU dan memori. Untuk tabel yang sangat besar, pertimbangkan untuk menjadwalkan sinkronisasi di luar jam puncak agar tidak memengaruhi beban kerja transaksional utama Anda.
  • Visibilitas data: selama operasi penggantian, tabel target yang ada akan dihapus dan dibuat ulang di awal. Kueri selama impor akan melihat tabel kosong pada awalnya, diikuti dengan data yang baru diimpor yang muncul secara bertahap saat transaksi batch di-commit.

Sebelum memulai

  1. Tetapkan flag database alloydb_sync.enabled=on di instance AlloyDB Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi flag database instance.
  2. Pahami cara bigquery_fdw menangani jenis data dan pemetaan kolom BigQuery, karena ekstensi alloydb_sync menggunakan bigquery_fdw untuk terhubung ke BigQuery.
  3. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. Verify that billing is enabled for your Google Cloud project.

  8. Aktifkan Cloud API yang diperlukan untuk membuat dan terhubung ke AlloyDB.

    Aktifkan API

    1. Untuk mengonfirmasi nama project yang akan Anda ubah, pada langkah Confirm project, klik Next.

    2. Pada langkah Enable APIs, klik Enable untuk mengaktifkan hal berikut:

      • AlloyDB API
      • Compute Engine API
      • Cloud Resource Manager API
      • Service Networking API
      • BigQuery Storage API

      Service Networking API diperlukan jika Anda berencana mengonfigurasi konektivitas jaringan ke AlloyDB menggunakan jaringan VPC yang berada di project Google Cloud yang sama dengan AlloyDB.

      Compute Engine API dan Cloud Resource Manager API diperlukan jika Anda berencana mengonfigurasi konektivitas jaringan ke AlloyDB menggunakan jaringan VPC yang berada di project Google Cloud yang berbeda.

  9. Pastikan Anda memiliki tabel BigQuery yang sudah ada untuk menyinkronkan data. Untuk mengetahui informasi selengkapnya, lihat Membuat dan menggunakan tabel BigQuery.

Peran yang diperlukan

Untuk memberikan akses set data BigQuery ke akun layanan cluster AlloyDB, Anda memerlukan izin berikut:

  • BigQuery Data Viewer (roles/bigquery.dataViewer) atau peran khusus apa pun dengan izin bigquery.tables.get dan bigquery.tables.getData. Jika diberikan pada akun layanan, peran ini memberikan izin untuk membaca data dan metadata dari tabel atau tampilan.
  • BigQuery Read Session User (roles/bigquery.readSessionUser) atau peran khusus apa pun dengan izin bigquery.readsessions.create dan bigquery.readsessions.getData. Memberikan kemampuan untuk membuat dan menggunakan sesi baca.
  • BigQuery Job User (roles/bigquery.jobUser) atau peran khusus apa pun dengan izin bigquery.jobs.create. Memberikan kemampuan untuk membuat dan menjalankan tugas, termasuk tugas kueri. Saat Anda menyediakan project runtime terpisah, tugas akan dijalankan di project tersebut, bukan di project data. Artinya, Anda harus memberikan peran Job User pada project runtime.

Mengonfigurasi ekstensi

Sebelum menyinkronkan tabel dari BigQuery, aktifkan ekstensi yang diperlukan dan konfigurasi koneksi ke BigQuery. Jika Anda menggunakan konsol Google Cloud , AlloyDB akan melakukan langkah-langkah ini secara otomatis.

  1. Buat ekstensi.

    1. Hubungkan ke instance AlloyDB menggunakan klien psql dengan mengikuti petunjuk di Menghubungkan klien psql ke instance.
    2. Jalankan perintah berikut:

      CREATE EXTENSION IF NOT EXISTS alloydb_sync;
      
  2. Agar AlloyDB dapat melakukan autentikasi dengan BigQuery, buat server asing dan pemetaan pengguna:

    CREATE EXTENSION IF NOT EXISTS bigquery_fdw;
    CREATE SERVER IF NOT EXISTS bigquery_server FOREIGN DATA WRAPPER bigquery_fdw
      OPTIONS (runtime_project 'RUNTIME_PROJECT_ID');
    CREATE USER MAPPING IF NOT EXISTS FOR USER SERVER bigquery_server;
    

    Ganti kode berikut:

    • RUNTIME_PROJECT_ID: optional. ID projectGoogle Cloud yang memproses kueri dan mengakumulasi biaya komputasi. Jika dihilangkan, kueri akan ditagihkan ke project yang menyimpan data.
    • USER: nama pengguna database atau pengguna IAM yang mengakses tabel BigQuery.

Menyinkronkan tabel BigQuery untuk ekspor satu kali

Anda dapat menyinkronkan tabel BigQuery untuk ekspor satu kali menggunakan konsolGoogle Cloud atau menggunakan psql.

Menggunakan konsol Google Cloud

Untuk menyinkronkan tabel BigQuery ke AlloyDB menggunakan konsolGoogle Cloud , lakukan hal berikut:

  1. Buka halaman BigQuery di konsol Google Cloud .

    Buka halaman BigQuery

  2. Di panel kiri, klik Explorer:

    Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.

  3. Di panel Explorer, luaskan project Anda, klik Datasets, lalu klik set data Anda.

  4. Klik Overview > Tables, lalu pilih tabel.

  5. Di panel detail, klik More > Export or sync to AlloyDB.

  6. Di bagian Choose a project, pilih project untuk cluster AlloyDB Anda. Jika memiliki izin yang diperlukan, Anda dapat memilih project selain project BigQuery saat ini.

  7. Di bagian Choose a target cluster, pilih salah satu opsi berikut:

    • Pilih Use an existing cluster untuk mengekspor tabel BigQuery ke cluster AlloyDB yang ada. Kemudian, lakukan hal berikut:

      1. Pilih cluster AlloyDB utama.

      2. Pilih database AlloyDB tujuan.

      3. Pilih skema untuk tabel AlloyDB tujuan Anda.

      4. Tentukan nama untuk tabel AlloyDB tujuan Anda.

      5. Untuk Sync frequency, pilih Just once untuk membuat salinan tabel BigQuery.

      6. Klik Siapkan ekspor.

      Setelah penyiapan sinkronisasi selesai, Anda dapat menggunakan pernyataan SQL yang disediakan untuk melacak tugas impor dan membuat kueri tabel yang diimpor. Klik Query untuk diarahkan ke tabel yang diimpor di AlloyDB Studio.

    • Pilih Create a new cluster untuk mengekspor tabel BigQuery ke cluster AlloyDB baru. Kemudian, lakukan hal berikut:

      1. Klik Siapkan ekspor.

      2. Dalam dialog Redirect to AlloyDB, pilih Redirect.

      3. Pilih jenis cluster, baik Free trial cluster atau Provisioned cluster.

      4. Klik Lanjutkan.

      5. Di Sync Configuration, pilih database AlloyDB tujuan postgres default, skema public default untuk tabel AlloyDB tujuan, dan tentukan nama untuk tabel AlloyDB tujuan.

        Untuk Sync frequency, pilih Just once untuk membuat salinan tabel BigQuery.

      6. Klik Lanjutkan.

      7. Konfigurasikan cluster Anda. Untuk mengetahui informasi selengkapnya tentang setiap kolom, lihat Membuat cluster dan instance utama baru.

      8. Klik Create cluster.

      Setelah penyiapan sinkronisasi selesai, buka AlloyDB Studio untuk mengkueri tabel yang diimpor.

Menyinkronkan tabel BigQuery satu kali menggunakan psql

Untuk membuat salinan data BigQuery yang dapat diedit, gunakan psql untuk menjalankan fungsi alloydb_sync.import_bq_table.

SELECT alloydb_sync.import_bq_table(
  'PROJECT_ID.DATASET_ID.TABLE_ID',
  'ALLOYDB_DESTINATION_TABLE_NAME',
  'ON_EXISTS',
  ARRAY['PRIMARY_KEY_COLUMN']
);

Ganti kode berikut:

  • PROJECT_ID: ID project tempat set data BigQuery berada.
  • DATASET_ID: nama set data BigQuery untuk tabel. Untuk tabel Iceberg dengan nama 4 bagian, ini adalah Catalog.Namespace.
  • TABLE_ID: nama tabel atau tampilan BigQuery.
  • ALLOYDB_DESTINATION_TABLE_NAME: nama tabel lokal di database AlloyDB yang akan dibuat dan diimpor datanya. Anda dapat menyertakan nama skema—misalnya, public.local_sales.
  • ON_EXISTS: strategi yang akan digunakan jika tabel tujuan sudah ada.
  • PRIMARY_KEY_COLUMN: daftar nama kolom opsional untuk digunakan sebagai kunci utama.

Contoh

Contoh berikut menunjukkan cara menyinkronkan tabel bernama transactions dari set data BigQuery ke tabel AlloyDB baru bernama public.local_sales:

SELECT alloydb_sync.import_bq_table(
    'my-gcp-project.sales_data.transactions',
    'public.local_sales',
    'replace'
);
Parameter on_exists

Parameter on_exists menentukan cara fungsi menangani sinkronisasi jika tabel tujuan sudah ada di AlloyDB:

  • error: opsi default. Menghentikan sinkronisasi jika tabel tujuan sudah ada.
  • skip: melewati sinkronisasi jika tabel tujuan sudah ada.
  • replace: mengganti tabel lokal yang ada dengan data baru dari BigQuery.
Dukungan kunci utama

Jika Anda memberikan parameter primary_key opsional sebagai array teks, AlloyDB akan membuat tabel dengan kolom yang ditentukan sebagai kunci utama.

SELECT alloydb_sync.import_bq_table(
    'my-gcp-project.sales_data.transactions',
    'public.local_sales',
    ARRAY['transaction_id']
);

Menyinkronkan tabel BigQuery untuk ekspor berkala

Anda dapat menyinkronkan tabel BigQuery untuk ekspor berkala menggunakan konsolGoogle Cloud atau menggunakan psql.

Menggunakan konsol Google Cloud

Untuk menyinkronkan tabel BigQuery ke AlloyDB menggunakan konsolGoogle Cloud , lakukan hal berikut:

  1. Buka halaman BigQuery di konsol Google Cloud .

    Buka halaman BigQuery

  2. Di panel kiri, klik Explorer:

    Tombol yang ditandai untuk panel Explorer.

    Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.

  3. Di panel Explorer, luaskan project Anda, klik Datasets, lalu klik set data Anda.

  4. Klik Overview > Tables, lalu pilih tabel.

  5. Di panel detail, klik More > Export or sync to AlloyDB.

  6. Di bagian Choose a project, pilih project untuk cluster AlloyDB Anda. Jika memiliki izin yang diperlukan, Anda dapat memilih project selain project BigQuery saat ini.

  7. Di bagian Choose a target cluster, pilih salah satu opsi berikut:

    • Pilih Use an existing cluster untuk mengekspor tabel BigQuery ke cluster AlloyDB yang ada. Kemudian, lakukan hal berikut:

      1. Pilih cluster AlloyDB utama.

      2. Pilih database AlloyDB tujuan.

      3. Pilih skema untuk tabel AlloyDB tujuan Anda.

      4. Tentukan nama untuk tabel AlloyDB tujuan Anda.

      5. Untuk Sync frequency, pilih jangka waktu untuk membuat sinkronisasi berkala tabel BigQuery—misalnya, Every hour, Every six hours.

      6. Klik Siapkan ekspor.

      Setelah penyiapan sinkronisasi selesai, Anda dapat menggunakan pernyataan SQL yang disediakan untuk melacak tugas impor dan membuat kueri tabel yang diimpor. Klik Query untuk diarahkan ke tabel yang diimpor di AlloyDB Studio.

    • Pilih Create a new cluster untuk mengekspor tabel BigQuery ke cluster AlloyDB baru. Kemudian, lakukan hal berikut:

      1. Klik Siapkan ekspor.

      2. Dalam dialog Redirect to AlloyDB, pilih Redirect.

      3. Pilih jenis cluster, baik Free trial cluster atau Provisioned cluster.

      4. Klik Lanjutkan.

      5. Di Sync Configuration, pilih database AlloyDB tujuan postgres default, skema public default untuk tabel AlloyDB tujuan, dan tentukan nama untuk tabel AlloyDB tujuan.

        Untuk Sync frequency, pilih Just once untuk membuat salinan tabel BigQuery.

      6. Klik Lanjutkan.

      7. Konfigurasikan cluster Anda. Untuk mengetahui informasi selengkapnya tentang setiap kolom, lihat Membuat cluster dan instance utama baru.

      8. Klik Create cluster.

      Setelah penyiapan sinkronisasi selesai, buka AlloyDB Studio untuk mengkueri tabel yang diimpor.

Membuat sinkronisasi berkala

Untuk mengelola tabel hanya baca yang tetap disinkronkan dengan data BigQuery, gunakan psql untuk menjalankan fungsi alloydb_sync.create_bq_sync_table.

SELECT alloydb_sync.create_bq_sync_table(
    'PROJECT_ID.DATASET_ID.TABLE_ID',
    'ALLOYDB_DESTINATION_TABLE_NAME',
    'REFRESH_INTERVAL',
    'ON_EXISTS',
    ARRAY['PRIMARY_KEY_COLUMN']
);

Ganti kode berikut:

  • PROJECT_ID.DATASET_ID.TABLE_ID: Nama tabel atau tampilan BigQuery yang sepenuhnya memenuhi syarat, termasuk project ID, ID set data, dan ID tabel, yang dipisahkan dengan titik. Untuk tabel Iceberg dengan nama 4 bagian, DATASET_ID direpresentasikan sebagai Catalog.Namespace. Contoh, my-gcp-project.sales_data.transactions.
  • ALLOYDB_DESTINATION_TABLE_NAME: nama tabel lokal di database AlloyDB yang akan dibuat dan disinkronkan datanya.
  • REFRESH_INTERVAL: interval saat AlloyDB memperbarui data secara berkala dari BigQuery—misalnya, 12 hours.
  • ON_EXISTS: strategi yang akan digunakan jika tabel tujuan sudah ada.
  • PRIMARY_KEY_COLUMN: daftar nama kolom opsional yang akan digunakan sebagai kunci utama.

Contoh

Contoh berikut menunjukkan cara membuat duplikasi profil pelanggan yang diperbarui setiap 12 jam:

SELECT alloydb_sync.create_bq_sync_table(
    'my-gcp-project.crm_data.profiles',
    'public.customer_mirror',
    '12 hours',
    'replace'
);

Memantau dan mengelola tugas

Setelah memulai sinkronisasi, Anda dapat memantau progresnya dan mengelola tugas.

Memeriksa status tugas

Sinkronisasi dalam jumlah besar dapat memerlukan waktu. Anda dapat memantau progres, termasuk data yang diproses dan perkiraan waktu penyelesaian, dengan mengkueri tabel virtual job_status:

SELECT
    import_id,
    status,
    records_processed,
    total_records,
    error_message
FROM alloydb_sync.job_status;

Misalnya, untuk membatalkan tugas, jalankan perintah berikut:

SELECT alloydb_sync.cancel_import_job('85bb5dfa-dfb9-4017-9153-738f55abe4b1');

Menghentikan dan menghapus tugas sinkronisasi

Untuk berhenti menduplikasi tabel BigQuery dan menghapus tabel lokal, gunakan fungsi alloydb_sync.delete_bq_sync_table:

SELECT alloydb_sync.delete_bq_sync_table('public.customer_mirror');

Pemetaan jenis data

Saat Anda menyinkronkan atau mengimpor data dari BigQuery ke AlloyDB menggunakan ekstensi alloydb_sync, AlloyDB memetakan jenis data BigQuery ke jenis data PostgreSQL yang sesuai di tabel target Anda.

Pastikan kolom tabel BigQuery sumber Anda menggunakan jenis data yang didukung yang tercantum dalam tabel berikut:

Jenis data tabel BigQuery Jenis data PostgreSQL
BOOLEAN BOOLEAN
INTEGER (INT64) BIGINT
FLOAT (FLOAT64) DOUBLE PRECISION
STRING TEXT
NUMERIC NUMERIC
BIGNUMERIC NUMERIC
DATE DATE
TIMESTAMP TIMESTAMPTZ
TIME TIME
DATETIME TIMESTAMP
JSON JSONB
BYTES BYTEA

Batasan

Batasan berikut berlaku saat menyinkronkan tabel dari BigQuery:

  • Fitur ini hanya didukung untuk PostgreSQL versi 18.
  • Fitur ini memerlukan flag database alloydb_sync.enabled=on pada instance.
  • Saat mengonfigurasi server asing bigquery_fdw dan pemetaan pengguna dalam database, Anda harus memberi nama server asing bigquery_server.
  • Jenis data BigQuery yang kompleks seperti ARRAY, STRUCT, VECTOR, GEOGRAPHY, RANGE, dan INTERVAL tidak didukung untuk sinkronisasi. Jenis data BigQuery berparameter seperti STRING(L), BYTES(L), NUMERIC(P, S), dan BIGNUMERIC(P, S) dipetakan ke TEXT. Untuk mengetahui informasi selengkapnya, lihat jenis data dan pemetaan kolom BigQuery yang didukung.
  • Saat Anda menentukan parameter primary_key, daftar nama kolom kunci utama yang dipisahkan koma tidak boleh melebihi 1.023 byte. Selain itu, nama dan nilai kolom kunci utama yang diserialisasi JSON untuk sebuah baris tidak boleh melebihi 255 byte.
  • Untuk tabel sinkronisasi berkala yang dibuat dengan fungsi alloydb_sync.create_bq_sync_table, parameter refresh_interval tidak mendukung bulan atau tahun. Tentukan interval sebagai bilangan bulat hari, jam kurang dari 24, menit kurang dari 60, atau detik kurang dari 60. Interval unit campuran, seperti 1 hour 30 minutes atau 90 minutes, dipotong menjadi bilangan bulat dari satuan waktu terbesar, seperti 1 hour.
  • Hanya pengguna database yang memulai tugas sinkronisasi atau membuat tabel sinkronisasi berkala yang dapat melakukan hal berikut:

    • Melihat tugas dalam tampilan alloydb_sync.job_status
    • Membatalkan tugas dengan fungsi alloydb_sync.cancel_import_job
    • Menghapus tabel sinkronisasi dengan fungsi alloydb_sync.delete_bq_sync_table
  • Tugas sinkronisasi meng-commit data secara bertahap dalam batch, bukan dalam satu transaksi. Selama operasi replace, tabel tujuan akan dihapus dan dibuat ulang sebelum data dimuat, sehingga kueri serentak akan melihat tabel kosong atau terisi sebagian hingga tugas selesai. Jika tugas impor gagal atau dibatalkan sebelum selesai, baris yang diimpor sebagian dan definisi tabel asing internal akan tetap ada dalam database. Untuk memulihkan, jalankan ulang impor dengan parameter on_exists yang ditetapkan ke replace.

  • Jika terjadi gangguan selama impor latar belakang awal untuk tabel sinkronisasi berkala yang baru didaftarkan, tabel akan tetap tidak lengkap hingga interval refresh terjadwal berikutnya.

  • Perintah DROP DATABASE standar gagal saat worker pelacak tugas latar belakang terhubung ke database yang memiliki tabel sinkronisasi berkala atau aktivitas sinkronisasi dalam 10 detik terakhir.

  • Dalam database yang tidak memiliki tabel sinkronisasi berkala yang dikonfigurasi menggunakan fungsi alloydb_sync.create_bq_sync_table, pekerja pelacak tugas latar belakang akan dinonaktifkan setelah 10 detik waktu tidak ada aktivitas. Worker mengalokasikan segmen memori bersama dinamis baru pada panggilan fungsi alloydb_sync.import_bq_table berikutnya atau saat ekstensi alloydb_sync dihapus dan dibuat ulang. Menjalankan sejumlah besar impor satu kali yang terisolasi dan dipisahkan oleh periode tidak aktif tanpa tabel sinkronisasi berkala yang aktif dapat menghabiskan slot memori bersama, sehingga memerlukan mulai ulang instance.

Praktik terbaik

Ikuti praktik terbaik berikut saat mengonfigurasi dan mengelola sinkronisasi tabel dari BigQuery:

  • Jalankan pernyataan CREATE EXTENSION IF NOT EXISTS alloydb_sync CASCADE; dalam transaksi yang di-commit sebelum memanggil fungsi sinkronisasi apa pun.
  • Jangan mengubah tabel BigQuery sumber selama impor. Jika tabel sumber diperbarui secara serentak, tugas sinkronisasi mungkin akan mengimpor data yang diperbarui.
  • Tentukan nama tabel tujuan yang konsisten dan memenuhi syarat skema, seperti public.my_table, saat memanggil fungsi alloydb_sync.import_bq_table, alloydb_sync.create_bq_sync_table, atau alloydb_sync.delete_bq_sync_table. Jangan memulai beberapa tugas sinkronisasi untuk tabel tujuan yang sama secara bersamaan. Jika Anda menyinkronkan tabel di beberapa database pada cluster yang sama, gunakan nama skema atau tabel yang berbeda di seluruh database.
  • Saat membuat tabel sinkronisasi berkala dengan fungsi alloydb_sync.create_bq_sync_table, tetapkan parameter on_exists ke replace agar pemuatan ulang terjadwal memperbarui tabel tujuan. Tentukan parameter refresh_interval sebagai satu unit utuh hari, jam kurang dari 24, menit kurang dari 60, atau detik kurang dari 60.
  • Saat mengimpor tabel BigQuery yang sangat besar, tingkatkan nilai flag database temp_file_limit, dan secara opsional nilai flag work_mem, pada instance Anda agar impor tidak melebihi batas ukuran file sementara. Selama impor, baris yang masuk di-buffer dalam memori hingga batas work_mem, lalu di-stage dalam file sementara PostgreSQL lokal sebelum commit batch selesai.
  • Jangan jalankan pernyataan DROP TABLE secara manual pada tabel sinkronisasi yang direplikasi atau tabel dengan impor aktif. Untuk menghentikan impor yang sedang berlangsung, jalankan fungsi alloydb_sync.cancel_import_job terlebih dahulu sebagai pengguna database yang memulai tugas. Untuk menghapus tabel sinkronisasi berkala dan jadwalnya, gunakan fungsi alloydb_sync.delete_bq_sync_table dan teruskan nama tabel tujuan yang sama persis dengan yang Anda gunakan saat membuat tabel sinkronisasi.
  • Jika impor satu kali gagal atau dibatalkan sebelum selesai, jalankan kembali fungsi alloydb_sync.import_bq_table dengan parameter on_exists yang ditetapkan ke replace. Jika impor latar belakang awal untuk tabel sinkronisasi berkala yang baru didaftarkan terganggu dan Anda ingin segera menyelesaikannya, bukan menunggu pemuatan ulang terjadwal berikutnya, hapus tabel sinkronisasi menggunakan fungsi alloydb_sync.delete_bq_sync_table dan buat ulang.
  • Jika slot worker latar belakang di max_worker_processes habis saat tugas dimulai, atau jika database error saat impor sedang dalam antrean atau berjalan, metadata tugas mungkin tetap terjebak dalam status QUEUED atau RUNNING dan memblokir impor mendatang ke tabel tersebut. Untuk membatalkan pemblokiran tabel, perbarui status tugas sebagai pengguna database yang memulai tugas dengan menjalankan perintah berikut:

    UPDATE alloydb_sync.import_job_status
    SET status = 'FAILED'
    WHERE status IN ('QUEUED', 'RUNNING');
    
  • Untuk menghapus database yang memiliki tabel sinkronisasi berkala atau aktivitas sinkronisasi terbaru, jalankan DROP DATABASE DATABASE_NAME WITH (FORCE), atau hapus semua tabel sinkronisasi terlebih dahulu dan tunggu setidaknya 10 detik hingga worker pelacak latar belakang keluar. Anda dapat memverifikasi apakah worker masih terhubung ke database dengan mengkueri tampilan pg_stat_activity:

    SELECT pid, datname, backend_type
    FROM pg_stat_activity
    WHERE datname = 'DATABASE_NAME'
      AND backend_type = 'job_tracker';
    

    Ganti DATABASE_NAME dengan nama database Anda.

Harga

Saat menyinkronkan data dari BigQuery ke AlloyDB, Anda akan ditagih menggunakan harga pembacaan streaming BigQuery (Storage Read API).

Setelah data diekspor, Anda dikenai biaya penyimpanan data di AlloyDB. Untuk mengetahui informasi selengkapnya, lihat Harga AlloyDB untuk PostgreSQL.

Langkah berikutnya