Memigrasi tabel CDC ke region lain

Halaman ini menjelaskan praktik terbaik untuk kasus penggunaan saat Anda telah menyiapkan replikasi Datastream ke BigQuery, tetapi mengonfigurasi set data tujuan di region yang salah. Kemudian, Anda ingin memindahkan set data ke region (atau multi-region) lain tanpa harus menyinkronkan ulang semua data dari database sumber ke BigQuery.

Sebelum memulai

Sebelum Anda mulai memigrasikan data ke region lain, pertimbangkan hal-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 jeda streaming, gabungkan nilai max_staleness dalam set data dan operasi penggabungan yang berjalan paling lama:
    • Untuk mengetahui informasi tentang berapa lama waktu yang dibutuhkan untuk menyelesaikan operasi penggabungan, lihat Nilai max_staleness tabel yang direkomendasikan.
    • Untuk menemukan max_staleness maksimum dalam set data, lihat Menentukan nilai max_staleness tabel saat ini dan sesuaikan kueri dengan kebutuhan spesifik Anda.
    • Jika jeda yang diperkirakan terlalu lama untuk didukung oleh database sumber, Anda mungkin ingin mempertimbangkan untuk mengurangi nilai max_staleness sementara untuk tabel dalam set data.
  • 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 Penetapan pemesanan.
  • 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 migrasi

Untuk memulai migrasi set data, gunakan replikasi data BigQuery:

  1. Di konsol Google Cloud , 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 berjarak beberapa menit dari server utama. Anda dapat menjalankan kueri ini di INFORMATION_SCHEMA BigQuery 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 Google Cloud project Anda.
    • DATASET_NAME: nama set data Anda.
    • DATASET_REPLICA_STALENESS: konfigurasi keusangan tabel dalam replika set data yang Anda buat.
    • NEW_REGION: region tempat Anda membuat set data.
  4. Jeda aliran Datastream yang ada. Untuk mengetahui informasi selengkapnya, lihat Menjeda streaming.

  5. Tunggu hingga aliran habis dan catat waktu saat aliran memasuki status PAUSED.

  6. Konfirmasi bahwa 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 daripada 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: optional. Tabel yang ingin Anda periksa upsert_stream_apply_watermark-nya.
  7. Gunakan kueri dari langkah 3 untuk memverifikasi bahwa tanda air salinan wilayah baru lebih baru daripada upsert_stream_apply_watermark yang diambil di 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. Jika tidak lagi memerlukan set data asli (sekarang menjadi 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 yang 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 dari tempat streaming berhasil dibaca. Untuk mengetahui informasi tentang cara memulai streaming dari posisi tertentu, lihat Mengelola streaming.
    • Untuk sumber PostgreSQL: aliran baru mulai membaca perubahan dari nomor urut log (LSN) pertama di slot replikasi. Karena aliran asli mungkin telah memproses beberapa perubahan ini, ubah pointer slot replikasi secara manual ke LSN terakhir yang dibaca Datastream. Anda dapat menemukan LSN ini di log konsumen Datastream.
  13. Hapus stream asli (opsional).