我正在尝试使用DataFlow(Java)将数据从Cloud Storage插入Big Query。我可以批量上传数据;但是,我想设置一个流式上传。因此,当新对象添加到我的存储桶中时,它们将被推送到BigQuery。
我已将PipelineOptions设置为Streaming,并在GCP控制台UI中显示数据流管道属于流式传输。我在存储桶中的初始文件/对象集被推送到BigQuery。
但是当我向我的存储桶添加新对象时,这些不会被推送到BigQuery。这是为什么?如何使用蒸汽数据流管道将添加到我的云存储的对象推送到BigQuery?
//Specify PipelineOptions
DataflowPipelineOptions options = PipelineOptionsFactory.as(DataflowPipelineOptions.class);
options.setProject(<project-name>);
options.setStagingLocation(<bucket/staging folder>);
options.setStreaming(true);
options.setRunner(DataflowRunner.class);
我的解释是,因为这是一个流媒体管道,当我向Cloud Storage添加对象时,它们将被推送到BigQuery。
请建议。
答案 0 :(得分:2)
如何创建输入集合?您需要为流式传输管道保留一个无限输入,否则它只是临时的(但会使用流式插入)。 您可以通过阅读包含所有更改的订阅来实现此目的,有关详细信息,请参阅https://cloud.google.com/storage/docs/pubsub-notifications。