Datastore Admin

O Firestore no modo Datastore era compatível com a capacidade de ativar o Datastore Admin, um módulo opcional com recursos de exclusão e backup em massa. O Datastore Admin foi substituído por alternativas mais confiáveis:

Como acessar o Datastore Admin

Se você já tiver ativado o administrador do Datastore, poderá continuar acessando o módulo por meio de https://ah-builtin-python-bundle-dot-PROJECT_ID.appspot.com/_ah/datastore_admin?app_id=PROJECT_ID, em que PROJECT_ID é o ID do projeto do Google Cloud. Se desativá-lo, não poderá reativar o módulo.

Advertências sobre o uso de recursos do Datastore Admin

  • Em cópias, exclusões e backups, as atualizações recentes podem não ser consideradas.
  • Todas as operações do Datastore Admin ocorrem no aplicativo e, portanto, são imputadas à sua cota.
  • É altamente recomendável desativar as gravações durante um backup ou uma restauração.
  • As entidades existentes com as mesmas chaves serão substituídas durante uma operação de cópia/restauração. As cópias não serão criadas se operações de cópia/restauração forem realizadas várias vezes. As operações de cópia/restauração não excluem dados extras.
  • Se for usada uma fila não padrão de backup/restauração, só será possível especificar o destino ah-builtin-python-bundle em queue.yaml. Não será possível usar outros destinos.

Permissões de acesso ao banco de dados

Por padrão, o Datastore Admin pode acessar um banco de dados do Datastore no mesmo projeto e não exige permissões de gerenciamento de identidade e acesso para o Datastore.

Como fazer backup de dados

Siga as etapas abaixo para criar um arquivo de backup para futuras restaurações de dados ou para exportação.

  1. Crie um bucket de armazenamento para o projeto, caso ainda não tenha feito isso. Se quiser, verifique se a conta de serviço padrão do App Engine do projeto tem acesso ao bucket através da Lista de controle de acesso. Essa opção já poderá estar definida por padrão. Se necessário, poderá ser modificada.

  2. (Recomendado) Desative as gravações do Cloud Datastore.

  3. Abrir o Datastore Admin

  4. Selecione os tipos de entidade dos quais quer fazer backup.

  5. Clique em Fazer backup de entidades para exibir o formulário de backup.

  6. Observe que o nome do backup é fornecido e inclui um registro de data.

    É preciso alterar esse valor se você fizer mais de um backup por dia, porque ele não será realizado se já houver um backup com o mesmo nome.

  7. A fila padrão é usada para o job de backup. Ela pode ser usada na maioria dos casos.

    Se for usada uma fila não padrão de backup/restauração, só será possível especificar o destino ah-builtin-python-bundle em queue.yaml. Você não poderá usar outros destinos.

  8. Selecione o Google Cloud Storage como local de armazenamento do backup.

  9. Ao selecionar o Cloud Storage, você precisará fornecer o nome do bucket em que os backups serão armazenados, no formato [BUCKET_NAME]. Também é possível especificar, opcionalmente, o nome do bucket sufixado com uma estrutura de diretório, como [BUCKET_NAME]/backups/foo. Se essas pastas ainda não existirem, elas serão criadas.

  10. Inicie os jobs de backup clicando em Fazer backup de entidades. Será exibida uma página de status do job. Status da tarefa de backup

  11. Clique em Voltar para o Datastore Admin para ver o status do backup.

  12. Após a conclusão do backup, ative novamente as gravações do Cloud Datastore caso estejam desativadas.

Considerações sobre backup e restauração

O recurso de backup e restauração tem como finalidade ajudar você a recuperar exclusões acidentais de dados e permitir que você exporte dados. É possível fazer backup de todas as entidades ou apenas dos tipos selecionados, além de restaurar a partir de um desses backups quando necessário.

Os backups são salvos no Cloud Storage.

O backup não contém nenhum índice. Ao fazer uma restauração, os índices necessários são automaticamente recriados com as definições de índice enviadas com o aplicativo.

Também é possível usar arquivos de backup para exportar seus dados para outros serviços do Google Cloud, como o BigQuery.

As restaurações não atribuem novos códigos às entidades. As restaurações usam os códigos que existiam no momento do backup e substituem qualquer entidade existente com o mesmo código. Durante uma restauração, os códigos são reservados conforme as entidades são restauradas. Isso deve evitar conflitos de códigos com novas entidades se as gravações estiverem habilitadas enquanto uma restauração é executada. As novas entidades adicionadas desde o backup são mantidas.

Você pode restaurar todos os dados de um backup ou restaurar tipos de entidades específicos do backup. Além disso, você também pode usar esse recurso para restaurar um backup dos dados de um aplicativo em outro aplicativo, desde que você use o Google Cloud Storage para os backups.

Como cancelar um backup

Se as tarefas de backup estiverem em execução no momento, elas serão exibidas na lista Backups pendentes na tela do Cloud Datastore Admin.

Para interromper a execução desses backups:

  1. Abrir o Datastore Admin
  2. Na seção Backups pendentes, selecione o backup na lista e clique em Cancelar.

Ao cancelar uma tarefa de backup, o App Engine tenta excluir os dados de backup salvos até esse ponto. Entretanto, há casos em que alguns arquivos podem permanecer após o cancelamento. Você pode encontrar esses arquivos no local escolhido para os backups no Google Cloud Storage e exclui-los com segurança após a conclusão do cancelamento. Os nomes desses arquivos começam com o seguinte padrão: datastore_backup_[BUCKET_NAME].

Como encontrar informações sobre um backup

Talvez você precise encontrar detalhes sobre um backup, tais como quais tipos de entidade ele contém, onde ele foi salvo no Google Cloud Storage e a hora de início e fim. Para exibir essas informações de backup:

  1. Abrir o Datastore Admin
  2. Selecione um ou mais backups na lista Backups ou Backups pendentes.
  3. Clique em Informações para exibir as informações sobre esses backups.
  4. Clique em Voltar para retornar à tela principal do Cloud Datastore Admin.

Como restaurar dados

Para restaurar a partir de um backup:

  1. (Recomendado) Desative as gravações do Cloud Datastore no aplicativo. Geralmente, é bom fazer isso para evitar conflitos entre a restauração e os dados novos gravados no Cloud Datastore.
  2. Abrir o Datastore Admin
  3. Na lista de backups disponíveis, selecione o backup que quer restaurar.
  4. Clique em Restaurar.
  5. Na página de consulta exibida, veja a lista de entidades com caixas de seleção. Por padrão, todas as entidades serão restauradas. Desmarque a caixa de seleção ao lado de cada entidade que não queira restaurar.
  6. Ainda na página de consulta, observe que a fila padrão, com as definições de desempenho pré-configuradas, é usada para o job de restauração. Altere para outra fila configurada de modo diferente se precisar de características de desempenho de fila diferentes, certificando-se de que a fila selecionada tenha apenas um destino especificado em queue.yaml, isto é, ah-builtin-python-bundle.
  7. Inicie a restauração clicando em Restaurar. Será exibida uma página de status do job.
  8. Clique em Voltar para o Datastore Admin para ver o status da restauração. Restaurar o status
  9. Após a conclusão da restauração, ative novamente as gravações do Cloud Datastore no seu aplicativo caso estejam desativadas.

Como restaurar dados em outro aplicativo

Se você fizer backup dos dados usando o Google Cloud Storage, poderá restaurar os backups em aplicativos diferentes do usado para criar o backup.

Para restaurar os dados de backup de um aplicativo de origem em um aplicativo de destino:

  1. Crie uma política de gerenciamento de identidade e acesso (IAM) no bucket de armazenamento do aplicativo de origem com a seguinte permissão:

    • Principal: [PROJECT_ID]@appspot.gserviceaccount.com
    • Papéis: Storage Legacy Bucket Reader e Storage Legacy Object Reader

    em que [PROJECT_ID] é o código do projeto do aplicativo de destino.

  2. Faça um novo backup no aplicativo de origem.

  3. (Recomendado) Desative as gravações do Cloud Datastore no aplicativo de destino para evitar conflitos entre os dados restaurados e os dados novos gravados no Cloud Datastore.

  4. Abrir o Datastore Admin

  5. Na caixa de texto ao lado do botão Importar informações de backup, especifique o bucket do aplicativo de origem que contém o backup, no formato /gs/[BUCKET_NAME]. Backup de bucket de armazenamento
    Outra opção é fornecer o identificador de arquivo para um backup específico. Para exibir este identificador, abra a página Admin do aplicativo de origem, selecione o backup e clique em Informações. Você verá o arquivo ao lado do marcador Identificador.

  6. Clique em Importar informações do backup.
    A página de seleção resultante mostra os backups disponíveis para o bucket especificado, a menos que um backup tenha sido especificado pelo identificador. Selecione o backup desejado e clique em uma das seguintes opções:

    • Adicionar à lista de backups, se quiser que ele seja mantido na lista de backups disponíveis do aplicativo.
    • Restaurar a partir do backup, se preferir restaurar deste backup, mas não quiser que ele seja exibido na lista de backups disponíveis do aplicativo.
  7. Na página de consulta exibida, veja a lista de entidades com caixas de seleção. Por padrão, todas as entidades serão restauradas. Desmarque a caixa de seleção ao lado de cada entidade que não queira restaurar.

  8. Ainda na página de consulta, observe que a fila padrão, com as definições de desempenho pré-configuradas, é usada para o job de restauração. Altere para uma fila que tenha sido configurada de maneira diferente se precisar de outras características de desempenho da fila.

  9. Inicie a restauração clicando em Restaurar. Uma página de status do job será exibida.

  10. Após a conclusão da restauração, ative novamente as gravações do Cloud Datastore caso estejam desativadas.

Como visualizar o uso de recursos

Backups muito frequentes geralmente levam a custos mais altos. Quando você executa uma tarefa do Cloud Datastore Admin, na verdade está executando uma tarefa subjacente do MapReduce. Os jobs do MapReduce causam o aumento das horas da instância de front-end além das operações e do uso de armazenamento.

Para ver o uso dos recursos:

  1. Acesse a página App Engine do console do Google Cloud.

    Acessar a página do App Engine

  2. Use os menus suspensos na parte superior da página para selecionar o serviço default e a versão ah-builtin-python-bundle.

Como ativar ou desativar gravações no banco de dados

É recomendável que você desative as gravações antes de uma restauração. Isso ajuda a evitar conflitos entre a restauração e novos dados gravados no banco de dados.

A desativação das gravações impede que as entidades sejam alteradas

  • pelo leitor do Datastore;
  • por aplicativos que usam a API Datastore.

Para ativar ou desativar gravações:

  1. Acesse a página Admin.

    Acessar a página "Admin"

  2. Clique em Ativar gravações para ativá-las ou Desativar gravações para desativá-las. O texto do botão varia, dependendo do estado do projeto.

Como visualizar o uso de recursos do Datastore Admin

Ao executar um job do Datastore Admin, está executando, na verdade, um job subjacente do MapReduce. Os jobs do MapReduce causam aumento de horas da instância de front-end além das operações e do uso de armazenamento.

Para ver o uso dos recursos:

  1. Acesse a página App Engine do console do Google Cloud.

    Acessar a página do App Engine

  2. Use os menus suspensos na parte superior da página para selecionar o serviço default e a versão ah-builtin-python-bundle.

Como desativar o acesso ao Datastore Admin

  1. Execute o seguinte comando, substituindo PROJECT_ID pelo ID do seu projeto do Google Cloud:

    curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://appengine.googleapis.com/v1/apps/PROJECT_ID/services/default/versions/ah-builtin-python-bundle