Mentransfer data ke atau dari Cloud Storage

Parallelstore dapat mengimpor data dari, dan mengekspor data ke, Cloud Storage. Transfer data memungkinkan Anda memuat data dengan cepat ke instance Parallelstore, dan menggunakan Cloud Storage sebagai lapisan pendukung yang andal untuk instance Parallelstore.

Impor dan ekspor data bersifat inkremental; keduanya hanya menyalin file yang belum ada di tujuan, atau yang telah berubah sejak ditransfer.

Untuk mengetahui kecepatan transfer yang diharapkan, lihat Performa.

Izin yang diperlukan

Akun pengguna atau akun layanan yang digunakan untuk memulai transfer memerlukan izin berikut:

  • parallelstore.instances.exportData untuk mentransfer dari Parallelstore ke Cloud Storage.
  • parallelstore.instances.importData untuk mentransfer ke Cloud Storage.

Kedua izin ini diberikan dengan peran roles/parallelstore.admin. Anda dapat membuat peran khusus untuk memberikan izin secara independen.

Selain itu, akun layanan Parallelstore memerlukan izin berikut:

  • roles/storage.admin di bucket Cloud Storage.

Untuk memberikan izin ini, jalankan perintah gcloud berikut:

gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
  --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-parallelstore.iam.gserviceaccount.com \
  --role=roles/storage.admin

PROJECT_NUMBER Anda tidak sama dengan project ID:

  • Project ID adalah string unik yang dapat berupa kombinasi huruf, angka, dan tanda hubung. Anda menentukan project ID saat membuat project. Contoh, example-project-123.
  • Nomor project adalah ID unik yang dibuat secara otomatis untuk project Anda yang hanya terdiri dari angka. Contoh, 1234567890.

Untuk mendapatkan PROJECT_NUMBER untuk project ID tertentu, gunakan perintah gcloud projects describe:

gcloud projects describe PROJECT_ID --format="value(projectNumber)"

Mengimpor data ke Parallelstore

Anda dapat mengimpor data dari bucket Cloud Storage. Bucket dapat berada di project yang sama atau berbeda. Bucket dapat berada di zona atau region yang berbeda dari instance Parallelstore Anda, tetapi transfer antar-region mungkin lebih lambat daripada transfer intra-region.

gcloud

gcloud beta parallelstore instances import-data INSTANCE_ID \
  --location=LOCATION \
  --source-gcs-bucket-uri=gs://BUCKET_NAME \
  --destination-parallelstore-path=PS_PATH

Dengan keterangan:

  • INSTANCE_ID adalah nama instance Parallelstore Anda.
  • --location harus berupa zona yang didukung.
  • --source-gcs-bucket-uri menentukan URI ke bucket Cloud Storage, atau jalur dalam bucket, menggunakan format gs://<bucket_name>/<optional_path_inside_bucket>.
  • --destination-parallelstore-path menentukan jalur direktori utama ke sistem file Parallelstore. Harus diawali dengan /. Jumlah defaultnya adalah /

Parameter berikut bersifat opsional:

  • --request-id memungkinkan Anda menetapkan ID unik ke permintaan ini. Jika Anda mencoba ulang permintaan ini menggunakan ID permintaan yang sama, server akan mengabaikan permintaan jika telah selesai. Harus berupa UUID yang valid dan bukan berupa nol semua. Contoh: --request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
  • --async segera menampilkan respons, tanpa menunggu operasi selesai.

REST

POST https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:importData
Authorization: Bearer [YOUR_ACCESS_TOKEN]

{
  "source_gcs_bucket" : {
    "uri" : "gs://BUCKET_NAME/"
  },
  "destination_parallelstore" : {
    "path" : "/PATH"
  }
}

Dengan keterangan:

  • PROJECT_ID adalah Google Cloud project ID Anda.
  • LOCATION harus berupa zona yang didukung tempat instance Anda berada.
  • INSTANCE_ID adalah nama instance Parallelstore Anda.
  • source-gcs-bucket berisi kunci uri yang nilainya menentukan URI ke bucket Cloud Storage, atau jalur dalam bucket, menggunakan format gs://<bucket_name>/<optional_path_inside_bucket>.
  • destination-parallelstore berisi kunci path yang nilainya menentukan jalur direktori root ke sistem file Parallelstore. Harus diawali dengan /. Default-nya adalah /.

Untuk menggunakan akun layanan Anda sendiri, bukan agen layanan yang dikelola Google, permintaan mendukung kolom serviceAccount dalam objek JSON:

"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"

Contoh perintah cURL terlihat seperti:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:importData \
  -d '{"source_gcs_bucket": {"uri":"gs://BUCKET_NAME/"}, "destination_parallelstore": {"path":"/"}}'

Mengekspor data

Anda dapat mengekspor data dari instance Parallelstore ke bucket Cloud Storage di project yang sama atau berbeda. Bucket dapat berada di zona atau region yang berbeda dari instance Parallelstore Anda, tetapi transfer antar-region mungkin lebih lambat daripada transfer intra-region.

gcloud

gcloud beta parallelstore instances export-data \
  INSTANCE_ID \
  --location=LOCATION \
  --destination-gcs-bucket-uri="gs://BUCKET_NAME" \
  --source-parallelstore-path="/"

Dengan keterangan:

  • INSTANCE_ID adalah nama instance Parallelstore Anda.
  • --location harus berupa zona yang didukung.
  • --destination-gcs-bucket-uri menentukan URI ke bucket Cloud Storage, atau jalur dalam bucket, menggunakan format gs://<bucket_name>/<optional_path_inside_bucket>.
  • --source-parallelstore-path menentukan jalur direktori utama ke sistem file Parallelstore. Harus diawali dengan /. Jumlah defaultnya adalah /

Parameter berikut bersifat opsional:

  • --request-id memungkinkan Anda menetapkan ID unik ke permintaan ini. Jika Anda mencoba ulang permintaan ini menggunakan ID permintaan yang sama, server akan mengabaikan permintaan jika telah selesai. Harus berupa UUID yang valid dan bukan berupa nol semua. Contoh: --request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
  • --async segera menampilkan respons, tanpa menunggu operasi selesai.

REST

POST https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:exportData
Authorization: Bearer [YOUR_ACCESS_TOKEN]

{
  "source_parallelstore" : {
    "path" : "/"
  },
  "destination_gcs_bucket" : {
    "uri" : "gs://BUCKET_NAME/"
  }
}

Dengan keterangan:

  • PROJECT_ID adalah Google Cloud project ID Anda.
  • INSTANCE_ID adalah nama instance Parallelstore Anda.
  • LOCATION harus berupa zona yang didukung tempat instance Parallelstore Anda berada.
  • --source-parallelstore berisi kunci path yang nilainya menentukan jalur direktori root ke sistem file Parallelstore. Harus diawali dengan /. Default-nya adalah /.
  • --destination-gcs-bucket berisi kunci uri yang nilainya menentukan URI ke bucket Cloud Storage, atau jalur dalam bucket, menggunakan format gs://<bucket_name>/<optional_path_inside_bucket>.

Untuk menggunakan akun layanan Anda sendiri, bukan agen layanan yang dikelola Google, permintaan mendukung kolom serviceAccount dalam objek JSON:

"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"

Contoh perintah cURL terlihat seperti:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json"
  https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:exportData \
  -d '{"source_parallelstore": {"path":"/"}, "destination_gcs_bucket": {"uri":"gs://BUCKET_NAME/"}}'

Mendapatkan operasi

Untuk melihat status operasi impor atau ekspor, Anda memerlukan ID operasi. ID ini ditampilkan oleh layanan saat Anda membuat permintaan impor atau ekspor, dan menggunakan format berikut:

  • operation-1234567890123-6127783ad26ea-88913969-02748053

gcloud

gcloud beta parallelstore operations describe OPERATION_ID \
  --location=LOCATION

REST

GET https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Authorization: Bearer [YOUR_ACCESS_TOKEN]

Contoh perintah cURL terlihat seperti:

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

Batalkan operasi

Untuk membatalkan operasi impor atau ekspor, Anda memerlukan ID operasi. ID ini ditampilkan oleh layanan saat Anda membuat permintaan impor atau ekspor, dan menggunakan format berikut:

  • operation-1234567890123-6127783ad26ea-88913969-02748053

gcloud

gcloud beta parallelstore operations cancel OPERATION_ID \
  --location=LOCATION

REST

POST https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
Authorization: Bearer [YOUR_ACCESS_TOKEN]

Contoh perintah cURL terlihat seperti:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel