将数据流从Google Cloud Storage流式传输到Big Query

时间:2018-06-02 19:54:14

标签: google-cloud-platform google-bigquery google-cloud-storage google-cloud-dataflow

我正在尝试使用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。

请建议。

1 个答案:

答案 0 :(得分:2)

如何创建输入集合?您需要为流式传输管道保留一个无限输入,否则它只是临时的(但会使用流式插入)。 您可以通过阅读包含所有更改的订阅来实现此目的,有关详细信息,请参阅https://cloud.google.com/storage/docs/pubsub-notifications