有没有办法使用内置的ApacheBeam Redis I/O转换执行Redis GET命令?

有没有办法使用内置的ApacheBeam Redis I/O转换执行Redis GET命令?,redis,google-cloud-dataflow,apache-beam,apache-beam-io,Redis,Google Cloud Dataflow,Apache Beam,Apache Beam Io,我对谷歌云数据流的使用案例是在管道中使用Redis作为缓存,因为要发生的转换取决于一些缓存数据。这意味着执行Redis GET命令。官方内置Redis I/O转换的文档中提到支持几种方法: read-“提供一个源,该源返回一个包含键/值对的有界PCollection,作为KV” readAll—“可用于使用输入PCollection元素作为键模式(作为字符串)请求Redis服务器” 看起来readAll与GET命令不对应,因为input PCollection将用于过滤扫描整个Redis源的结果

我对谷歌云数据流的使用案例是在管道中使用Redis作为缓存,因为要发生的转换取决于一些缓存数据。这意味着执行Redis GET命令。官方内置Redis I/O转换的文档中提到支持几种方法:

read-“提供一个源,该源返回一个包含键/值对的有界PCollection,作为KV”

readAll—“可用于使用输入PCollection元素作为键模式(作为字符串)请求Redis服务器”

看起来readAll与GET命令不对应,因为input PCollection将用于过滤扫描整个Redis源的结果,所以这不是我想要的


我想知道,在查看支持我的用例的内置I/O转换时,我是否遗漏了一些东西,或者是否有开源第三方I/O转换之类的替代方案支持它。或者,这与Apache Beam根本不兼容吗?

您可以使用。它将为您提供一个可序列化的连接,您可以在转换中使用它。

这个答案很好。GCP的博客文章讨论了在转换过程中使用外部服务丰富数据。如果客户机是线程安全的,您应该在转换中静态声明它。否则,您将在
startBundle
lifecycle方法中实例化它。这篇博文警告了一些问题,如外部服务过载,如果您这样做,会导致管道背压,而按键分组和批处理对外部服务的请求等技术可以帮助解决这一问题。