index.yaml로 데이터 저장소 색인 구성

Cloud Datastore를 사용하여 가변형 환경에서 실행되는 애플리케이션의 데이터를 저장할 수 있습니다. Cloud Datastore는 애플리케이션에서 생성하는 모든 쿼리에 색인을 사용합니다. 이러한 색인은 항목이 변경될 때마다 업데이트되므로 앱이 쿼리를 생성할 때 결과가 신속하게 반환될 수 있습니다. 그러려면 Cloud Datastore가 애플리케이션에서 어떤 쿼리를 생성할지 사전에 알고 있어야 합니다. 앱에 필요한 색인을 index.yaml 구성 파일에 지정합니다. Cloud Datastore 에뮬레이터를 사용하여 앱을 테스트하는 동안에 파일을 자동으로 생성하거나 직접 파일을 작성할 수 있습니다. 앱 배포 시 index.yaml 파일을 업로드해야 합니다.

index.yaml 정보

애플리케이션이 생성하는 모든 Cloud Datastore 쿼리에는 상응하는 색인이 필요합니다. 단일 속성 쿼리처럼 단순한 쿼리의 색인은 자동으로 생성됩니다. 복잡한 쿼리의 색인은 index.yaml이라는 구성 파일에 정의해야 합니다. 이 파일은 애플리케이션과 함께 업로드되어 Cloud Datastore에서 색인을 생성합니다.

다음은 index.yaml 파일의 예입니다.

indexes:

- kind: Cat
  ancestor: no
  properties:
  - name: name
  - name: age
    direction: desc

- kind: Cat
  properties:
  - name: name
    direction: asc
  - name: whiskers
    direction: desc

- kind: Store
  ancestor: yes
  properties:
  - name: business
    direction: asc
  - name: owner
    direction: asc

index.yaml의 구문은 YAML 형식입니다. 이 구문에 대한 자세한 내용은 YAML 웹사이트를 참조하세요.

색인 정의

index.yaml에는 indexes라고 하는 단일 목록 요소가 있습니다. 목록의 각 요소는 애플리케이션의 색인을 나타냅니다.

색인 요소에는 다음과 같은 요소가 있을 수 있습니다.

kind
쿼리 항목의 종류입니다. kind 인수(항목을 만들 때 datastore.NewKey에 지정됨)여야 합니다. 이 요소는 필수 항목입니다.
properties

색인의 열로 포함할 속성 목록(정렬 순서대로)입니다. 균등 필터에 사용하는 속성, 비균등 필터에 사용하는 속성, 정렬 순서 및 방향의 순서로 지정합니다.

목록의 각 요소에는 다음과 같은 요소가 포함됩니다.

name
속성의 데이터 저장소 이름입니다.
direction
정렬 방향입니다. 오름차순의 경우 asc, 내림차순의 경우 desc로 지정합니다. 쿼리의 정렬 순서에 사용되는 속성에만 필요하며 쿼리에서 사용되는 방향과 일치해야 합니다. 기본값은 asc입니다.
ancestor

yes이면 쿼리에 상위 절(Query.Ancestor)이 있는 것입니다. 기본값은 no입니다.

색인 파일 만들기

색인 파일은 위에 설명된 파일 레이아웃을 따라 텍스트 편집기를 사용해 수동으로 만들 수 있습니다. 더욱 효율적인 방법은 로컬에서 앱을 테스트하는 동안에 자동으로 파일을 생성하는 것입니다. 두 가지 방법을 함께 사용할 수도 있습니다.

로컬 환경에서 테스트할 때 앱을 실행하기 전에 gcloud 에뮬레이터 명령어를 사용하여 Cloud Datastore를 에뮬레이션하는 서비스를 시작할 수 있습니다.

gcloud beta emulators datastore start --data-dir DATA-DIR

--data-dir 플래그를 사용하여 자동 생성된 index.yaml 파일을 표시할 디렉토리를 지정합니다.

앱을 테스트하는 동안 Cloud Datastore 쿼리를 생성할 때마다 에뮬레이터가 index.yaml에 생성된 색인 정의를 추가합니다. 자동으로 생성된 색인은 모두 파일의 다음 줄 아래에 나타납니다.

# AUTOGENERATED

이 줄 위의 모든 색인 정의는 수동으로 제어되는 것으로 간주되어 개발용 웹 서버에 의해 업데이트되지 않습니다. 웹 서버는 이 줄 아래의 내용만 변경하는데 애플리케이션이 실행하는 쿼리의 색인이 완성된 index.yaml 파일에 명시되지 않은 경우에만 이러한 변경 작업을 수행합니다. 자동 색인 정의를 제어하려면 색인을 이 줄 위로 옮깁니다.

애플리케이션이 쿼리를 생성하는 동안에 에뮬레이터가 이 줄 아래의 기존 정의를 업데이트할 수 있습니다. 앱을 테스트하는 동안 앱이 실행할 모든 쿼리를 생성하면 index.yaml 내의 생성 항목이 완료됩니다. 이 파일을 수동으로 편집하여 프로덕션에서 사용되지 않는 색인을 삭제하거나 테스트하는 동안 생성되지 않은 색인을 정의해야 할 수도 있습니다.

색인 파일 배포

애플리케이션을 배포하기 전에 gcloud 명령어를 사용하여 index.yaml 파일을 배포해야 합니다.

gcloud app deploy index.yaml
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Go용 Google App Engine Flexible Environment