Hi Lucas, > Not really. It is more about pipeline complexity, logging, debugging, > monitoring which become more complex.
Should I use a different consumer group or should I use the same consumer group ? And also How Autoscaling will decide worker count ? What do you mean by it's not working properly? Actually i should correct my statement. Both jobs are using tuple tags but when I add one more branch after MessageExtractor things are changing. What does the timing information for the transforms tell you on the > Dataflow Job UI? Based on Wall Time on DAG. KafkaIO is the slowest step on my pipeline. Its Walltime shows 28 days. I put all wall time for each step. |--->Filter1 (1 day) --> WriteGCS(1day) KafkaIO(28 days)->MessageExtractor(7 hrs) -> | |--->Filter2 (13 days) --> WriteGCS(2days) Thanks On Thu, Aug 20, 2020 at 10:58 AM Luke Cwik <lc...@google.com> wrote: > Do you mean I can put my simple pipeline multiple times for all topics in > one dataflow job ? > Yes > > Is there any side effect having multiple independent DAG on one DF job ? > Not really. It is more about pipeline complexity, logging, debugging, > monitoring which become more complex. > > And also why the TupleTag model is not working properly? > What do you mean by it's not working properly? > > Why is it using more resources than what it should be? > What does the timing information for the transforms tell you on the > Dataflow Job UI? (Even if MessageExtractor seems simple it isn't free, You > have to now write to two GCS locations instead of one for each work item > that you process so your doing more network calls) > > > On Wed, Aug 19, 2020 at 8:36 PM Talat Uyarer <tuya...@paloaltonetworks.com> > wrote: > >> Filter step is an independent step. We can think it is an etl step or >> something else. MessageExtractor step writes messages on TupleTags based on >> the kafka header. Yes, MessageExtractor is literally a multi-output DoFn >> already. MessageExtractor is processing 48kps but branches are processing >> their logs. Each Filter only consumes its log type. There is no any So >> That's why I assume it should consume the same amount of workers. But it >> consumes more workers. >> >> >> >> |--->Filter1(20kps)-->WriteGCS >> KafkaIO->MessageExtractor(48kps)-> | >> >> |--->Filter2(28kps)-->WriteGCS >> >> Do you mean I can put my simple pipeline multiple times for all topics in >> one dataflow job ? Is there any side effect having multiple independent DAG >> on one DF job ? And also why the TupleTag model is not working properly? >> Why is it using more resources than what it should be? >> >> Thanks >> >> >> >> On Wed, Aug 19, 2020 at 5:16 PM Robert Bradshaw <rober...@google.com> >> wrote: >> >>> Just to clarify, previously you had. >>> >>> KafkaIO(topic1) --20kps--> Filter1 -> WriteGCS >>> KafkaIO(topic2) --28kps--> Filter2 -> WriteGCS >>> >>> And now you have >>> >>> >>> ---48kps--> Filter1 >>> -> WriteGCS >>> / >>> KafkaIO(topic1, topic2) + MessageExtractor >>> \ >>> ---48kps--> Filter2 -> >>> WriteGCS >>> >>> Each filter is now actually consuming (and throwing away) more data than >>> before. >>> >>> Or is MessageExtractor literally a multi-output DoFn already (which is >>> why you're talking about TupleTags). This could possibly be more >>> expensive if reading Kafak with headers is more expensive than reading >>> it without. >>> >>> If topic1 and topic2 are truly independent, I would keep their reads >>> separate. This will simplify your pipeline (and sounds like it'll >>> improve performance). Note that you don't have to have a separate >>> Dataflow job for each read, you can have a single Pipeline and do as >>> many reads as you want and the'll all get executed in the same job. >>> >>> On Wed, Aug 19, 2020 at 4:14 PM Talat Uyarer >>> <tuya...@paloaltonetworks.com> wrote: >>> > >>> > Hi Robert, >>> > >>> > I calculated process speed based on worker count. When I have separate >>> jobs. topic1 job used 5 workers, topic2 job used 7 workers. Based on >>> KafkaIO message count. they had 4kps processing speed per worker. After I >>> combine them in one df job. That DF job started using ~18 workers, not 12 >>> workers. >>> > >>> > How can I understand if they are poorly fused or not ? I can not write >>> Filter because it is a beamsql. I just want to simplified my DAG that's why >>> i did not mentioned >>> > >>> > Thanks >>> > >>> > On Wed, Aug 19, 2020 at 3:54 PM Robert Bradshaw <rober...@google.com> >>> wrote: >>> >> >>> >> Is this 2kps coming out of Filter1 + 2kps coming out of Filter2 (which >>> >> would be 4kps total), or only 2kps coming out of KafkaIO and >>> >> MessageExtractor? >>> >> >>> >> Though it /shouldn't/ matter, due to sibling fusion, there's a chance >>> >> things are getting fused poorly and you could write Filter1 and >>> >> Filter2 instead as a DoFn with multiple outputs (see >>> >> >>> https://urldefense.proofpoint.com/v2/url?u=https-3A__beam.apache.org_documentation_programming-2Dguide_-23additional-2Doutputs&d=DwIFaQ&c=V9IgWpI5PvzTw83UyHGVSoW3Uc1MFWe5J8PTfkrzVSo&r=BkW1L6EF7ergAVYDXCo-3Vwkpy6qjsWAz7_GD7pAR8g&m=Erfg03JLKLNG3lT2ejqq7_fbvfL95-wSxZ5hFKqzyKU&s=JsWPJxBXopYYenfBAp6nkwfB0Q1Dhs1d4Yi41fBY3a8&e= >>> ). >>> >> >>> >> - Robert >>> >> >>> >> On Wed, Aug 19, 2020 at 3:37 PM Talat Uyarer >>> >> <tuya...@paloaltonetworks.com> wrote: >>> >> > >>> >> > Hi, >>> >> > >>> >> > I have a very simple DAG on my dataflow job. >>> (KafkaIO->Filter->WriteGCS). When I submit this Dataflow job per topic it >>> has 4kps per instance processing speed. However I want to consume two >>> different topics in one DF job. I used TupleTag. I created TupleTags per >>> message type. Each topic has different message types and also needs >>> different filters. So my pipeline turned to below DAG. Message Extractor is >>> a very simple step checking header of kafka messages and writing the >>> correct TupleTag. However after starting to use this new DAG, dataflow >>> canprocess 2kps per instance. >>> >> > >>> >> > >>> |--->Filter1-->WriteGCS >>> >> > KafkaIO->MessageExtractor-> | >>> >> > >>> |--->Filter2-->WriteGCS >>> >> > >>> >> > Do you have any idea why my data process speed decreased ? >>> >> > >>> >> > Thanks >>> >>