com.google.datastore.v1 和 com.google.cloud.datastore 之间的差异/缺少禁用索引的选项

2024-01-05

我目前正在构建一个 Google Cloud Dataflow 作业,它解析 XML 文件并使用 Google Datastore 保存条目,但不同的 Java 库似乎非常混乱。

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

然后我找到了 com.google.cloud.datastore,它有一个名为“setExcludeFromIndexes”的方法来实现我正在寻找的功能,但是 Dataflow 无法保存使用该库生成的实体。

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


v1-库 https://github.com/GoogleCloudPlatform/google-cloud-datastore是一个薄层,提供生成的原型源和一些辅助函数。
谷歌云数据存储 https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/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-library。

v1-library 辅助函数可能不足以从索引中排除字段,但您始终可以通过直接处理原始消息来创建自己的辅助函数。在这种特殊情况下,您将创建自己的值和设置从索引中排除 https://github.com/googleapis/googleapis/blob/master/google/datastore/v1/entity.proto#L179明确地。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

com.google.datastore.v1 和 com.google.cloud.datastore 之间的差异/缺少禁用索引的选项 的相关文章

随机推荐