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_stalenessdalam 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_stalenesstabel yang direkomendasikan. - Untuk menemukan
max_stalenessmaksimum dalam set data, lihat Menentukan nilaimax_stalenesstabel 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_stalenesssementara untuk tabel dalam set data.
- Untuk mengetahui informasi tentang berapa lama waktu yang dibutuhkan untuk menyelesaikan operasi penggabungan, lihat Nilai
- 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:
Di konsol Google Cloud , buka halaman BigQuery Studio.
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.
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.
Jeda aliran Datastream yang ada. Untuk mengetahui informasi selengkapnya, lihat Menjeda streaming.
Tunggu hingga aliran habis dan catat waktu saat aliran memasuki status
PAUSED.Konfirmasi bahwa perubahan CDC terbaru telah diterapkan ke tabel BigQuery dengan memeriksa
upsert_stream_apply_watermarkuntuk 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.TABLESUntuk menjalankan kueri hanya untuk tabel tertentu, tambahkan klausa
WHEREberikut: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.
Gunakan kueri dari langkah 3 untuk memverifikasi bahwa tanda air salinan wilayah baru lebih baru daripada
upsert_stream_apply_watermarkyang diambil di langkah 6.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.
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.
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.
Buat streaming baru dengan konfigurasi yang sama persis, tetapi dengan lokasi tujuan BigQuery yang baru.
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.
Hapus stream asli (opsional).