에뮬레이터 데이터 내보내기 및 가져오기

Datastore 에뮬레이터의 가져오기 및 내보내기 기능을 사용하여 데이터베이스 인스턴스에서 데이터를 내보내 에뮬레이터로 로드할 수 있습니다. 에뮬레이터에서 데이터를 내보내 Datastore 모드 데이터베이스로 로드할 수도 있습니다.

시작하기 전에

Datastore 에뮬레이터의 가져오기 또는 내보내기 기능을 사용하려면 먼저 다음을 완료해야 합니다.

에뮬레이터로 항목 가져오기

에뮬레이터의 가져오기 기능을 사용하면 항목 내보내기 파일 모음의 항목을 에뮬레이터로 로드할 수 있습니다. 항목 내보내기 파일은 Datastore 모드 데이터베이스 또는 에뮬레이터 인스턴스에서 내보내기를 수행하여 가져올 수 있습니다.

항목을 에뮬레이터로 가져오려면 에뮬레이터로 POST 가져오기 요청을 보냅니다. curl 또는 유사한 도구를 사용할 수 있습니다. 예를 들어 다음 요청은 항목 내보내기 파일 모음에서 모든 항목을 에뮬레이터로 가져옵니다.

프로토콜

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:import \
-H 'Content-Type: application/json' \
-d '{"input_url":"[ENTITY_EXPORT_FILES]"}'
에뮬레이터가 다른 포트를 사용하는 경우 localhost:8081을 수정합니다.

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 프로젝트 ID입니다.
  • [ENTITY_EXPORT_FILES]는 항목 내보내기 파일 중 overall_export_metadata 파일의 경로입니다. 예를 들면 다음과 같습니다.

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

특정 종류 및 네임스페이스에서 항목 가져오기

항목 필터를 지정하여 특정 종류 또는 네임스페이스의 항목만 가져올 수 있습니다. 항목 필터를 사용하여 내보내기를 만든 경우에만 항목 필터를 지정할 수 있습니다.

항목 필터에서 종류 또는 네임스페이스를 지정합니다.

프로토콜

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]]}}'
에뮬레이터가 다른 포트를 사용하는 경우 localhost:8081을 수정합니다.

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 프로젝트 ID입니다.
  • [ENTITY_EXPORT_FILES]는 항목 내보내기 파일 중 overall_export_metadata 파일의 경로입니다. 예를 들면 다음과 같습니다.

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

  • [KIND_NAMES]"kinds":["KIND_1", "KIND_2"] 종류의 목록입니다.

  • [NAMESPACES]는 네임스페이스 ID 목록입니다.

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

에뮬레이터의 항목 내보내기

에뮬레이터의 내보내기 기능을 사용하면 에뮬레이터의 항목을 항목 내보내기 파일 모음에 저장할 수 있습니다. 그런 다음 가져오기 작업을 사용하여 항목 내보내기 파일의 항목을 Datastore 모드 데이터베이스 또는 에뮬레이터 인스턴스로 로드할 수 있습니다.

에뮬레이터 인스턴스에서 항목을 내보내려면 에뮬레이터로 POST 내보내기 요청을 보냅니다. curl 또는 유사한 도구를 사용할 수 있습니다. 예를 들어 다음 요청은 에뮬레이터의 모든 항목을 내보냅니다.

프로토콜

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:export \
-H 'Content-Type: application/json' \
-d '{"output_url_prefix":"EXPORT_DIRECTORY"}'
에뮬레이터가 다른 포트를 사용하는 경우 localhost:8081을 수정합니다.

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 프로젝트 ID입니다.
  • [EXPORT_DIRECTORY]는 에뮬레이터가 항목 내보내기 파일을 저장하는 디렉터리를 지정합니다. 이 디렉터리에 항목 내보내기 파일 모음이 포함되어 있으면 안 됩니다. 예를 들면 다음과 같습니다.

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

특정 종류 및 네임스페이스에서 항목 내보내기

항목 필터를 지정하여 특정 종류 또는 네임스페이스의 항목만 내보낼 수 있습니다.

항목 필터에서 종류 또는 네임스페이스를 지정합니다.

프로토콜

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]]}}'
에뮬레이터가 다른 포트를 사용하는 경우 localhost:8081을 수정합니다.

각 항목의 의미는 다음과 같습니다.

  • [PROJECT_ID]는 프로젝트 ID입니다.
  • [EXPORT_DIRECTORY]는 에뮬레이터가 항목 내보내기 파일을 저장하는 디렉터리를 지정합니다. 이 디렉터리에 항목 내보내기 파일 모음이 포함되어 있으면 안 됩니다. 예를 들면 다음과 같습니다.

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

  • [KIND_NAMES]"kinds":["KIND_1", "KIND_2"] 종류의 목록입니다.

  • [NAMESPACES]는 네임스페이스 ID 목록입니다.

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

데이터베이스에 에뮬레이터 데이터 로드

에뮬레이터에서 만든 항목 내보내기 파일은 Datastore 모드 데이터베이스의 관리형 내보내기 기능과 호환됩니다.

에뮬레이터에서 내보낸 항목을 데이터베이스로 로드하려면 먼저 Cloud Storage 버킷에 항목 내보내기 파일을 업로드해야 합니다. 관리형 내보내기 기능이 Cloud Storage 버킷에서만 읽기 때문입니다.

Cloud Storage 버킷에서 항목 내보내기 파일을 사용할 수 있으면 항목 내보내기 및 가져오기의 설명대로 데이터를 데이터베이스로 가져올 수 있습니다.