Halaman ini menjelaskan cara mengimpor data dari file SQL yang disimpan di bucket Cloud Storage ke cluster AlloyDB untuk PostgreSQL. File SQL adalah file teks biasa dengan urutan perintah SQL.
Anda dapat membatalkan impor data ke cluster AlloyDB. Untuk mengetahui informasi selengkapnya, lihat Membatalkan operasi impor.
Sebelum memulai
Sebelum Anda memulai operasi impor:
- Pastikan database Anda memiliki ruang kosong 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:
- Peran Admin AlloyDB
- Peran khusus, termasuk izin berikut:
alloydb.clusters.get
alloydb.clusters.import
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
Buka halaman Cluster.
Klik nama cluster untuk membuka halaman Ringkasan untuk cluster tersebut.
Klik Import.
Di Pilih file yang ingin Anda impor datanya, masukkan jalur ke bucket dan file SQL yang akan digunakan untuk impor, atau cari file yang sudah ada.
Pilih database tempat Anda ingin mengimpor data.
Hal ini menyebabkan AlloyDB menjalankan pernyataan
USE DATABASE
sebelum impor. Jika file dump SQL Anda menyertakan pernyataanUSE DATABASE
, file tersebut akan menggantikan database yang ditetapkan di konsol Google Cloud.Opsional: Tentukan pengguna untuk operasi impor. Jika file impor Anda berisi pernyataan yang harus dilakukan oleh pengguna tertentu, gunakan kolom ini untuk menentukan pengguna tersebut.
Untuk memulai operasi impor, klik Impor.
gcloud
- Buat bucket Cloud Storage.
Upload file SQL ke bucket Anda. Untuk mendapatkan bantuan dalam mengupload file ke bucket, lihat Mengupload objek.
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
Lakukan penggantian berikut:
- CLUSTER_NAME: nama cluster.
- REGION: region tempat cluster AlloyDB di-deploy.
- BUCKET_NAME: nama bucket Cloud Storage.
- FILE_NAME: nama file CSV.
- DATABASE_NAME: nama database di dalam cluster.
- USER: pengguna untuk operasi impor.
- TABLE_NAME: tabel di dalam database.
Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.
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
Jika perintah menampilkan error seperti
PERMISSION_DENIED
, tinjau izinnya.Untuk informasi tentang penggunaan perintah
import
, lihat halaman referensi perintahalloydb import
.Jika Anda tidak perlu mempertahankan izin IAM yang ditetapkan sebelumnya, hapus izin tersebut menggunakan
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- Buat bucket Cloud Storage.
- Upload file SQL ke bucket Anda. Untuk mendapatkan bantuan dalam mengupload file ke bucket, lihat Mengupload objek.
Berikan izin akun layanan ke bucket Cloud Storage untuk operasi impor. Gunakan format akun layanan untuk mengidentifikasi akun layanan untuk project tempat Anda mengimpor. Format untuk akun layanan adalah sebagai berikut:
service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com
Gunakan gcloud storage buckets add-iam-policy-binding untuk memberikan
storage.objectViewer
peran IAM ke akun layanan cluster AlloyDB untuk bucket. Untuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.Impor file SQL Anda.
Gunakan metode HTTP dan URL berikut:
POST https://alloydbadmin.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:import
Sebelum menggunakan data permintaan apa pun, buat 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 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.
Jika Anda tidak perlu mempertahankan izin IAM yang ditetapkan sebelumnya, hapus sekarang.
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 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, buat 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, perluas 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
Anda akan menerima respons JSON yang mirip dengan berikut ini:
Jika berhasil, isi respons akan berisi instance Operation.
Langkah berikutnya
- Pelajari cara mengimpor file CSV.
- Pelajari cara membatalkan operasi impor.
- Periksa status operasi impor.