Mengekspor dan mengimpor data emulator

Dengan menggunakan fitur impor dan ekspor emulator Datastore, Anda dapat mengekspor data dari instance database dan memuatnya ke emulator. Anda juga dapat mengekspor data dari emulator dan memuatnya ke database mode Datastore.

Sebelum memulai

Sebelum menggunakan fitur impor atau ekspor emulator Datastore, selesaikan langkah-langkah berikut:

Mengimpor entity ke dalam emulator

Fitur impor emulator memungkinkan Anda memuat entity dari sekumpulan file ekspor entity ke emulator. File ekspor entity dapat berasal dari ekspor database mode Datastore Anda atau instance emulator.

Untuk mengimpor entity ke emulator, kirim permintaan impor POST ke emulator. Anda dapat menggunakan curl atau alat serupa. Misalnya, permintaan berikut akan mengimpor semua entity dari sekumpulan file ekspor entity ke emulator:

Protocol

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:import \
-H 'Content-Type: application/json' \
-d '{"input_url":"[ENTITY_EXPORT_FILES]"}'
Ubah localhost:8081 jika emulator menggunakan port yang berbeda.

dengan:

  • [PROJECT_ID] adalah ID project Anda.
  • [ENTITY_EXPORT_FILES] adalah jalur ke file overall_export_metadata dari file ekspor entity Anda. Contoh:

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

Mengimpor entity dari jenis dan namespace tertentu

Anda dapat menentukan filter entity untuk mengimpor entity hanya dari jenis atau namespace tertentu. Anda dapat menentukan filter entity hanya jika ekspor dibuat menggunakan filter entity.

Tentukan jenis atau namespace dalam filter entity:

Protocol

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:import \
-H 'Content-Type: application/json' \
-d '{"input_url":"[ENTITY_EXPORT_FILES]",
"entity_filter berbedas":[[KIND_NAMES]], "namespace_ids":[[NAMESPACES]]}}'
Ubah localhost:8081 jika emulator menggunakan port yang berbeda.

dengan:

  • [PROJECT_ID] adalah ID project Anda.
  • [ENTITY_EXPORT_FILES] adalah jalur ke file overall_export_metadata dari file ekspor entity Anda. Contoh:

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

  • [KIND_NAMES] adalah daftar jenis: "kinds":["KIND_1", "KIND_2"]

  • [NAMESPACES] adalah daftar ID namespace:

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

Mengekspor entity di emulator

Fitur ekspor emulator memungkinkan Anda menyimpan entity di emulator ke dalam kumpulan file ekspor entity. Selanjutnya, Anda dapat menggunakan operasi impor untuk memuat entity dalam file ekspor entity ke database mode Datastore Anda atau ke instance emulator.

Untuk mengekspor entity dalam instance emulator, kirim permintaan ekspor POST ke emulator. Anda dapat menggunakan curl atau alat serupa. Misalnya, permintaan berikut akan mengekspor semua entity di emulator:

Protocol

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:export \
-H 'Content-Type: application/json' \
-d '{"output_url_prefix":"EXPORT_DIRECTORY"}'
Ubah localhost:8081 jika emulator menggunakan port yang berbeda.

dengan:

  • [PROJECT_ID] adalah ID project Anda.
  • [EXPORT_DIRECTORY] menentukan direktori tempat emulator menyimpan file ekspor entity. Direktori ini tidak boleh berisi kumpulan file ekspor entity. Contoh:

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

Mengekspor entity dari jenis dan namespace tertentu

Anda dapat menentukan filter entity untuk mengekspor entity hanya dari jenis atau namespace tertentu.

Tentukan jenis atau namespace dalam filter entity:

Protocol

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:export \
-H 'Content-Type: application/json' \
-d '{"output_url_prefix":"EXPORT_DIRECTORY",
"entity_filter berbedas":[[KIND_NAMES]], "namespace_ids":[[NAMESPACES]]}}'
Ubah localhost:8081 jika emulator menggunakan port yang berbeda.

dengan:

  • [PROJECT_ID] adalah ID project Anda.
  • [EXPORT_DIRECTORY] menentukan direktori tempat emulator menyimpan file ekspor entity. Direktori ini tidak boleh berisi kumpulan file ekspor entity. Contoh:

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

  • [KIND_NAMES] adalah daftar jenis: "kinds":["KIND_1", "KIND_2"]

  • [NAMESPACES] adalah daftar ID namespace:

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

Memuat data emulator ke database Anda

File ekspor entity yang dibuat oleh emulator kompatibel dengan fitur impor terkelola untuk database mode Datastore.

Sebelum dapat memuat entity yang diekspor dari emulator ke database, Anda harus mengupload file ekspor entity ke bucket Cloud Storage. Fitur impor terkelola hanya membaca dari bucket Cloud Storage.

Setelah file ekspor entity Anda tersedia di bucket Cloud Storage, Anda dapat mengimpor data ke database seperti yang dijelaskan dalam artikel Mengekspor dan mengimpor entity.