Daten in oder aus Cloud Storage übertragen

Parallelstore kann Daten aus Cloud Storage importieren und in Cloud Storage exportieren. Mithilfe von Datenübertragungen können Sie Daten schnell in Ihre Parallelstore-Instanz laden und Cloud Storage als langlebige Sicherungsebene für Ihre Parallelstore-Instanz verwenden.

Datenimporte und ‑exporte sind inkrementell. Es werden nur Dateien kopiert, die am Ziel noch nicht vorhanden sind oder sich seit der Übertragung geändert haben.

Die voraussichtliche Übertragungsgeschwindigkeit finden Sie unter Leistung.

Erforderliche Berechtigungen

Das Nutzer- oder Dienstkonto, mit dem die Übertragung initiiert wird, benötigt die folgenden Berechtigungen:

  • parallelstore.instances.exportData, um von Parallelstore zu Cloud Storage zu übertragen.
  • parallelstore.instances.importData, um sie in Cloud Storage zu übertragen.

Beide Berechtigungen werden mit der Rolle roles/parallelstore.admin gewährt. Sie können eine benutzerdefinierte Rolle erstellen, um Berechtigungen unabhängig zu gewähren.

Außerdem benötigt das Parallelstore-Dienstkonto die folgende Berechtigung:

  • roles/storage.admin für den Cloud Storage-Bucket.

Führen Sie zum Gewähren dieser Berechtigung den folgenden gcloud-Befehl aus:

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

Ihre PROJECT_NUMBER ist nicht mit einer Projekt-ID identisch:

  • Eine Projekt-ID ist eine eindeutige Zeichenfolge, die aus Buchstaben, Ziffern und Bindestrichen bestehen kann. Sie geben eine Projekt-ID an, wenn Sie das Projekt erstellen. Beispiel: example-project-123.
  • Eine Projektnummer ist eine automatisch generierte eindeutige Kennung für Ihr Projekt, die nur aus Zahlen besteht. Beispiel: 1234567890.

Verwenden Sie den Befehl gcloud projects describe, um die PROJECT_NUMBER für eine bestimmte Projekt-ID abzurufen:

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

Daten in Parallelstore importieren

Sie können Daten aus einem Cloud Storage-Bucket importieren. Der Bucket kann sich im selben oder in einem anderen Projekt befinden. Der Bucket kann sich in einer anderen Zone oder Region als Ihre Parallelstore-Instanz befinden. Zwischenregionen-Übertragungen sind jedoch möglicherweise langsamer als innerhalb einer Region.

gcloud

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

Wobei:

  • INSTANCE_ID ist der Name Ihrer Parallelstore-Instanz.
  • --location muss eine unterstützte Zone sein.
  • Mit --source-gcs-bucket-uri wird der URI zu einem Cloud Storage-Bucket oder ein Pfad innerhalb eines Buckets im Format gs://<bucket_name>/<optional_path_inside_bucket> angegeben.
  • --destination-parallelstore-path gibt den Pfad zum Stammverzeichnis des Parallelstore-Dateisystems an. Muss mit / beginnen. Der Standardwert ist /.

Folgende Parameter sind optional:

  • Mit --request-id können Sie dieser Anfrage eine eindeutige ID zuweisen. Wenn Sie diese Anfrage mit derselben Anfrage-ID noch einmal senden, ignoriert der Server die Anfrage, falls sie bereits abgeschlossen wurde. Muss eine gültige UUID sein, die nicht nur aus Nullen besteht. Beispiel: --request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
  • --async gibt sofort eine Antwort zurück, ohne auf den Abschluss des Vorgangs zu warten.

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

Wobei:

  • PROJECT_ID ist die Google Cloud Projekt-ID.
  • LOCATION muss die unterstützte Zone sein, in der sich Ihre Instanz befindet.
  • INSTANCE_ID ist der Name Ihrer Parallelstore-Instanz.
  • source-gcs-bucket enthält einen uri-Schlüssel, dessen Wert den URI zu einem Cloud Storage-Bucket oder einen Pfad innerhalb eines Buckets im Format gs://<bucket_name>/<optional_path_inside_bucket> angibt.
  • destination-parallelstore enthält einen path-Schlüssel, dessen Wert den Pfad zum Stammverzeichnis des Parallelstore-Dateisystems angibt. Muss mit / beginnen. Der Standardwert ist /.

Wenn Sie Ihr eigenes Dienstkonto anstelle des von Google verwalteten Dienstmitarbeiters verwenden möchten, unterstützt die Anfrage ein serviceAccount-Feld im JSON-Objekt:

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

Ein Beispiel für einen cURL-Befehl:

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

Daten exportieren

Sie können Daten aus Ihrer Parallelstore-Instanz in einen Cloud Storage-Bucket im selben oder in einem anderen Projekt exportieren. Der Bucket kann sich in einer anderen Zone oder Region als Ihre Parallelstore-Instanz befinden. Interregionale Übertragungen sind jedoch möglicherweise langsamer als intraregionale Übertragungen.

gcloud

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

Wobei:

  • INSTANCE_ID ist der Name Ihrer Parallelstore-Instanz.
  • --location muss eine unterstützte Zone sein.
  • --destination-gcs-bucket-uri gibt den URI zu einem Cloud Storage-Bucket oder einen Pfad innerhalb eines Buckets im Format gs://<bucket_name>/<optional_path_inside_bucket> an.
  • --source-parallelstore-path gibt den Pfad zum Stammverzeichnis des Parallelstore-Dateisystems an. Muss mit / beginnen. Der Standardwert ist /.

Folgende Parameter sind optional:

  • Mit --request-id können Sie dieser Anfrage eine eindeutige ID zuweisen. Wenn Sie diese Anfrage mit derselben Anfrage-ID noch einmal senden, ignoriert der Server die Anfrage, falls sie bereits abgeschlossen wurde. Muss eine gültige UUID sein, die nicht nur aus Nullen besteht. Beispiel: --request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
  • --async gibt sofort eine Antwort zurück, ohne auf den Abschluss des Vorgangs zu warten.

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

Wobei:

  • PROJECT_ID ist die Google Cloud Projekt-ID.
  • INSTANCE_ID ist der Name Ihrer Parallelstore-Instanz.
  • LOCATION muss die unterstützte Zone sein, in der sich Ihre Parallelstore-Instanz befindet.
  • --source-parallelstore enthält einen path-Schlüssel, dessen Wert den Pfad zum Stammverzeichnis des Parallelstore-Dateisystems angibt. Muss mit / beginnen. Der Standardwert ist /.
  • --destination-gcs-bucket enthält einen uri-Schlüssel, dessen Wert den URI zu einem Cloud Storage-Bucket oder einen Pfad innerhalb eines Buckets im Format gs://<bucket_name>/<optional_path_inside_bucket> angibt.

Wenn Sie Ihr eigenes Dienstkonto anstelle des von Google verwalteten Dienstmitarbeiters verwenden möchten, unterstützt die Anfrage ein serviceAccount-Feld im JSON-Objekt:

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

Ein Beispiel für einen cURL-Befehl:

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

Vorgang abrufen

Um den Status eines Import- oder Exportvorgangs zu sehen, benötigen Sie die Vorgangs-ID. Diese ID wird vom Dienst zurückgegeben, wenn Sie eine Import- oder Exportanfrage stellen. Sie hat folgendes Format:

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

Ein Beispiel für einen cURL-Befehl:

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

Vorgang abbrechen

Wenn Sie einen Import- oder Exportvorgang abbrechen möchten, benötigen Sie die Vorgangs-ID. Diese ID wird vom Dienst zurückgegeben, wenn Sie eine Import- oder Exportanfrage stellen. Sie hat folgendes Format:

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

Ein Beispiel für einen cURL-Befehl:

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