Mengekspor dan mengimpor data emulator

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

Sebelum memulai

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

Mengimpor entity ke emulator

Fitur impor emulator memungkinkan Anda memuat entity dari sekumpulan file ekspor entity ke dalam emulator. File ekspor entity dapat berasal dari ekspor database mode Datastore 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 kumpulan file ekspor entity ke emulator:

Protokol

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 hanya dapat menentukan filter entity jika ekspor dibuat menggunakan filter entity.

Tentukan jenis atau namespace dalam filter entity:

Protokol

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]]}}'
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 serangkaian file ekspor entity. Selanjutnya, Anda dapat menggunakan operasi impor untuk memuat entity dalam file ekspor entity ke database mode Datastore 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:

Protokol

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:

Protokol

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]]}}'
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 dalam database

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 tersedia di bucket Cloud Storage, Anda dapat mengimpor data ke database seperti yang dijelaskan dalam Mengekspor dan mengimpor entity.