Menggunakan migrasi terkelola untuk memigrasikan metastore MySQL yang dikelola sendiri ke Dataproc Metastore

Migrasi terkelola adalah fitur otomatis yang membantu Anda memigrasikan data dari Hive Metastore yang dikelola sendiri ke layanan Dataproc Metastore, tanpa waktu nonaktif yang cukup besar (atau dikenal sebagai hari penandaan).

Cara kerja migrasi terkelola

Untuk menyelesaikan migrasi terkelola, layanan Anda harus menjalankan dua proses migrasi—mulai migrasi dan selesaikan migrasi. Anda dapat membatalkan migrasi kapan saja dengan proses batalkan migrasi. Ada juga sejumlah perintah operasional yang dapat Anda jalankan, yang tidak diperlukan untuk menyelesaikan migrasi. Misalnya, cantumkan migrasi atau hapus migrasi.

Saat bergerak dalam proses ini, layanan Anda juga berpindah antara berbagai status migrasi dan fase migrasi. Status dan fase ini mewakili proses yang terjadi di latar belakang. Misalnya, status MIGRATING menunjukkan bahwa layanan Anda secara aktif mentransfer data dari database Cloud SQL ke Dataproc Metastore.

Migrasi terkelola memerlukan tiga subnet untuk menjalankan migrasi: proxy_subnet, nat_subnet, dan reverse_proxy_subnet. Untuk menghindari masalah latensi, konfigurasikan hal berikut:

  • proxy_subnet dan nat_subnet berada di region yang sama dengan Cloud SQL.
  • reverse_proxy_subnet berada di region yang sama dengan layanan Metastore Dataproc.

Untuk mengetahui informasi selengkapnya tentang berbagai jenis subnet, lihat Tujuan subnet.

Alur migrasi terkelola

Mulai Migrasi

  1. Anda menjalankan proses mulai migrasi pada layanan Dataproc Metastore.
  2. Layanan Metastore Dataproc Anda terhubung ke database Cloud SQL, yang bertindak sebagai database backend untuk metastore Hive yang dikelola sendiri. Pada langkah ini, database Cloud SQL masih menjadi sumber kebenaran untuk data Anda.

  3. Dataproc Metastore menjalankan aliran Change Data Capture (CDC) yang menyalin data dari database Cloud SQL ke database Metastore Dataproc (Cloud Spanner).

    Setelah migrasi awal berhasil, Anda dapat mulai merutekan beban kerja ke Dataproc Metastore. Pada titik ini, Cloud SQL masih menjadi sumber kebenaran untuk data Anda.

Selesaikan migrasi

Setelah selesai memindahkan beban kerja ke Dataproc Metastore, Anda dapat menyelesaikan migrasi. Saat proses migrasi lengkap dipanggil, hal berikut akan terjadi:

  • Metastore Dataproc bertransisi ke mode hanya baca hingga proses migrasi yang lengkap selesai.
  • Aliran CDC mentransfer semua data yang sedang berlangsung ke Dataproc Metastore.
  • Dataproc Metastore terhubung ke Spanner dan terputus dari Cloud SQL. Dataproc Metastore sekarang berfungsi sebagai sumber kebenaran untuk data Anda.

Sebelum memulai

Untuk memulai migrasi, Anda harus menyiapkan atau memiliki akses ke layanan berikut:

  • Dataproc Metastore yang dikonfigurasi dengan jenis database Spanner.
  • Instance database Cloud SQL untuk MySQL yang dikonfigurasi dengan IP Pribadi.

    • Jaringan VPC instance Cloud SQL memiliki subnet yang diperlukan.

    • Cloud SQL menggunakan database dengan skema yang kompatibel dengan versi metastore Hive yang berjalan di layanan Dataproc Metastore yang menjadi tujuan penyalinan data.

    • Siapkan Cloud SQL untuk digunakan sebagai sumber Datastream. Buat nama pengguna dan sandi untuk menghubungkan Datastream ke Cloud SQL.

Peran yang Diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat Metastore Dataproc dan memulai migrasi terkelola, minta administrator untuk memberi Anda peran IAM berikut:

  • Untuk memberikan akses penuh ke semua resource Dataproc Metastore, termasuk menetapkan izin IAM: Admin Metastore Dataproc (roles/metastore.admin) di akun pengguna atau akun layanan Dataproc Metastore
  • Untuk memberikan kontrol penuh atas resource Dataproc Metastore: Dataproc Metastore Editor (roles/metastore.editor) di akun pengguna atau akun layanan Dataproc Metastore
  • Untuk membuat migrasi terkelola: Admin Migrasi (roles/metastore.migrationAdmin) di [agen layanan][7] Dataproc Metastore
  • Untuk menggunakan objek Cloud Storage dengan Datastream:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Mengonfigurasi migrasi terkelola

Anda dapat mengonfigurasi migrasi menggunakan Dataproc Metastore API.

Layanan Metastore Dataproc hanya dapat menjalankan satu migrasi dalam satu waktu.

Mulai migrasi

Saat Anda memulai migrasi, Dataproc Metastore terhubung ke Cloud SQL dan menggunakan Cloud SQL sebagai database backend-nya. Selama proses ini, Dataproc Metastore menjalankan pipeline yang menyalin data dari Cloud SQL ke database-nya sendiri (Spanner).

Migrasi awal memicu perubahan status berikut:

  • Metastore Dataproc berpindah ke status MIGRATING.
  • Status eksekusi migrasi berpindah ke RUNNING.
  • Fase eksekusi migrasi berpindah ke REPLICATION.

Metastore Dataproc akan terus menggunakan Cloud SQL sebagai backend dan mereplikasi data hingga proses migrasi lengkap dipanggil.

Konsol

Mulai

  1. Di konsol Google Cloud, buka halaman Dataproc Metastore:

    Buka Metastore Dataproc

  2. Di halaman Dataproc Metastore, klik nama layanan yang menjadi tujuan migrasi Anda.

    Halaman Detail layanan akan terbuka.

  3. Di bagian atas halaman, klik Migrasikan Data.

    Halaman Create migration akan terbuka di tab Connectivity dan menampilkan setelan konfigurasi Cloud SQL database configuration untuk Dataproc Metastore.

Konfigurasi database Cloud SQL untuk DPMS

  1. Pada Instance connection name, masukkan nama koneksi instance database Cloud SQL, dalam format berikut: PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID.

  2. Di kolom IP address, masukkan alamat IP yang diperlukan untuk terhubung ke instance Cloud SQL.

  3. Di kolom Port, masukkan 3306.

  4. Di kolom Hive database name, masukkan nama database yang sedang digunakan sebagai backend metastore Hive yang dikelola sendiri.

  5. Di kolom Username, masukkan nama pengguna yang Anda gunakan untuk menghubungkan Cloud SQL ke Hive Metastore.

  6. Di kolom Password, masukkan sandi yang Anda gunakan untuk menghubungkan Cloud SQL ke Hive Metastore.

Layanan proxy SOCKS5

  1. Di kolom Subnet proxy, masukkan subnetwork yang digunakan di jaringan VPC Cloud SQL. Subnet ini digunakan untuk men-deploy proxy SOCKS5 menengah.

  2. Di kolom Nat subnet, masukkan Subnet Private Service Connect yang menyediakan koneksi dari layanan Dataproc Metastore untuk mengakses proxy perantara. Ukuran subnet harus memiliki panjang awalan minimal /29.

  3. Klik Lanjutkan.

    Tab Change Data Capture (CDC) akan terbuka dan menampilkan setelan konfigurasi Cloud SQL database configuration for Datastream.

Konfigurasi database Cloud SQL untuk aliran data

  1. Di kolom Username, masukkan nama pengguna yang Anda gunakan untuk login ke CDC Cloud SQL yang digunakan oleh Datastream.

  2. Di kolom Password, masukkan sandi yang digunakan untuk login ke CDC Cloud SQL yang digunakan oleh Datastream.

  3. Di kolom VPC network, masukkan jaringan di jaringan VPC yang sama dengan instance Cloud SQL yang digunakan oleh Datastream untuk membuat koneksi pribadi ke CDC.

  4. Di kolom Subnet IP range, masukkan rentang IP subnet minimal /29. Datastream menggunakan IP ini untuk melakukan peering ke jaringan VPC.

  5. Di kolom Reverse proxy subnet, masukkan subnetwork yang Anda buat di jaringan VPC yang sama dengan Cloud SQL. Datastream menggunakan subnetwork ini. Subnetwork digunakan untuk menghosting koneksi proxy terbalik untuk Datastream CDC. Subnet harus dikonfigurasi di region yang sama dengan layanan Dataproc Metastore.

Konfigurasi GCS

  1. Untuk Bucket ID, pilih jalur Cloud Storage untuk menyimpan data CDC selama migrasi.

  2. Di kolom Root path, masukkan jalur root di dalam bucket Cloud Storage. Data peristiwa aliran data ditulis ke jalur ini.

  3. Klik Create.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  -X POST -d \
  '{
    "migration_execution": {
      "cloud_sql_migration_config": {
        "cloud_sql_connection_config": {
          "instance_connection_name": INSTANCE_CONNECTION_NAME,
          "hive_database_name": "HIVE_DATABASE_NAME",
          "ip_address": "IP_ADDRESS",
          "port": 3306,
          "username": "CONNECTION_USERNAME",
          "password": "CONNECTION_PASSWORD",
          "proxy_subnet": "PROXY_SUBNET",
          "nat_subnet": "NAT_SUBNET"
        },
        "cdc_config": {
          "username": "CDC_USENAME",
          "password": "CDC_PASSWORD",
          "vpc_network": "VPC_NETWORK",
          "subnet_ip_range": "SUBNET_IP_RANGE",
          "reverse_proxy_subnet": "REVERSE_PROXY_SUBNET_ID",
          "bucket": "BUCKET_NAME",
          "root_path": "ROOT_PATH",
        }
      }
    }
}' \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:startMigration

Ganti kode berikut:

  • SERVICE: nama atau ID layanan Metastore Dataproc Anda.
  • PROJECT_ID: project ID untuk project Google Cloud tempat layanan Dataproc Metastore Anda berada.
  • LOCATION: region Google Cloud tempat layanan Dataproc Metastore Anda berada.

Konfigurasi Migrasi Cloud SQL

  • INSTANCE_CONNECTION_NAME: nama koneksi instance untuk database Cloud SQL, dalam format berikut: PROJECT_ID/LOCATION/CLOUDSQL_INSTANCE_ID.
  • HIVE_DATABASE_NAME: nama database Hive yang dikelola sendiri dan terhubung ke Cloud SQL.
  • IP_ADDRESS: alamat IP yang diperlukan untuk terhubung ke instance Cloud SQL.
  • CONNECTION_USERNAME: nama pengguna yang Anda gunakan untuk menghubungkan Cloud SQL ke Metastore Hive.
  • CONNECTION_PASSWORD sandi yang Anda gunakan untuk menghubungkan Cloud SQL ke Hive Metastore
  • PROXY_SUBNET: subnetwork yang digunakan di jaringan VPC Cloud SQL. Subnetwork ini menghosting proxy perantara untuk menyediakan konektivitas di seluruh jaringan transitif.
  • NAT_SUBNET: subnet Private Service Connect yang menyediakan koneksi dari layanan Dataproc Metastore untuk mengakses proxy perantara. Ukuran subnet harus memiliki panjang awalan minimal /29 dan dalam rentang IPv4.

Konfigurasi CDC

  • CDC_USERNAME: nama pengguna yang digunakan layanan Datastream untuk login ke Cloud SQL.
  • CDC_PASSWORD: sandi yang digunakan layanan Datastream untuk login ke Cloud SQL.
  • VPC_NETWORK: jaringan di jaringan VPC yang sama dengan instance Cloud SQL yang digunakan oleh Datastream untuk membuat koneksi pribadi ke CDC.
  • SUBNET_IP_RANGE: Rentang IP subnet minimal /29 yang digunakan oleh Datastream untuk membuat peering ke jaringan VPC.
  • REVERSE_PROXY_SUBNET_ID: subnetwork di jaringan VPC yang sama dengan instance Cloud SQL yang digunakan oleh Datastream. Subnetwork digunakan untuk menghosting koneksi proxy terbalik untuk Datastream CDC. Subnet harus dikonfigurasi di region yang sama dengan layanan Dataproc Metastore.
  • BUCKET_NAME: jalur Cloud Storage untuk menyimpan data CDC selama migrasi.
  • ROOT_PATH: jalur root di dalam bucket Cloud Storage. Data peristiwa aliran data ditulis ke jalur ini.

Selesaikan migrasi

Saat Anda menyelesaikan migrasi, Dataproc Metastore akan terhubung ke Spanner dan mulai menggunakan Spanner sebagai database backend-nya.

Migrasi yang selesai akan memicu perubahan status berikut:

  • Metastore Dataproc kembali ke status ACTIVE.
  • Status eksekusi migrasi berpindah ke SUCCEEDED.

Konsol

  1. Di konsol Google Cloud, buka halaman Dataproc Metastore.

  2. Di bagian atas halaman, klik Migrasikan Data.

    Halaman Migrate Data akan terbuka dan menampilkan migrasi terkelola yang telah selesai.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
  -X POST -d '' \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:completeMigration

Ganti kode berikut:

  • SERVICE: Nama atau ID layanan Metastore Dataproc Anda.
  • PROJECT_ID: project ID untuk project Google Cloud tempat layanan Dataproc Metastore Anda berada.
  • LOCATION: region Google Cloud tempat layanan Dataproc Metastore Anda berada.

Batalkan migrasi

Saat Anda membatalkan migrasi, Dataproc Metastore akan mengembalikan semua perubahan dan mulai menggunakan jenis database Spanner sebagai database backend. Semua data yang ditransfer selama migrasi akan dihapus.

Migrasi pembatalan memicu perubahan status berikut:

  • Metastore Dataproc kembali ke status ACTIVE.
  • Status eksekusi migrasi berpindah ke CANCELLED.

Konsol

  1. Di konsol Google Cloud, buka halaman Dataproc Metastore.

  2. Di bagian atas halaman, klik Migrasikan Data.

    Halaman Migrasikan Data akan terbuka dan menampilkan migrasi terkelola yang dibatalkan.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type:application/json" \
   -X POST -d '' \
   https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE:cancelMigration

Ganti kode berikut:

  • SERVICE_NAME: Nama atau ID layanan Metastore Dataproc Anda.
  • PROJECT_ID: project ID untuk project Google Cloud tempat layanan Dataproc Metastore Anda berada.
  • LOCATION: region Google Cloud tempat layanan Dataproc Metastore Anda berada.

Mendapatkan detail migrasi

Dapatkan detail tentang satu migrasi terkelola.

Konsol

  1. Di konsol Google Cloud, buka halaman Dataproc Metastore.

  2. Di bagian atas halaman, klik Migrasikan Data.

    Halaman Migrasikan Data akan terbuka dan menampilkan migrasi terkelola Anda.

    Untuk mendapatkan detail migrasi selengkapnya, klik nama migrasi terkelola.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X GET \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Ganti kode berikut:

  • SERVICE: Nama atau ID layanan Metastore Dataproc Anda.
  • PROJECT_ID: project ID untuk project Google Cloud tempat layanan Dataproc Metastore Anda berada.
  • LOCATION: region Google Cloud tempat layanan Dataproc Metastore Anda berada.
  • MIGRATION_ID: Nama atau ID migrasi Metastore Dataproc Anda.

Mencantumkan migrasi

Mencantumkan migrasi terkelola.

Konsol

  1. Di konsol Google Cloud, buka halaman Dataproc Metastore.

  2. Di bagian atas halaman, klik Migrasikan Data.

    Halaman Migrasikan Data akan terbuka dan menampilkan migrasi terkelola Anda.

  3. Pastikan perintah tersebut mencantumkan migrasi.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X GET \
  https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Ganti kode berikut:

  • SERVICE: Nama atau ID layanan Metastore Dataproc Anda.
  • PROJECT_ID: project ID untuk project Google Cloud tempat layanan Dataproc Metastore Anda berada.
  • LOCATION: region Google Cloud tempat layanan Dataproc Metastore Anda berada.

Hapus migrasi

Hapus migrasi terkelola.

REST

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -X DELETE \
   https://metastore.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/services/SERVICE/migrationExecutions/MIGRATION_ID

Ganti kode berikut:

  • SERVICE: nama atau ID layanan Metastore Dataproc Anda.
  • PROJECT_ID: project ID untuk project Google Cloud tempat layanan Dataproc Metastore Anda berada.
  • LOCATION: region Google Cloud tempat layanan Dataproc Metastore Anda berada.
  • MIGRATION_ID: nama atau ID migrasi Metastore Dataproc.

Langkah selanjutnya