com.google.datastore.v1与com.google.cloud.datastore/Missing选项之间的区别,以禁用索引

Tob*_* K. 5 java google-cloud-datastore google-cloud-dataflow

我目前正在构建一个Google Cloud Dataflow作业,该作业解析XML文件并使用Google Datastore保存条目,不同的Java库似乎非常令人困惑.

首先我找到了com.google.datastore.v1,它与Dataflow配合得很好,但后来我意识到缺少排除字段索引的选项.(我的大多数字段都不需要索引,永远不会在查询中使用.)

然后我找到了com.google.cloud.datastore,它有一个名为"setExcludeFromIndexes"的方法来实现我正在寻找的东西,但Dataflow无法保存使用此库生成的实体.

其中一个图书馆是新图书馆还是有什么区别?有没有办法使用v1库禁用单个字段的索引?

Vik*_*lli 6

v1-library是一个薄层,提供生成的原始源和一些辅助函数.
google-cloud-datastore是一个使用v1-library的包装器,旨在提高用户友好性.
为了允许不同的数据存储客户端库与Dataflow接口,我们使用v1库,因为它是最不常见的分母.

理想情况下,您将使用google-cloud-datastore库,但根据版本,v1-library和google-cloud-datastore可能存在冲突的依赖关系(特别是protobuf 3.0.0 v 3.0.0-beta-1),在这种情况下您必须选择兼容版本或直接使用v1库.

v1-library辅助函数可能不足以从索引中排除字段,但您可以通过直接处理proto消息来创建自己的帮助程序.在这种特殊情况下,您将创建自己的值并明确设置exclude_from_indexes.