繁体   English   中英

Bigquery 到 PubSub

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM