Untuk memuat data tabulasi ke dalam tabel database yang ada, Anda dapat mengimpor file CSV yang disimpan di bucket Cloud Storage ke dalam cluster AlloyDB untuk PostgreSQL.
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 cluster AlloyDB
Untuk mengimpor data dari Cloud Storage ke AlloyDB, pengguna yang memulai impor harus memiliki salah satu peran berikut:
- Peran AlloyDB Admin
- Peran khusus,
yang mencakup izin berikut:
alloydb.clusters.getalloydb.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 data dari file CSV ke cluster AlloyDB
- Database dan tabel yang Anda gunakan untuk mengimpor harus ada di cluster AlloyDB. Untuk mendapatkan bantuan dalam membuat database, lihat Membuat database.
- File CSV harus memiliki satu baris untuk setiap baris data dan menggunakan kolom yang dipisahkan koma.
- File CSV tidak boleh berisi baris header. Jika file CSV Anda memiliki baris header, hapus baris tersebut sebelum mengimpor.
Untuk mengimpor data ke cluster AlloyDB menggunakan file CSV, ikuti langkah-langkah berikut:
Konsol
Di konsol Google Cloud , buka halaman Clusters.
Klik nama cluster untuk membuka halaman Overview untuk cluster tersebut.
Klik Import.
Di Format file, pilih CSV.
Di bagian Select source file, pilih apakah akan mengupload file dari komputer atau memilih file dari lokasi Cloud Storage.
Untuk mengupload file dari komputer, lakukan tindakan berikut:
- Pilih Upload file dari komputer.
- Klik Browse di samping Select local file untuk memilih file CSV dari komputer lokal Anda.
- Klik Browse di samping Select Cloud Storage location untuk memilih lokasi Cloud Storage guna menyimpan file lokal yang diupload.
- Klik Upload untuk mengupload file.
Untuk memilih file CSV yang ada di bucket Cloud Storage, lakukan hal berikut:
- Pilih Select file from Google Cloud Storage.
- Klik Browse di samping bucket-name/file-name untuk memilih file CSV dari bucket Cloud Storage.
Pilih database tempat Anda ingin mengimpor data dari menu drop-down Database.
Pilih tabel dalam database dari menu drop-down Table.
Opsional: Untuk menentukan pengguna untuk operasi impor, klik Show user options dan masukkan nama pengguna di kolom User.
Untuk memulai operasi impor, klik Import.
gcloud
- Buat bucket Cloud Storage.
- Upload file CSV ke bucket Anda. Untuk mendapatkan bantuan dalam mengupload file ke bucket, lihat Mengupload objek.
Gunakan
gcloud storage buckets add-iam-policy-bindinguntuk memberikan peran IAMstorage.objectViewerke akun layanan AlloyDB untuk bucket:service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.comUntuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.
Impor file:
gcloud alloydb clusters import CLUSTER_NAME \ --region=REGION \ --gcs-uri=gs://BUCKET_NAME/FILE_NAME \ --database=DATABASE_NAME \ --user=USER \ --csv \ --table=TABLE_NAMEGanti kode 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 mengetahui informasi selengkapnya tentang penggunaan perintah
import, lihat halaman referensi perintahgcloud alloydb clusters import.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
- Buat bucket Cloud Storage.
- Upload file CSV ke bucket Anda. Untuk mendapatkan bantuan dalam mengupload file ke bucket, lihat Mengupload objek.
Gunakan
gcloud storage buckets add-iam-policy-bindinguntuk memberikanstorage.objectViewerperan IAM ke akun layanan cluster AlloyDB untuk bucket. Format untuk akun layanan adalah sebagai berikut:service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.comUntuk mendapatkan bantuan terkait penetapan izin IAM, lihat Menggunakan izin IAM.
Impor file.
Gunakan metode HTTP dan URL berikut:
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:importSebelum 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_CSV_FILE: jalur ke file CSV.
- USER: pengguna untuk operasi impor.
- DATABASE_NAME: nama database di dalam cluster AlloyDB.
- TABLE_NAME: tabel di dalam database.
- COLUMNS (Opsional): kolom yang akan diimpor.
- ESCAPE_CHARACTER (Opsional): karakter yang harus
muncul sebelum karakter data yang perlu di-escape. Nilai
argumen ini harus berupa karakter dalam Kode ASCII Hex. Misalnya,
22mewakili tanda kutip ganda. - QUOTE_CHARACTER (Opsional): karakter
yang mengapit nilai dari kolom yang memiliki jenis data string.
Nilai argumen ini harus berupa karakter dalam Kode ASCII Hex.
Misalnya,
22mewakili tanda kutip ganda. - FIELD_DELIMITER (Opsional): karakter
yang memisahkan nilai kolom. Nilai argumen ini harus berupa karakter dalam Kode ASCII Hex. Misalnya,
2Cmewakili koma.
Meminta isi JSON:
{ "gcsUri": "gs://BUCKET_NAME/PATH_TO_CSV_FILE", "database": "DATABASE_NAME", "user": "USER", "csvImportOptions": { "table": "TABLE_NAME", "columns": ["COLUMN1", "COLUMN2"], "fieldDelimiter": "FIELD_DELIMITER", "quoteCharacter": "QUOTE_CHARACTER", "escapeCharacter": "ESCAPE_CHARACTER" } }Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
curl (Linux, macOS, atau Cloud Shell)
Simpan isi permintaan dalam file bernama
request.jsondan 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 ContentAnda 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": "2024-09-17T06:05:31.244428646Z", "target": "projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID", "verb": "import", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }Jika Anda tidak perlu mempertahankan izin IAM yang telah Anda tetapkan sebelumnya, hapus izin tersebut.
Untuk mengetahui daftar lengkap parameter permintaan, lihat
clusters.import.
Menyesuaikan format CSV dan mengimpor file
Anda dapat menyesuaikan format CSV dan mengimpor file jika file CSV berisi pembatas kolom non-default, atau karakter tanda kutip atau karakter escape. Untuk mengimpor file CSV dengan format non-default, Anda harus memberikan opsi pemformatan yang sama dalam permintaan.
Gunakan contoh gcloud CLI dan REST API berikut untuk membantu Anda menyesuaikan format file CSV.
gcloud
gcloud alloydb clusters import CLUSTER_NAME \
--region=REGION \
--database=DATABASE_NAME \
--gcs-uri='gs://BUCKET_NAME/PATH_TO_CSV_FILE' \
--user=USERNAME \
--table=TABLE_NAME \
--columns=COLUMNS \
--field-delimiter='2C' \
--quote-character='22' \
--escape-character='5C' \
--csvREST v1
Isi permintaan REST API yang setara terlihat mirip dengan yang berikut ini:
{
"gcsUri": "gs://BUCKET_NAME/PATH_TO_CSV_FILE",
"database": "DATABASE_NAME",
"user": "USER",
"csvImportOptions": {
"table": "TABLE_NAME",
"columns": ["COLUMN1", "COLUMN2"],
"escapeCharacter": "5C",
"quoteCharacter": "22",
"fieldDelimiter": "2C"
}
}
Untuk melihat cara permintaan REST API yang mendasarinya dibuat untuk tugas ini, lihat APIs Explorer di halaman clusters.import.
Jika Anda mendapatkan error seperti INVALID_ARGUMENT, pastikan tabel tersebut ada. Jika tabel tersebut ada, konfirmasi bahwa Anda memiliki izin yang benar pada bucket.
Untuk mendapatkan bantuan dalam mengonfigurasi kontrol akses di Cloud Storage, lihat
Membuat dan Mengelola Daftar Kontrol Akses.
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=REGIONStatus operasi ini terlihat dalam kolom STATUS.
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
- Pelajari cara mengimpor file SQL.
- Pelajari cara membatalkan operasi impor.