#google-cloud-platform #google-cloud-datastore
#google-облачная платформа #google-cloud-хранилище данных
Вопрос:
У меня есть несколько индексов хранилища данных Google, которые я добавил за несколько месяцев. Сегодня я добавил еще один. Через несколько минут я обнаружил, что это не тот индекс, который я должен создать.
Я назвал это:
$ gcloud datastore indexes list
---
ancestor: NONE
indexId: XXX1
kind: ThisIsKindName
projectId: GCP-PROJ-ID
properties:
- direction: ASCENDING
name: QueueName
- direction: ASCENDING
name: ExecutionLength
state: READY
---
ancestor: NONE
indexId: XXX2
kind: ThisIsKindName
projectId: GCP-PROJ-ID
properties:
- direction: ASCENDING
name: labels.application
- direction: DESCENDING
name: ExecutionLength
state: READY
---
...
И нашел индекс, который нужно удалить (ID = XXX2
).
Я нашел описание команды очистки, и мне это непонятно. Эта функция запрашивает предоставление index.yaml
файла.
Что должно быть найдено в этом файле?
- Список индексов, которые необходимо сохранить. Все индексы, которых нет в этом файле, будут удалены.
- Список индексов, подлежащих удалению.
Если ваш ответ будет равен 1 (список индексов, которые будут сохранены) — как я могу сгенерировать yaml
файл из моих существующих индексов? Это необходимо, потому что у меня нет этих определений индексов локально. Нужно что-то вроде:
gcloud datastore indexes list --export=yaml
Ответ №1:
Согласно общедоступной документации, команда удалит все существующие индексы, которые не включены в файл index.yaml. Поэтому в файл index.yaml обязательно включайте только те индексы, которые вы активно используете.
Как мне известно, похоже, что нет никаких конкретных средств для создания нового файла index.yaml, однако, кажется, что лучшим вариантом действий было бы попытаться экспортировать выходные данные используемой команды:
gcloud datastore indexes list > index.yaml
(Измените команду в соответствии с потребностями вашей командной строки)
И перейдите к его соответствующему форматированию, используя приведенный пример в качестве руководства.
Комментарии:
1. Я беспокоился, что это будет ответ. Я чувствую, что это сложный путь для удаления индекса.. Спасибо!
2. Не беспокойтесь, я рад, что смог помочь!
Ответ №2:
Вы можете создать правильно отформатированный файл index.yaml с помощью следующего скрипта. https://github.com/ArunMuthuram/gcpDatastoreIndexYamlGenerator Как только index.yaml будет сгенерирован, просмотрите и удалите составные индексы, которые больше не требуются. Используйте измененный index.yaml в команде очистки.