[英]Bigquery to PubSub
我需要将消息从 bigquery 推送到 pubsbub
bigquery 表包含具有 json 值的列作为字符串
阅读该表并将其发布到 json
p.apply("ReadSourceBQ", BigQueryIO.readTableRows().fromQuery("SELECT requestPayload FROM eventreplay").usingStandardSql().withTemplateCompatibility()).apply("JSON 转换", AsJsons.of(TableRow.class))。 apply("WriteToPubSub", PubsubIO.writeStrings().to("topicname"));
它没有将味精发布到主题..也没有错误。 如何将该 tableRow 转换为 json
听起来提供的示例应该可以工作。 请确保您正在运行p.run()
,因为实际运行管道很重要。
这是一个对我有用的完整示例(使用公共 BigQuery 数据集):
public static void main(String[] args) {
PipelineOptions pipelineOptions = PipelineOptionsFactory.fromArgs(args).create();
Pipeline pipeline = Pipeline.create(pipelineOptions);
pipeline
.apply(
"ReadSourceBQ",
BigQueryIO.readTableRows()
.fromQuery("SELECT gameId FROM `bigquery-public-data`.`baseball`.`games_post_wide`")
.usingStandardSql()
.withTemplateCompatibility())
.apply("JSON Transform", AsJsons.of(TableRow.class))
.apply(
"WriteToPubSub",
PubsubIO.writeStrings().to("projects/{project_id}/topics/{topic_name}"));
pipeline.run();
}
另外,请注意AsJsons
来自beam-sdks-java-extensions-json-jackson
,因此您可能必须使用以下命令导入它:
Maven
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-extensions-json-jackson</artifactId>
<version>{beam_version}</version>
</dependency>
Gradle
implementation group: 'org.apache.beam', name: 'beam-sdks-java-extensions-json-jackson', version: '{beam_version}'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.