Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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 数据流在BigQuery写入完成后发送PubSub消息_Java_Google Bigquery_Google Cloud Dataflow_Apache Beam_Google Cloud Pubsub - Fatal编程技术网

Java 数据流在BigQuery写入完成后发送PubSub消息

Java 数据流在BigQuery写入完成后发送PubSub消息,java,google-bigquery,google-cloud-dataflow,apache-beam,google-cloud-pubsub,Java,Google Bigquery,Google Cloud Dataflow,Apache Beam,Google Cloud Pubsub,我有一个数据流作业,它将数据转换并写出到BigQuery(批处理作业)。写操作完成后,我想向PubSub发送一条消息,这将触发BigQuery中数据的进一步处理。我看到一些老问题/答案暗示这是可能的,但仅限于流媒体作业: 我想知道现在批处理写入作业是否支持这种方式?不幸的是,我无法使用apache airflow来协调这一切,因此发送PubSub消息似乎是最简单的方法。Beam的概念意味着不可能做你想做的事情。实际上,您要向BigQuery编写一个PCollection。根据定义,a。

我有一个数据流作业,它将数据转换并写出到BigQuery(批处理作业)。写操作完成后,我想向PubSub发送一条消息,这将触发BigQuery中数据的进一步处理。我看到一些老问题/答案暗示这是可能的,但仅限于流媒体作业:


我想知道现在批处理写入作业是否支持这种方式?不幸的是,我无法使用apache airflow来协调这一切,因此发送PubSub消息似乎是最简单的方法。

Beam的概念意味着不可能做你想做的事情。实际上,您要向BigQuery编写一个PCollection。根据定义,a。在一个无限的集合之后,你怎么能触发一些东西呢?你什么时候知道你已经到了终点

所以,你有不同的方法来实现这一点。在代码中,可以等待管道完成,然后发布PubSub消息

就我个人而言,我更喜欢以日志为基础;当数据流作业完成时,我会得到作业结束的日志,然后返回。这与管道代码和下一步无关


你也可以看看。它还没有真正成熟,但对于像您这样的简单工作流来说非常有前途。

感谢@guillaume的回复。在这种情况下,集合是有界的,因此写操作有一个确定的端点。在我看到的示例中,如下面的链接,似乎可以在写入操作完成时发送pubsub通知,但我想我读到了仅支持流式插入的内容,我想知道这是否已经改变。wrt等待管道完成,然后发布PubSub消息,我认为这对于模板化数据流作业是不可能的。我以为这项工作会在管道完成后自动完成。这个假设是不正确的吗?正确的,对于模板,只捕获管道,而不是随后编写的内容。