首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为Dataflow v2.1编写自定义无界接收器

为Dataflow v2.1编写自定义无界接收器
EN

Stack Overflow用户
提问于 2017-11-20 10:45:35
回答 1查看 517关注 0票数 1

我正在使用mvn依赖项谷歌-云-数据流-java-sdk-全版本2.1.0,并试图为我的管道添加一个自定义Sink。

在这个过程中,我正在检索普贝消息,并最终将这些消息转换为字符串的PCollection。

这是我设置的管道的简化版本:

代码语言:javascript
复制
Pipeline pipeline = Pipeline.create(options);
pipeline.apply(PubsubIO.readMessages())
     .apply(Window.into(FixedWindows.of(Duration.standardSeconds(1))))

//transformations

.apply(//Write to custom sink)

我需要定制Sink的原因是,团队中的其他人已经编写了代码,将这些数据写入BigQuery,并为此提供了REST。因此,我的Sink将使用相关数据调用这个REST。我并不热衷于使用BigQueryIO,因为这将涉及复制已经编写的代码的部分。

问题是,我在Apache网站上找不到任何关于使用Java编写自定义Sinks的文档,所以如果有人能在正确的方向上给我点头,我将非常感激。

我还考虑过只使用ParDo将数据发送到REST,但从技术上讲,我将不再使用Sink,也不会采用“数据流方式”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-20 19:43:59

对于无界汇,在Beam中没有特定于汇的API。所有IO转换本质上都实现了一个ParDo。有几种技术可以提供特定的保证(例如,使用GroupByKey来提供数据流中的检查点屏障),这取决于您与外部系统的交互(在本例中是REST)。看起来,在您的情况下,编写一个ParDo是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47390174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档