2017-06-03 4 views
0

Ich habe eine PCollection in GCP Dataflow/Apache Beam. Anstatt es einzeln zu verarbeiten, muss ich "by N" kombinieren. So etwas wie grouped(N). Im Falle einer beschränkten Verarbeitung wird es mit 10 Elementen im Stapel und dem letzten Stapel mit dem verbleibenden Rest gruppiert. Ist das in Apache Beam möglich?Batch PCollection in Beam/Datenfluss

Antwort

3

bearbeiten, wie folgt aussieht: Google Dataflow "elementCountExact" aggregation

sollten Sie in der Lage sein, etwas ähnliches zu tun, indem sie Elemente zum globalen Fenster und zum Verwenden AfterPane.elementCountAtLeast(N). Sie müssen immer noch erklären, was passiert, wenn nicht genügend Elemente vorhanden sind, um den Auslöser auszulösen. Sie dies nutzen könnten:

Repeatedly.forever(AfterFirst.of(
    AfterPane.elementCountAtLeast(N), 
    AfterProcessingTime.pastFirstElementInPane().plusDelayOf(Duration.standardMinutes(X)))) 

Aber Sie sollten sich fragen, warum brauchen Sie diese Heuristik in erster Linie, gibt es wahrscheinlich mehr idomatice Weg, um Ihr Problem zu lösen. Lesen Sie über Data-Driven Triggers in Beam’s programming guide