Я пытаюсь использовать что-то вроде конвейера потока данных apache, подробно описанного в конце этой статьи: https://cloud.google.com/blog/products/gcp/how-to-process-weather-satellite-data-in-real-time-in-bigquery. Набор данных go-16, из которого я пытаюсь загрузить: https://console.cloud.google.com/storage/browser/gcp-public-data-goes-16?authuser=3&project=fire-neural-network-285603&prefix=. Таким образом, я мог создать pub / sub topi c и передавать текстовые данные в мои pub / sub topi c, а затем использовать луч apache для загрузки из pub / sub topi c, но это похоже на обратное меня. Есть ли способ использовать apache -beam для загрузки непосредственно из облачного хранилища при каждом его обновлении без необходимости иметь дело с pubsub? Это кажется обратным, потому что для создания pub / sub мне нужно создать новое задание потока данных, которое будет выполняться почти вечно, поскольку мне всегда нужны новые данные (так что в конечном итоге это дорого стоит). Примерно так:
p = beam.Pipeline(runner, options=opts)
(p
| 'events' >> beam.io.ReadStringsFromGoogleCloud(bucketname) <---- looking for this
| 'filter' >> beam.FlatMap(lambda message: g2j.only_infrared(message))
| 'to_jpg' >> beam.Map(lambda objectid:
g2j.goes_to_jpeg(
objectid, lat, lon, bucket,
'goes/{}_{}/{}'.format( lat, lon, os.path.basename(objectid).replace('.nc','.jpg') )
))
)
Любая помощь приветствуется, если я ошибаюсь, дайте мне знать!