Como configurar índices do armazenamento de dados

No Cloud Datastore, o App Engine usa índices para cada consulta realizada pelo aplicativo. Esses índices são atualizados sempre que uma entidade sofre alterações, para maior rapidez no retorno dos resultados durante uma consulta pelo aplicativo. Para isso, é preciso informar ao Datastore, com antecedência, quais consultas serão realizadas pelo aplicativo. Especifique os índices necessários para o aplicativo em um arquivo de configuração. Esse arquivo de índice é gerado automaticamente pelo servidor de desenvolvimento local à medida que o aplicativo é testado.

Neste guia, você recebe instruções sobre como criar e gerenciar os índices. Para mais informações de referência, consulte Índices do armazenamento de dados.

Como criar índices do armazenamento de dados

Cada consulta ao Cloud Datastore realizada por um aplicativo precisa de um índice correspondente. Os índices de consultas simples, como os de propriedade única, são criados automaticamente. Os índices de consultas complexas precisam ser definidos em um arquivo de configuração chamado index.yaml. Este arquivo é implantado com o aplicativo para criar os índices no Cloud Datastore.

Este é um exemplo de arquivo 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

Como criar índices usando o servidor de desenvolvimento

O servidor da Web de desenvolvimento dev_appserver.py adiciona itens automaticamente a este arquivo quando o aplicativo tenta executar uma consulta que precisa de um índice que não tem uma entrada apropriada no arquivo de configuração.

No servidor de desenvolvimento, para usar cada consulta realizada pelo aplicativo, o servidor de desenvolvimento gera uma lista completa de entradas no arquivo index.yaml.

Quando o servidor da Web de desenvolvimento adiciona uma definição de índice gerada para o index.yaml, ele faz isso abaixo da seguinte linha e a insere caso necessário:

# AUTOGENERATED

O servidor da Web de desenvolvimento considera automáticas todas as definições de índice abaixo desta linha e atualiza as definições existentes abaixo dela, já que o aplicativo realiza consultas.

Como criar índices manualmente

É possível adicionar índices manualmente no arquivo index.yaml ou editar as entradas existentes. Para consultas controladas manualmente, é preciso adicioná-las acima da linha que é comentada com AUTOGENERATED.

Todas as definições de índice acima dessa linha são consideradas sob controle manual e não são atualizadas pelo servidor da Web de desenvolvimento. As alterações serão feitas pelo servidor de desenvolvimento apenas abaixo da linha e caso o arquivo index.yaml completo não descreva um índice que se refira a uma consulta executada pelo aplicativo. Para assumir o controle da definição automática de um índice, mova-a para cima dessa linha.

Consulte a referência do index.yaml para mais informações de sintaxe.

Como atualizar índices

Faça upload do arquivo de configuração index.yaml para o Cloud Datastore com o comando gcloud. Caso o arquivo index.yaml defina quaisquer índices que não existam no Cloud Datastore, esses novos índices serão criados.

Levará algum tempo até que o Cloud Datastore crie todos os índices. Portanto, eles não estarão imediatamente disponíveis no App Engine. No aplicativo já configurado para receber tráfego, ocorrem exceções para consultas que exigem um índice ainda em processo de criação.

Para evitar essas exceções, é preciso dar um tempo para que todos os índices sejam criados. Para mais informações e exemplos sobre como criar índices, consulte Como implantar um aplicativo do Python.

Para carregar a configuração de índice no Cloud Datastore, execute o seguinte comando no diretório em que está localizado o index.yam:

gcloud

gcloud datastore indexes create index.yaml

Para mais informações, consulte a referência do gcloud datastore.

appcfg

appcfg.py update_indexes [YOUR_APP_DIRECTORY]

Use o console do GCP para verificar o status dos índices.

Excluir índices não utilizados

Ao alterar ou remover um índice do index.yaml, o índice original não é excluído automaticamente do Cloud Datastore. Assim, você tem a oportunidade de deixar uma versão antiga do aplicativo em execução enquanto são criados novos índices ou de reverter para a versão antiga imediatamente após a descoberta de um problema com a nova versão.

Quando for confirmado que os índices anteriores restantes no Cloud Datastore não são mais necessários, execute o seguinte comando para excluir qualquer índice não definido no arquivo index.yaml:

gcloud

gcloud datastore cleanup-indexes index.yaml

Para mais informações, consulte a referência do gcloud datastore.

appcfg

appcfg.py vacuum_indexes [YOUR_APP_DIRECTORY]
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python 2