参考项目:Watching for new files matching a filepattern in Apache Beam
您可以将它用于简单的用例吗?我的用例是我有用户将数据上传到云存储 - >管道(处理csv到json) - >大查询。我知道云存储是有界的集合,所以它代表批量数据流。
我想要做的是保持管道在流模式下运行,一旦文件上传到云存储,它将通过管道进行处理。这可能与watchfornewfiles有关吗?
我编写了如下代码:
p.apply(TextIO.read().from("<bucketname>")
.watchForNewFiles(
// Check for new files every 30 seconds
Duration.standardSeconds(30),
// Never stop checking for new files
Watch.Growth.<String>never()));
没有任何内容被转发到Big Query,但是管道显示它正在流式传输。
答案 0 :(得分:0)
您可以在此处使用Google Cloud Storage触发器: https://cloud.google.com/functions/docs/calling/storage#functions-calling-storage-python
这些触发器使用类似于Cloud Pub / Sub的Cloud Functions,如果创建,删除/归档/或元数据更改,它们就会在对象上触发。
这些事件是使用Cloud Storage的发布/订阅通知发送的,但请注意,由于存在一些通知限制,因此请不要在同一存储桶中设置许多功能。
此外,在文档的末尾有一个指向示例实现的链接。