当前位置: 首页 > 知识库问答 >
问题:

如何使用Google Datastore CompositeFilter和DataFlow?

朱起运
2023-03-14
Pipeline p = ...
Filter filter = Filter.newBuilder()
        .setPropertyFilter(PropertyFilter.newBuilder()
                .setProperty(PropertyReference.newBuilder()
                        .setName("propertyA"))
                .setOp(PropertyFilter.Operator.EQUAL)
                .setValue(Value.newBuilder().setStringValue("valueA").build())
                .build())
        .build();

Query query = Query.newBuilder()
    .addKind(KindExpression.newBuilder().setName("myKind").build())
                .setFilter(filter)
                .build();
p.apply("read", DatastoreIO.v1().read().withProjectId("myProjectId")
                .withNamespace("myNamespace").withQuery(query)).apply(.....

经过一些研究,我发现了一个CompositeFilter,它应该能够组合多个过滤器。我可以构建一个复合筛选器,但是当我想在查询中将其设置为筛选器时,IDE会抱怨类型不匹配,而且似乎没有其他方法来应用筛选器。

通过使用GQL,我成功地使用了一个带有多个过滤器的查询,并且可以在日志中看到它被转换为CompositeFilter。我在这里不是要抱怨GQL的使用比手工构建查询/过滤器要好得多,而是想问一下在datastoreio.v1().read(....)上下文中如何使用库的复合过滤器或者如果不可能的话。

我正在使用com.google.cloud.dataflow/google-cloud-dataflow-java-sdk-all/2.2.0

谢谢你的帮助。

共有1个答案

赫连法
2023-03-14

根据文件,你可以。您可以使用CompositeFilterNewBuilder方法,并创建一个过滤器,如下所示:

过滤器composeFilter=filter.newbuilder().setCompositeFilter(compositeFilter.newBuilder().addFilter1).addFilter2).build().build();

这里的Filter1和Filter2是与您所创建的过滤器类似的过滤器。我的IDE允许我这样做(我使用的是IntelliJ IDEA,最后一个版本)。

 类似资料:
  • 似乎有支持类-在包中。然而,我一直无法找到文档、示例、测试用例,以便在一组图表中使用这种排列/布局。 指针赞赏。

  • 问题内容: 我正在使用,但它会返回如下所示的意外结果: 为什么我得到这些结果? 问题答案: 您是否要使用学位?请记住,并且期望弧度。

  • 问题内容: 大家好, 我想调用 一次而不创建一个反复调用的 循环 ,我应该为此使用递归方法还是应该使用 ? 还请告诉我使用?谢谢 :) 问题答案: 设置一个 定期 计时器。它返回一个句柄,您可以将其传递来阻止它触发: 在浏览器上,保证句柄是一个不等于; 的数字。因此,为“未设置计时器”设置一个方便的标志值。(其他平台可能返回其他值;例如,NodeJS的计时器函数返回一个对象。) 要将功能安排为 仅

  • 在成功运行JUnit4测试后,我试图将JUnit5与Gradle一起使用。 而我唯一的测试包含 我觉得这很奇怪! 我的生成文件是 我的文件夹结构是,使用包, 在我使用的IntelliJ2017.1.3中,模块结构如下所示 因为Gradle现在想要源代码和测试在他们自己的包中。 使用gradle在intellij中从JUnit4升级到JUnit5 链接回到上面的问题,并链接到这个Jetbrains博

  • 然后,为了在中调度作业,我使用了: 此外,为了实际执行,我让它像这样工作: 如上所述,所有这些过去在使用XML-配置时都能正常工作。 现在,使用java-config时,在失败 对于java-configuration,我设置,如下所示: 如何使用java-config在中插入对的引用?

  • 我在一个集群中使用Kerberos部署了NiFi,为了访问UI,我使用了HAProxy。我可以通过单独的节点URL访问NiFi UI,但它不能与loadbalncer URL一起工作,并得到以下错误 请求包含无效的主机标头 我认为可以通过nifi.web.proxy.host和nifi.web.proxy.context.path参数来修复。我尝试了这两个参数,但问题仍然存在。