העברת נתונים אל Cloud Storage או ממנו

אפשר לייבא נתונים אל Parallelstore מ-Cloud Storage, ולייצא נתונים מ-Parallelstore אל Cloud Storage. העברות נתונים מאפשרות לכם לטעון נתונים במהירות למופע Parallelstore, ולהשתמש ב-Cloud Storage כשכבת גיבוי עמידה למופע Parallelstore.

ייבוא וייצוא של נתונים הם מצטברים. המערכת מעתיקה רק קבצים שלא קיימים כבר ביעד, או קבצים שהשתנו מאז שהועברו.

למידע על מהירויות ההעברה הצפויות, אפשר לעיין בקטע ביצועים.

ההרשאות הנדרשות

למשתמש או לחשבון השירות שמשמשים להפעלת ההעברה נדרשות ההרשאות הבאות:

  • parallelstore.instances.exportData כדי להעביר מ-Parallelstore ל-Cloud Storage.
  • parallelstore.instances.importData כדי להעביר ל-Cloud Storage.

שתי ההרשאות האלה ניתנות עם התפקיד roles/parallelstore.admin. אתם יכולים ליצור תפקיד בהתאמה אישית כדי להעניק הרשאות באופן עצמאי.

בנוסף, לחשבון השירות של Parallelstore נדרשת ההרשאה הבאה:

  • roles/storage.admin בקטגוריה של Cloud Storage.

כדי להעניק את ההרשאה הזו, מריצים את הפקודה הבאה של gcloud:

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 שונה ממזהה הפרויקט:

  • מזהה פרויקט הוא מחרוזת ייחודית שיכולה להיות שילוב של אותיות, מספרים ומקפים. כשיוצרים פרויקט, מציינים מזהה פרויקט. לדוגמה, example-project-123.
  • מספר פרויקט הוא מזהה ייחודי שנוצר באופן אוטומטי לפרויקט שלכם, והוא מורכב רק ממספרים. לדוגמה, 1234567890.

כדי לקבל את PROJECT_NUMBER של מזהה פרויקט מסוים, משתמשים בפקודה gcloud projects describe:

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

ייבוא נתונים ל-Parallelstore

אפשר לייבא נתונים מקטגוריה של Cloud Storage. הקטגוריה יכולה להיות באותו פרויקט או בפרויקט אחר. המאגר יכול להיות באזור או באזור זמן שונים מהמופע של Parallelstore, אבל העברות בין אזורים עשויות להיות איטיות יותר מהעברות בתוך אזור.

gcloud

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

כאשר:

  • INSTANCE_ID הוא שם המופע של Parallelstore.
  • --location צריך להיות אזור נתמך.
  • --source-gcs-bucket-uri מציין את ה-URI של קטגוריה של Cloud Storage או נתיב בתוך קטגוריה, בפורמט gs://<bucket_name>/<optional_path_inside_bucket>.
  • --destination-parallelstore-path מציין את הנתיב של ספריית הבסיס למערכת הקבצים Parallelstore. חייב להתחיל ב-/. ערך ברירת המחדל הוא /.

הפרמטרים הבאים הם אופציונליים:

  • --request-id מאפשר להקצות מזהה ייחודי לבקשה הזו. אם תנסו לשלוח שוב את הבקשה הזו באמצעות אותו מזהה בקשה, השרת יתעלם מהבקשה אם היא כבר הושלמה. חייב להיות UUID תקין שלא מורכב מאפסים בלבד. לדוגמה: --request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
  • --async מחזירה תגובה באופן מיידי, בלי להמתין לסיום הפעולה.

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"
  }
}

כאשר:

  • PROJECT_ID הוא מזהה הפרויקט. Google Cloud
  • הערך LOCATION חייב להיות האזור הנתמך שבו נמצא המופע.
  • INSTANCE_ID הוא שם המופע של Parallelstore.
  • source-gcs-bucket מכיל מפתח uri שהערך שלו מציין את ה-URI של קטגוריה של Cloud Storage, או נתיב בתוך קטגוריה, בפורמט gs://<bucket_name>/<optional_path_inside_bucket>.
  • destination-parallelstore מכיל מפתח path שהערך שלו מציין את הנתיב של ספריית הבסיס למערכת הקבצים Parallelstore. חייב להתחיל ב-/. ערך ברירת המחדל הוא /.

כדי להשתמש בחשבון שירות משלכם במקום בסוכן שירות בניהול Google, הבקשה תומכת בשדה serviceAccount באובייקט JSON:

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

פקודת cURL לדוגמה:

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":"/"}}'

ייצוא נתונים

אתם יכולים לייצא נתונים מהמופע של Parallelstore לקטגוריה של Cloud Storage באותו פרויקט או בפרויקט אחר. ה-bucket יכול להיות באזור או באזור זמינות שונים מהמופע של Parallelstore, אבל העברות בין אזורים עשויות להיות איטיות יותר מהעברות בתוך אזור.

gcloud

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

כאשר:

  • INSTANCE_ID הוא שם המופע של Parallelstore.
  • --location צריך להיות אזור נתמך.
  • --destination-gcs-bucket-uri מציין את ה-URI לקטגוריה של Cloud Storage, או נתיב בתוך קטגוריה, בפורמט gs://<bucket_name>/<optional_path_inside_bucket>.
  • --source-parallelstore-path מציין את הנתיב של ספריית הבסיס למערכת הקבצים Parallelstore. חייב להתחיל ב-/. ערך ברירת המחדל הוא /.

הפרמטרים הבאים הם אופציונליים:

  • --request-id מאפשר להקצות מזהה ייחודי לבקשה הזו. אם תנסו לשלוח שוב את הבקשה הזו באמצעות אותו מזהה בקשה, השרת יתעלם מהבקשה אם היא כבר הושלמה. חייב להיות UUID תקין שלא מורכב מאפסים בלבד. לדוגמה: --request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
  • --async מחזירה תגובה באופן מיידי, בלי להמתין לסיום הפעולה.

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/"
  }
}

כאשר:

  • PROJECT_ID הוא מזהה הפרויקט. Google Cloud
  • INSTANCE_ID הוא שם המופע של Parallelstore.
  • הערך LOCATION חייב להיות האזור הנתמך שבו נמצא מופע Parallelstore.
  • --source-parallelstore מכיל מפתח path שהערך שלו מציין את הנתיב של ספריית הבסיס למערכת הקבצים Parallelstore. חייב להתחיל ב-/. ערך ברירת המחדל הוא /.
  • --destination-gcs-bucket מכיל מפתח uri שהערך שלו מציין את ה-URI של קטגוריה של Cloud Storage, או נתיב בתוך קטגוריה, בפורמט gs://<bucket_name>/<optional_path_inside_bucket>.

כדי להשתמש בחשבון שירות משלכם במקום בסוכן שירות בניהול Google, הבקשה תומכת בשדה serviceAccount באובייקט JSON:

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

פקודת cURL לדוגמה:

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/"}}'

קבלת פעולה

כדי לראות את הסטטוס של פעולת ייבוא או ייצוא, צריך את מזהה הפעולה. המזהה הזה מוחזר על ידי השירות כששולחים בקשת ייבוא או ייצוא, והוא בפורמט הבא:

  • 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]

פקודת cURL לדוגמה:

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

ביטול פעולה

כדי לבטל פעולת ייבוא או ייצוא, צריך את מזהה הפעולה. המזהה הזה מוחזר על ידי השירות כששולחים בקשת ייבוא או ייצוא, והוא בפורמט הבא:

  • 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]

פקודת cURL לדוגמה:

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