Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过流化Pubsub数据丰富固定BigQuery数据的数据流模板/模式_Java_Google Bigquery_Google Cloud Dataflow_Apache Beam_Google Cloud Pubsub - Fatal编程技术网

Java 通过流化Pubsub数据丰富固定BigQuery数据的数据流模板/模式

Java 通过流化Pubsub数据丰富固定BigQuery数据的数据流模板/模式,java,google-bigquery,google-cloud-dataflow,apache-beam,google-cloud-pubsub,Java,Google Bigquery,Google Cloud Dataflow,Apache Beam,Google Cloud Pubsub,我有一个BigQuery维度表(变化不大)和一个来自PubSub的流式JSON数据。我要做的是查询这个维度表,并通过连接来自PubSub的传入数据来丰富数据,然后将这些连接的数据流写入另一个BigQuery表 由于我对Dataflow/Beam还不熟悉,而且这个概念对我来说还不是很清楚(或者至少我在开始编写代码时有困难),我有一些问题: 我可以使用什么样的模板或模式来实现这一点?我应该先进行BigQuery的p转换(然后是PubSub的p转换)还是先进行PubSub的p转换 我怎样才能加入?类似

我有一个BigQuery维度表(变化不大)和一个来自PubSub的流式JSON数据。我要做的是查询这个维度表,并通过连接来自PubSub的传入数据来丰富数据,然后将这些连接的数据流写入另一个BigQuery表

由于我对Dataflow/Beam还不熟悉,而且这个概念对我来说还不是很清楚(或者至少我在开始编写代码时有困难),我有一些问题:

  • 我可以使用什么样的模板或模式来实现这一点?我应该先进行BigQuery的p转换(然后是PubSub的p转换)还是先进行PubSub的p转换
  • 我怎样才能加入?类似于(…)的
    ParDo.和sideinputs(PCollectionView映射)
  • PubSub的最佳窗口设置是什么?BigQuery的PTransform部分的窗口设置与Pubsub部分的PTransform部分不同,这是否正确

  • 您需要加入两个PCollection

  • 包含发布/订阅数据的PCollection。可以使用创建
  • 包含来自BigQuery的数据的PCollection。如果数据是静态的,则可以使用转换。但是,如果数据可以更改,Beam中当前可用的BigQuery转换可能无法工作。一个选项可能是使用transform
    PeriodicImpulse
    和您自己的
    ParDo
    创建周期性变化的输入。请参阅以获取示例(请注意最近添加了
    PeriodicImpulse
    transform)
  • 您可以在
    ParDo
    中组合数据,其中
    PCollection
    (1)是主输入,
    PCollection
    (2)是侧输入(类似于上面的示例)

    最后,您可以使用转换将输出流式传输到BigQuery