Google cloud platform 跨多个名称空间的数据存储索引是否相同?

Google cloud platform 跨多个名称空间的数据存储索引是否相同?,google-cloud-platform,google-cloud-datastore,Google Cloud Platform,Google Cloud Datastore,我正在开发一个多租户SaaS系统,并将所有数据存储在数据存储中。我为每个客户机都有一个单独的名称空间,但在所有名称空间中都有相同的“种类” 这是我的问题:如果我为一种实体类型构建自定义索引,该索引是否会跨所有名称空间提供服务?或者我应该在某个地方指定名称空间吗 这是我的自定义索引之一: - kind: loginTrack ancestor: no properties: - name: logDate - name: username - name: timeStamp

我正在开发一个多租户SaaS系统,并将所有数据存储在数据存储中。我为每个客户机都有一个单独的名称空间,但在所有名称空间中都有相同的“种类”

这是我的问题:如果我为一种实体类型构建自定义索引,该索引是否会跨所有名称空间提供服务?或者我应该在某个地方指定名称空间吗

这是我的自定义索引之一:

- kind: loginTrack  
  ancestor: no
  properties:
  - name: logDate
  - name: username
  - name: timeStamp
我将其部署为数据存储中的自定义索引,但我不确定它是否适用于所有名称空间


数据存储如何处理开发人员提供的索引?

正如您所观察到的,索引本身没有空间容纳名称空间信息,它以相同的方式在应用程序域内的所有名称空间中运行

不同的是映射到每个名称空间的数据存储分区。来自(我的):

云数据存储使用分区来存储每个租户的数据。这个 项目ID和命名空间ID的组合构成分区ID, 它标识每个分区。实体属于单个实体 分区和查询的作用域为单个分区

但请注意,对某个租户的数据进行操作是应用程序的责任:与某个租户相关的所有操作必须在该租户的分区/命名空间上下文中执行(即命名空间必须指定为与数据存储相关调用的参数)


对于在租户域中使用(共享)索引的特定情况,在生成查询时必须指定租户的命名空间。否则,您将无法从该租户的分区获得结果。

因此,如果我运行此查询:
query query=query.newGqlQueryBuilder(query.ResultType.ENTITY,gql).setNamespace(organizationID).setBinding(“program”,programId.build()
我的索引将应用于所有名称空间吗?不,仅适用于与
OrganizationID
匹配的名称空间。但我不会在索引文件中的任何位置声明名称空间。organizationID来自用户的会话对象。因此,如果我基于会话的组织创建一个索引,该索引是否将应用于所有名称空间?索引定义和索引本身不是一回事。定义(即您配置的内容)相同/共享。但是索引本身是(我怀疑,我实际上不知道内部实现)每个名称空间分区。