Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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
Google cloud platform 从谷歌云存储到大查询的流式数据流_Google Cloud Platform_Google Bigquery_Google Cloud Storage_Google Cloud Dataflow - Fatal编程技术网

Google cloud platform 从谷歌云存储到大查询的流式数据流

Google cloud platform 从谷歌云存储到大查询的流式数据流,google-cloud-platform,google-bigquery,google-cloud-storage,google-cloud-dataflow,Google Cloud Platform,Google Bigquery,Google Cloud Storage,Google Cloud Dataflow,我正在尝试使用DataFlow(Java)将数据从云存储插入到大查询中。我可以批量上传数据;但是,我想改为设置流式上载。因此,当新对象添加到我的bucket中时,它们将被推送到BigQuery 我已经将PipelineOptions设置为流式,并且它在GCP控制台UI中显示数据流管道为流式类型。我在bucket中的初始文件/对象集被推送到BigQuery 但当我向bucket添加新对象时,这些对象不会被推送到BigQuery。为什么呢?如何使用数据流管道将添加到云存储的对象推送到BigQuery

我正在尝试使用DataFlow(Java)将数据从云存储插入到大查询中。我可以批量上传数据;但是,我想改为设置流式上载。因此,当新对象添加到我的bucket中时,它们将被推送到BigQuery

我已经将PipelineOptions设置为流式,并且它在GCP控制台UI中显示数据流管道为流式类型。我在bucket中的初始文件/对象集被推送到BigQuery

但当我向bucket添加新对象时,这些对象不会被推送到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);
//指定管道选项
DataflowPipelineOptions=PipelineOptions工厂.as(DataflowPipelineOptions.class);
options.setProject();
options.setStagingLocation();
选项。设置流(true);
options.setRunner(DataflowRunner.class);
我的解释是,因为这是一个流式管道,当我将对象添加到云存储时,它们将被推送到BigQuery


请提出建议。

如何创建输入集合?您需要有一个无限的输入,流式管道才能继续,否则它将只是临时的(但将使用流式插入)。
您可以通过阅读包含所有更改的订阅来实现这一点,有关详细信息,请参阅。

感谢您的回复。输入将由我或其他人定期上传文件。我在想,既然我已经创建了一个流式管道,它只需要从云存储中获取任何输入,然后通过流式数据管道将其推送到Pub/sub。从那里,另一条数据管道将把它传送到BigQuery。但我明白你的观点——因为我定期手动将文件上传到云存储——它代表了一种“有界”输入。作为一种替代架构,当云存储桶发生任何更改时,我可以使用云服务器功能创建数据流管道吗?这样,云服务器功能-数据流管道将把数据传输到发布/订阅。从那里,另一个流式数据流管道将把数据传输到大查询?例如:请参见步骤#7。通知配置将对象元数据发送到PubSub。如果我想将实际对象数据推送到PubSub,该怎么办?我的用例是,我需要获取对象/文件,读取每一行,解析它,进行一些转换,然后将其推送到大查询中。@AndyCooper我在Apache Beam 2.2中注意到,您可以查看与新文件相关的: