Есть ли способ обновить файл indexes.yaml хранилища данных Google Cloud с помощью С#

Я работаю над проектом, который использует хранилище данных для хранения данных о внутриигровых событиях для машинного обучения. Я надеюсь, что смогу обновить файл indexes.yaml в производственном режиме с помощью вызова API или других методов вместо ручного запуска команд gcloud SDK. Есть ли способ достичь этой цели?

[Архитектура]

  • Мы используем язык C# .Net core 2.2.
  • Мы используем «ИДЕНТИФИКАТОРЫ ИГРЫ» в качестве видов в хранилище данных. Каждый раз, когда у нас выходит новая игра в сети, будет создаваться новый вид (с помощью кода C#).
  • Каждый Вид сохраняет схожие свойства, но не все одинаковые.
  • Все виды используют общий набор свойств в качестве составного индекса (скажем: UserId, TimeStamp и EventType).

[Мой текущий подход]

  • Я пытаюсь применить функцию # AUTOGENERATED в своем хранилище данных, но она работает только в моем хранилище данных эмулятора.
  • Пока я могу добавить новый составной индекс в файл indexes.yaml моего эмулятора.
  • Но индексы не обновляются в производственном хранилище данных, мне нужно добавить индексы в эмулятор, а затем обновить его до производства с помощью

    gcloud datastore indexes create 
    

    команда (хотя это имеет смысл, поскольку в официальных документах упоминается только этот подход)

[Что мне нужно]

Поскольку в ближайшие месяцы у нас может появиться много новых игр, будет сложно добавлять и обновлять индексы для этих новых игр одну за другой. Есть ли способ автоматически обновить indexes.yaml в производственном хранилище данных?

Благодарю за предоставление любых предложений или справочных ресурсов!


person Eric Lin    schedule 20.08.2019    source источник


Ответы (1)


Ваш текущий подход работает только в эмуляторе DataStore. Это предполагаемое поведение. Таким образом, вы можете определить свои индексы, а затем развернуть их в рабочей базе данных.

Cloud Firestore в режимах Datastore и Firestore автоматически создает только одиночные индексы и не составные индексы.

Однако с помощью Firestore (хранилище данных в режиме Firestore) можно определить, что индексы, которых вам не хватает, используя сообщение об ошибке.

В качестве обходного пути (также для режима Firestore) вы можете:

  1. Создайте составные индексы с помощью вызова API или
  2. Создайте файл составные индексы с использованием клиентских библиотек
person Pawel Czuczwara    schedule 20.08.2019
comment
Если это было полезно, пожалуйста, примите мой ответ для лучшей видимости других пользователей. - person Pawel Czuczwara; 23.08.2019