Memigrasi tabel CDC ke region lain

Anda dapat memindahkan set data tujuan Datastream ke region atau multi-region BigQuery lain menggunakan replikasi set data lintas region. Alur kerja ini memperbarui lokasi set data change data capture (CDC) aktif sekaligus meminimalkan waktu non-aktif streaming dan menghindari backfill historis lengkap dari database sumber Anda.

Selama migrasi, kueri region sekunder mungkin menampilkan hasil yang tidak lengkap atau tidak akurat. Untuk mengetahui informasi selengkapnya tentang batasan migrasi, lihat Replikasi set data lintas region.

Sebelum memulai

Sebelum mulai memigrasikan data ke region lain, pertimbangkan hal berikut:

  • Migrasi memerlukan waktu, dan Anda harus menjeda streaming untuk sementara selama operasi. Untuk menjaga integritas data, database sumber harus mempertahankan log perubahan saat streaming dijeda. Untuk memperkirakan durasi streaming harus dijeda, gabungkan nilai max_staleness dalam set data dan operasi gabungan yang berjalan paling lama:
    • Untuk mengetahui informasi tentang perkiraan durasi penyelesaian operasi gabungan, lihat Nilai tabel yang direkomendasikan max_staleness.
    • Untuk menemukan max_staleness maksimum dalam set data, lihat Menentukan nilai max_staleness tabel saat ini dan menyesuaikan kueri dengan kebutuhan spesifik Anda.
    • Jika perkiraan jeda terlalu lama untuk didukung oleh database sumber Anda, sebaiknya pertimbangkan untuk mengurangi nilai max_staleness tabel dalam set data untuk sementara.
  • Pastikan pengguna yang melakukan migrasi memiliki resource BigQuery yang memadai di region tujuan (reservasi kueri dan reservasi latar belakang). Untuk mengetahui informasi selengkapnya tentang reservasi, lihat Penugasan reservasi.
  • Pastikan pengguna yang melakukan migrasi memiliki izin yang memadai untuk melakukan operasi ini, seperti kontrol Identity and Access Management (IAM) atau Kontrol Layanan VPC.

Langkah-langkah migrasi

Untuk memulai migrasi set data, gunakan replikasi data BigQuery:

  1. Di Google Cloud konsol, buka halaman BigQuery Studio.

    Buka BigQuery Studio

  2. Buat replika set data BigQuery di region baru:

    ALTER SCHEMA DATASET_NAME
    ADD REPLICA 'NEW_REGION'
    OPTIONS(location='NEW_REGION');
    

    Ganti kode berikut:

    • DATASET_NAME: nama set data yang ingin Anda buat.
    • NEW_REGION: nama region tempat Anda ingin membuat set data. Misalnya, region-us.
  3. Pantau progres migrasi, dan tunggu hingga watermark salinan di replika berada dalam waktu beberapa menit dari yang utama. Anda dapat menjalankan kueri ini di BigQuery INFORMATION_SCHEMA untuk memeriksa progres migrasi:

    SELECT
    catalog_name as project_id,
    schema_name as dataset_name,
    replication_time as dataset_replica_staleness
    FROM
    'NEW_REGION'.INFORMATION_SCHEMA.SCHEMATA_REPLICAS
    WHERE
    catalog_name = PROJECT_ID
    AND schema_name = DATASET_NAME
    AND location = NEW_REGION;
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • DATASET_NAME: nama set data Anda.
    • DATASET_REPLICA_STALENESS: konfigurasi staleness tabel di replika set data yang Anda buat.
    • NEW_REGION: region tempat Anda membuat set data.
  4. Jeda streaming Datastream yang ada. Untuk mengetahui informasi selengkapnya, lihat Menjeda streaming.

  5. Tunggu hingga streaming selesai dan catat waktu saat streaming memasuki status PAUSED.

  6. Pastikan perubahan CDC terbaru telah diterapkan ke tabel BigQuery dengan memeriksa upsert_stream_apply_watermark untuk tabel. Jalankan kueri berikut dan pastikan stempel waktu watermark 10 menit lebih lambat dari saat streaming dijeda:

    SELECT table_name, upsert_stream_apply_watermark
    FROM DATASET_NAME.INFORMATION_SCHEMA.TABLES
    

    Untuk menjalankan kueri hanya untuk tabel tertentu, tambahkan klausa WHERE berikut:

    WHERE table_name = 'TABLE_NAME'
    

    Ganti kode berikut:

    • DATASET_NAME: nama set data Anda.
    • TABLE_NAME: opsional. Tabel yang ingin Anda periksa upsert_stream_apply_watermark-nya.
  7. Gunakan kueri dari langkah 3 untuk memverifikasi bahwa watermark salinan region baru lebih lambat dari upsert_stream_apply_watermark yang diambil pada langkah 6.

  8. Secara opsional, bandingkan beberapa tabel dalam set data utama di region asli dengan replika di region baru secara manual untuk memverifikasi bahwa semua data disalin dengan benar.

  9. Promosikan replika set data BigQuery dengan menjalankan perintah berikut di BigQuery Studio:

    ALTER SCHEMA DATASET_NAME
    SET OPTIONS(primary_replica = 'NEW_REGION');
    

    Ganti kode berikut:

    • DATASET_NAME: nama set data Anda.
    • NEW_REGION: region tempat Anda membuat set data.
  10. Secara opsional, jika Anda tidak lagi memerlukan set data asli (sekarang replika), dan tidak ingin dikenai biaya tambahan, buka BigQuery Studio dan hapus set data BigQuery asli:

    ALTER SCHEMA DATASET_NAME DROP REPLICA IF EXISTS ORIGINAL_REGION;
    

    Ganti kode berikut:

    • DATASET_NAME: nama set data asli.
    • ORIGINAL_REGION: region set data asli.
  11. Buat streaming baru dengan konfigurasi yang sama persis, tetapi dengan lokasi tujuan BigQuery baru.

  12. Mulai streaming baru.

    Untuk mencegah replikasi peristiwa duplikat, mulai streaming dari posisi tertentu:

    • Untuk sumber MySQL dan Oracle: Anda dapat mengidentifikasi posisi log dengan memeriksa log streaming asli dan menemukan posisi terakhir tempat streaming berhasil dibaca. Untuk mengetahui informasi tentang cara memulai streaming dari posisi tertentu, lihat Mengelola streaming.
    • Untuk sumber PostgreSQL: streaming baru mulai membaca perubahan dari nomor urutan log (LSN) pertama di slot replikasi. Karena streaming asli mungkin telah memproses beberapa perubahan ini, ubah pointer slot replikasi secara manual ke LSN terakhir tempat Datastream membaca. Anda dapat menemukan LSN ini di log konsumen Datastream.
  13. Secara opsional, hapus streaming asli.