com.google.datastore.v1 和 com.google.cloud.datastore 之间的区别/缺少禁用索引的选项
Difference between com.google.datastore.v1 and com.google.cloud.datastore / Missing option to disable index
我目前正在构建一个 Google 云数据流作业,它解析 XML 文件并使用 Google 数据存储保存条目,但不同的 Java 库似乎会很混乱。
首先我找到了 com.google.datastore.v1,它与 Dataflow 配合得很好,但后来我意识到缺少将字段排除在索引之外的选项。 (我的大部分字段不需要索引,也永远不会在查询中使用。)
然后我发现 com.google.cloud.datastore,它有一个名为 "setExcludeFromIndexes" 的方法来实现我正在寻找的东西,但 Dataflow 无法保存使用此库生成的实体。
其中一个库是较新的还是有什么区别?
有没有办法使用 v1 库禁用单个字段的索引?
这两个库目前彼此不兼容(您不能在两种数据表示之间进行转换),但您可以从 com.google.datastore.v1
:
中的索引中排除值
Value value = Value.newBuilder()
.setStringValue("foo")
.setExcludeFromIndexes(true)
.build();
v1-library 是一个薄层,提供生成的原型源和一些辅助函数。
google-cloud-datastore 是一个使用 v1 库的包装器,旨在更加用户友好。
为了允许不同的 Datastore 客户端库与 Dataflow 交互,我们使用 v1 库,因为它是最小公分母。
理想情况下,您会使用 google-cloud-datastore 库,但根据版本的不同,v1-library 和 google-cloud-datastore 可能具有冲突的依赖关系(protobuf 3.0.0 v 3.0.0-beta-1 特别是)在这种情况下,您要么必须选择兼容的版本,要么直接使用 v1-library。
v1-library 辅助函数可能不足以从索引中排除字段,但您始终可以通过直接处理原型消息来创建自己的辅助函数。在这种特殊情况下,您将创建自己的值并明确设置 exclude_from_indexes。
我遇到了同样的问题。我已将 pom.xml 中的 Datastore 版本更新到最新版本,问题已解决。
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-datastore</artifactId>
<version>1.106.0</version>
</dependency>
我目前正在构建一个 Google 云数据流作业,它解析 XML 文件并使用 Google 数据存储保存条目,但不同的 Java 库似乎会很混乱。
首先我找到了 com.google.datastore.v1,它与 Dataflow 配合得很好,但后来我意识到缺少将字段排除在索引之外的选项。 (我的大部分字段不需要索引,也永远不会在查询中使用。)
然后我发现 com.google.cloud.datastore,它有一个名为 "setExcludeFromIndexes" 的方法来实现我正在寻找的东西,但 Dataflow 无法保存使用此库生成的实体。
其中一个库是较新的还是有什么区别? 有没有办法使用 v1 库禁用单个字段的索引?
这两个库目前彼此不兼容(您不能在两种数据表示之间进行转换),但您可以从 com.google.datastore.v1
:
Value value = Value.newBuilder()
.setStringValue("foo")
.setExcludeFromIndexes(true)
.build();
v1-library 是一个薄层,提供生成的原型源和一些辅助函数。
google-cloud-datastore 是一个使用 v1 库的包装器,旨在更加用户友好。
为了允许不同的 Datastore 客户端库与 Dataflow 交互,我们使用 v1 库,因为它是最小公分母。
理想情况下,您会使用 google-cloud-datastore 库,但根据版本的不同,v1-library 和 google-cloud-datastore 可能具有冲突的依赖关系(protobuf 3.0.0 v 3.0.0-beta-1 特别是)在这种情况下,您要么必须选择兼容的版本,要么直接使用 v1-library。
v1-library 辅助函数可能不足以从索引中排除字段,但您始终可以通过直接处理原型消息来创建自己的辅助函数。在这种特殊情况下,您将创建自己的值并明确设置 exclude_from_indexes。
我遇到了同样的问题。我已将 pom.xml 中的 Datastore 版本更新到最新版本,问题已解决。
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-datastore</artifactId>
<version>1.106.0</version>
</dependency>