Я изучаю возможности реализации алгоритма анализа данных с помощью Google Cloud Dataflow. Имейте в виду, у меня еще нет опыта работы с потоками данных. Я просто изучаю, может ли он удовлетворить мои потребности.
Часть моего алгоритма содержит несколько условных итераций, то есть продолжается до тех пор, пока не будет выполнено какое-либо условие:
PCollection data = ...
while(needsMoreWork(data)) {
data = doAStep(data)
}
Я просмотрел документацию и, насколько я могу судить, могу выполнять «итерации» только в том случае, если я знаю точное количество итераций до запуска конвейера. В этом случае мой код построения конвейера может просто создать последовательный конвейер с фиксированным числом шагов.
Единственное «решение», которое я могу придумать, - это запускать каждую итерацию в отдельных конвейерах, сохранять промежуточные данные в некоторой базе данных, а затем решать в моей конструкции конвейера, запускать ли новый конвейер для следующей итерации. Это кажется крайне неэффективным решением!
Есть ли какие-нибудь хорошие способы выполнить такие дополнительные итерации в потоке данных в облаке Google?
Спасибо!