【问题标题】:Is there a way to update indexes.yaml file of Google Cloud Datastore using C#有没有办法使用 C# 更新 Google Cloud Datastore 的 index.yaml 文件
【发布时间】:2019-08-20 08:03:04
【问题描述】:

我正在开展一个项目,该项目使用 Datastore 来保存游戏内事件的数据以用于机器学习。我希望我能够通过 API 调用或其他一些方法在生产模式下更新 index.yaml 文件,而不是手动运行 gcloud SDK 命令。有没有办法达到这个目的?

[架构]

  • 我们使用的语言是 C# .Net core 2.2
  • 我们使用“游戏 ID”作为数据存储区中的种类。每次我们有新游戏上线时,都会创建一个新的 Kind(通过 C# 代码)。
  • 每种类型都具有相似的属性,但并不完全相同。
  • 所有种类都使用一组通用属性作为复合索引(比如:UserId、TimeStamp 和 EventType)

[我目前的方法]

  • 我正在尝试将 #AUTOGENERATED 函数应用到我的数据存储中,但它仅适用于我的模拟器数据存储
  • 到目前为止,我能够将新的复合索引附加到我的模拟器的 index.yaml 文件中
  • 但是生产数据存储上的索引没有更新,我必须在模拟器上附加索引,然后通过

    将其更新到生产
    gcloud datastore indexes create 
    

    command(虽然有道理,官方文档只提到了这种方法)

[我需要什么]

因为未来几个月我们可能会有很多新游戏上线,所以很难为这些新游戏一一添加和更新索引。有什么方法可以自动更新生产数据存储上的 index.yaml 吗?

感谢您提供任何建议或参考资源!

【问题讨论】:

    标签: c# google-cloud-datastore


    【解决方案1】:

    您当前的方法仅适用于 DataStore 模拟器。这是预期的行为。因此,您可以识别索引,然后将它们部署到生产数据库。

    Cloud Firestore in Datastore and Firestore native modes 仅自动创建单个索引,not composite indexes.

    但是,使用 Firestore(Firestore 模式下的 Datastore)可以identify what indexes you are lacking using error message.

    作为一种解决方法(也适用于 Firestore 模式),您可以:

    1. 创建composite indexes using API call,或
    2. 创建composite indexes using client libraries

    【讨论】:

    • 如果有帮助,请接受我的回答,以便更好地了解其他用户。
    猜你喜欢
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2021-04-05
    • 2020-02-20
    • 1970-01-01
    • 2015-09-04
    • 2018-11-18
    • 2021-03-20
    相关资源
    最近更新 更多