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:
-
Fitur impor dan ekspor tersedia untuk
cloud-datastore-emulator
versi 2.1.0 dan yang lebih baru. Anda mungkin perlu mengupdate komponen Google Cloud CLI. Untuk operasi impor, pastikan file ekspor entity Anda berada di mesin yang sama dengan emulator.
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]"}'
localhost:8081
jika emulator menggunakan port yang berbeda.dengan:
[PROJECT_ID]
adalah ID project Anda.[ENTITY_EXPORT_FILES]
adalah jalur ke fileoverall_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]]}}'
localhost:8081
jika emulator menggunakan port yang berbeda.dengan:
[PROJECT_ID]
adalah ID project Anda.[ENTITY_EXPORT_FILES]
adalah jalur ke fileoverall_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"}'
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]]}}'
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.