Memigrasi tabel CDC ke wilayah lain

Halaman ini menjelaskan praktik terbaik untuk kasus penggunaan ketika Anda telah menyiapkan replikasi Datastream ke BigQuery, tetapi mengonfigurasi set data tujuan di region yang salah. Selanjutnya, 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 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 menyimpan 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 informasi tentang waktu yang dibutuhkan hingga operasi penggabungan selesai, 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 perkiraan jeda terlalu lama untuk didukung database sumber, sebaiknya pertimbangkan untuk mengurangi sementara nilai max_staleness 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 informasi selengkapnya tentang reservasi, lihat Penetapan 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 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. Contoh, region-us.
  3. Pantau progres migrasi, dan tunggu hingga watermark salinan di replika berada dalam 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 penghentian 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 streaming habis dan catat waktu saat streaming memasuki status PAUSED.

  6. Pastikan perubahan CDC terbaru telah diterapkan ke tabel BigQuery dengan memeriksa upsert_stream_apply_watermark pada tabel tersebut. Jalankan kueri berikut dan pastikan stempel waktu watermark berakhir 10 menit lebih lambat 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.
  7. Gunakan kueri dari langkah 3 untuk memverifikasi bahwa watermark salinan region baru lebih tinggi dari upsert_stream_apply_watermark yang diambil pada langkah 6.

  8. Jika ingin, bandingkan beberapa tabel di 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 dari set data asli.
  11. Buat aliran data baru dengan konfigurasi yang sama persis, tetapi dengan lokasi tujuan BigQuery yang baru.

  12. Mulai streaming baru.

    Untuk mencegah replikasi peristiwa duplikat, mulai aliran data dari posisi tertentu:

    • Untuk sumber MySQL dan Oracle: Anda dapat mengidentifikasi posisi log dengan memeriksa log aliran data asli dan menemukan posisi terakhir dari mana aliran data berhasil dibaca. Untuk mengetahui informasi tentang cara memulai streaming dari posisi tertentu, lihat Mengelola streaming.
    • Untuk sumber PostgreSQL: aliran data baru mulai membaca perubahan dari nomor urut 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 dibaca. Anda dapat menemukan LSN ini di log konsumen Datastream.
  13. Jika ingin, hapus streaming asli.