Mengimpor file SQL

Untuk merekonstruksi database dari skrip teks biasa perintah SQL, Anda dapat mengimpor file SQL yang disimpan di bucket Cloud Storage ke cluster AlloyDB untuk PostgreSQL.

Anda dapat membatalkan impor data ke cluster AlloyDB. Untuk mengetahui informasi selengkapnya, lihat Membatalkan operasi impor.

Saat mengimpor file dump SQL, pastikan versi PostgreSQL tempat dump dibuat kompatibel dengan versi PostgreSQL instance AlloyDB Anda. Mengimpor file dump dari versi yang lebih tinggi ke versi yang lebih rendah mungkin gagal karena sintaksis SQL yang tidak kompatibel.

Sebelum memulai

Sebelum Anda memulai operasi impor:

  • Pastikan database Anda memiliki kuota penyimpanan yang memadai.
  • Operasi impor menggunakan resource database, tetapi tidak mengganggu operasi database normal kecuali jika cluster kurang tersedia.

Peran dan izin yang diperlukan untuk mengimpor ke AlloyDB

Untuk mengimpor data dari Cloud Storage ke AlloyDB, pengguna yang memulai impor harus memiliki salah satu peran berikut:

Selain itu, akun layanan untuk cluster AlloyDB harus memiliki salah satu peran berikut:

  • Peran IAM storage.objectViewer
  • Peran khusus, termasuk izin berikut:
    • storage.objects.get

Untuk mendapatkan bantuan terkait peran IAM, lihat Identity and Access Management.

Mengimpor file SQL ke cluster AlloyDB

Untuk mengimpor data ke cluster AlloyDB menggunakan file SQL, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Klik nama cluster untuk membuka halaman Overview untuk cluster tersebut.

  3. Klik Import.

  4. Di Format file, pilih SQL.

  5. Di bagian Select source file, pilih apakah akan mengupload file dari komputer atau memilih file dari lokasi Cloud Storage.

    1. Untuk mengupload file dari komputer, lakukan tindakan berikut:

      1. Pilih Upload file dari komputer.
      2. Klik Browse di samping Select local file untuk memilih file SQL dari komputer lokal Anda.
      3. Klik Browse di samping Select Cloud Storage location untuk memilih lokasi Cloud Storage guna menyimpan file lokal yang diupload.
      4. Klik Upload untuk mengupload file.
    2. Untuk memilih file SQL yang ada di bucket Cloud Storage, lakukan hal berikut:

      1. Pilih Select file from Google Cloud Storage.
      2. Klik Browse di samping bucket-name/file-name untuk memilih file SQL dari bucket Cloud Storage.
  6. Pilih database tempat Anda ingin mengimpor data dari menu drop-down Database.

    Jika file dump SQL Anda menyertakan perintah meta \connect (atau \c), file tersebut akan menggantikan database target yang Anda pilih di konsol Google Cloud .

  7. Opsional: Untuk menentukan pengguna untuk operasi impor, klik Show user options dan masukkan nama pengguna di kolom User.

  8. Untuk memulai operasi impor, klik Import.

gcloud

  1. Buat bucket Cloud Storage.
  2. Upload file SQL ke bucket Anda. Untuk mendapatkan bantuan dalam mengupload file ke bucket, lihat Mengupload objek.

  3. Gunakan gcloud storage buckets add-iam-policy-binding untuk memberikan storage.objectViewer peran IAM ke akun layanan cluster AlloyDB untuk bucket:

    service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com

    Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.

  4. Impor file:

    gcloud alloydb clusters import CLUSTER_NAME \
      --region=REGION \
      --database=DATABASE_NAME \
      --gcs-uri='gs://BUCKET_NAME/PATH_TO_SQL_FILE' \
      --user=USERNAME \
      --sql

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster.
    • REGION: region tempat cluster AlloyDB di-deploy.
    • DATABASE_NAME: nama database di dalam cluster.
    • BUCKET_NAME: nama bucket Cloud Storage.
    • PATH_TO_SQL_FILE: jalur ke file SQL.
    • USERNAME: pengguna untuk operasi impor.

    Jika perintah menampilkan error seperti PERMISSION_DENIED, tinjau izinnya.

    Untuk mengetahui informasi tentang penggunaan perintah import, lihat halaman referensi perintah gcloud alloydb clusters import.

  5. Jika Anda tidak perlu mempertahankan izin IAM yang telah Anda tetapkan sebelumnya, hapus izin tersebut menggunakan gcloud storage buckets remove-iam-policy-binding.

REST v1

  1. Buat bucket Cloud Storage.
  2. Upload file SQL ke bucket Anda. Untuk mendapatkan bantuan dalam mengupload file ke bucket, lihat Mengupload objek.
  3. Gunakan gcloud storage buckets add-iam-policy-binding untuk memberikan storage.objectViewer peran IAM ke akun layanan cluster AlloyDB untuk bucket. Format untuk akun layanan adalah sebagai berikut:

    service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com

    Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.

  4. Impor file SQL Anda.

    Gunakan metode HTTP dan URL berikut:

    POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:import

    Sebelum menggunakan data permintaan apa pun, lakukan penggantian berikut:

    • PROJECT_ID: project ID.
    • LOCATION_ID: region tempat cluster AlloyDB di-deploy.
    • CLUSTER_ID: ID cluster.
    • BUCKET_NAME: nama bucket Cloud Storage.
    • PATH_TO_SQL_FILE: jalur ke file SQL.
    • USER: pengguna yang akan digunakan untuk impor.
    • DATABASE_NAME: nama database di dalam cluster AlloyDB.

    Meminta isi JSON:

    {
       "gcsUri": "gs://BUCKET_NAME/PATH_TO_SQL_FILE",
       "database": "DATABASE_NAME",
       "user": "USER",
       "sqlImportOptions": {}
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    curl (Linux, macOS, atau Cloud Shell)

    Simpan isi permintaan dalam file bernama request.json dan jalankan perintah berikut:

       curl -X POST \
             -H "Authorization: Bearer $(gcloud auth print-access-token)" \
             -H "Content-Type: application/json; charset=utf-8" \
             -d @request.json \
             "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:import"
    

    PowerShell (Windows)

    Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }
    
    Invoke-WebRequest `
      -Method POST `
      -Headers $headers `
      -ContentType: "application/json; charset=utf-8" `
      -InFile request.json `
      -Uri "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:import"| Select-Object -Expand Content
    

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

    Respons

    {
     "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID",
     "metadata": {
      "@type": "type.googleapis.com/google.cloud.alloydb.v1.OperationMetadata",
      "createTime": "2025-01-04T13:12:32.363393723Z",
      "target": "projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID",
      "verb": "import",
      "requestedCancellation": false,
      "apiVersion": "v1"
     },
     "done": false
    }
    

    Untuk menggunakan pengguna yang berbeda untuk impor, tentukan properti pengguna.

  5. Jika Anda tidak perlu mempertahankan izin IAM yang telah Anda tetapkan sebelumnya, hapus izin tersebut.

    Untuk mengetahui daftar lengkap parameter permintaan, lihat clusters.import.

Memeriksa status operasi impor

Untuk memeriksa status operasi impor, ikuti langkah-langkah berikut:

gcloud

Jalankan perintah berikut menggunakan perintah gcloud alloydb operations describe:

gcloud alloydb operations describe OPERATION_ID --region=REGION

Anda juga dapat mencantumkan detail operasi tertentu atau membatalkan operasi tertentu. Untuk mengetahui informasi selengkapnya tentang perintah ini, lihat halaman referensi perintah gcloud alloydb operations.

REST v1

Gunakan metode GET dan URL berikut:

GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID

Untuk informasi selengkapnya, lihat get.

Sebelum menggunakan data permintaan apa pun, lakukan penggantian berikut:

  • REGION: region tempat cluster AlloyDB di-deploy.
  • PROJECT_ID: project ID.
  • OPERATION_ID: ID operasi impor. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.

Untuk mengirim permintaan Anda, luaskan salah satu opsi berikut:

curl (Linux, macOS, atau Cloud Shell)

Jalankan perintah berikut:

  curl -X GET \
       -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
 

PowerShell (Windows)

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
  -Method GET `
  -Headers $headers `
  -Uri "https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID" | Select-Object -Expand Content

Jika berhasil, isi respons akan memuat instance Operation.

Langkah berikutnya