Esportazione e importazione dei dati dell'emulatore

Utilizzando le funzionalità di importazione ed esportazione dell'emulatore Datastore, puoi esportare i dati dall'istanza del database e caricarli nell'emulatore. Tu esportare i dati dall'emulatore e caricarli nel tuo in modalità Datastore.

Prima di iniziare

Prima di utilizzare le funzionalità di importazione o esportazione dell'emulatore Datastore, completa i seguenti passaggi:

  • Avvia l'emulatore Datastore.

    Le funzionalità di importazione ed esportazione sono disponibili per cloud-datastore-emulator versioni 2.1.0 e successive. Potresti dover aggiornare Google Cloud CLI componenti.

  • Per le operazioni di importazione, assicurati che i file di esportazione delle entità siano gli stessi come emulatore.

Importa entità nell'emulatore

La funzionalità di importazione dell'emulatore ti consente di caricare le entità da un insieme di file di esportazione delle entità nell'emulatore. I file di esportazione delle entità possono provenire da un'esportazione del database in modalità Datastore o di un'istanza dell'emulatore.

Per importare entità nell'emulatore, invia una richiesta di importazione POST all' un emulatore. Puoi utilizzare curl o uno strumento simile. Ad esempio, la seguente richiesta importa tutte le entità da un insieme di file di esportazione delle entità nell'emulatore:

Protocollo

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:import \
-H 'Content-Type: application/json' \
-d '{"input_url":"[ENTITY_EXPORT_FILES]"}'
Modifica localhost:8081 se l'emulatore utilizza una porta diversa.

dove:

  • [PROJECT_ID] è l'ID del progetto.
  • [ENTITY_EXPORT_FILES] è il percorso del file overall_export_metadata di dei file di esportazione delle entità. Ad esempio:

    {"input_url":"/home/user/myexports/2019-02-04T19:39:33_443/2019-02-04T19:39:33_443.overall_export_metadata"}

Importa entità da tipi e spazi dei nomi specifici

Puoi specificare un filtro di entità per importare entità solo da tipi specifici o spazi dei nomi. Puoi specificare un filtro di entità solo se l'esportazione è stata creata utilizzando un filtro di entità.

Specifica tipi o spazi dei nomi in un filtro delle entità:

Protocollo

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:import \
-H 'Content-Type: application/json' \
-d '{"input_url":"[ENTITY_EXPORT_FILES]",
"entity_filter":{"kinds":[[KIND_NAMES]], "namespace_ids":[[NAMESPACES]]}}'
Modifica localhost:8081 se l'emulatore utilizza una porta diversa.

dove:

  • [PROJECT_ID] è l'ID del progetto.
  • [ENTITY_EXPORT_FILES] è il percorso del file overall_export_metadata dei file di esportazione delle entità. Ad esempio:

    {"input_url":"/home/user/myexports/2019-02-04T19:39:33_443/2019-02-04T19:39:33_443.overall_export_metadata"}

  • [KIND_NAMES] è un elenco di tipi: "kinds":["KIND_1", "KIND_2"]

  • [NAMESPACES] è un elenco di ID spazio dei nomi:

    "namespace_ids":["NAMESPACE_1", "NAMESPACE_2"]

Esportare le entità nell'emulatore

La funzione di esportazione dell'emulatore consente di salvare le entità nell'emulatore in un insieme di file di esportazione delle entità. Puoi quindi utilizzare un'operazione di importazione per caricare nei file di esportazione delle entità nel database in modalità Datastore in un'istanza dell'emulatore.

Per esportare entità in un'istanza di emulatore, invia una richiesta di esportazione POST all'account un emulatore. Puoi usare curl o uno strumento simile. Per Ad esempio, la seguente richiesta esporterà tutte le entità nell'emulatore:

Protocollo

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:export \
-H 'Content-Type: application/json' \
-d '{"output_url_prefix":"EXPORT_DIRECTORY"}'
Modifica localhost:8081 se l'emulatore utilizza una porta diversa.

dove:

  • [PROJECT_ID] è l'ID del tuo progetto.
  • [EXPORT_DIRECTORY] specifica la directory in cui l'emulatore salva i file di esportazione delle entità. Questa directory non deve contenere già un insieme di dei file di esportazione delle entità. Ad esempio:

    {"output_url_prefix":"/home/user/myexports/2019-02-04/"}

Esportare entità da tipi e spazi dei nomi specifici

Puoi specificare un filtro delle entità per esportare le entità solo da tipi specifici o spazi dei nomi.

Specifica i tipi o gli spazi dei nomi in un filtro di entità:

Protocollo

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:export \
-H 'Content-Type: application/json' \
-d '{"output_url_prefix":"EXPORT_DIRECTORY",
"entity_filter":{"kinds":[[KIND_NAMES]], "namespace_ids":[[NAMESPACES]]}}'
Modifica localhost:8081 se l'emulatore utilizza una porta diversa.

dove:

  • [PROJECT_ID] è l'ID del tuo progetto.
  • [EXPORT_DIRECTORY] specifica la directory in cui l'emulatore salva dei file di esportazione delle entità. Questa directory non deve contenere già un insieme di dei file di esportazione delle entità. Ad esempio:

    {"output_url_prefix":"/home/user/myexports/2019-02-04/"}``

  • [KIND_NAMES] è un elenco di tipi: "kinds":["KIND_1", "KIND_2"]

  • [NAMESPACES] è un elenco di ID spazio dei nomi:

    "namespace_ids":["NAMESPACE_1", "NAMESPACE_2"]

Carica i dati dell'emulatore nel database

I file di esportazione delle entità creati dall'emulatore sono compatibili con di importazione gestita per i database in modalità Datastore.

Prima di poter caricare nel tuo database entità esportate dall'emulatore, devi caricare i file di esportazione delle entità del bucket. La funzionalità di importazione gestita legge solo dall'interno dei bucket Cloud Storage.

Una volta che i file di esportazione delle entità sono disponibili in un bucket Cloud Storage, puoi importare i dati nel tuo database come descritto in Esportare e importare entità.