我在数据流管道中有3个数据流步骤。
问题:
在第1步之后,其分为10K到20K事件。
现在在第2步中耗尽数据库连接。 (我有一个静态的hikari连接池)。
它的工作原理绝对好,将减少数据。我正在使用一台n1-standard-32机器。
我应该怎么做才能将输入限制为下一步?这样就可以限制并行性或限制事件进入下一步。
答案 0 :(得分:1)
我认为基本思想是在执行步骤2时减少并行性(如果您具有大量并行性,则由于20k个事件是并行处理的,因此需要20k个连接来处理20k个事件)。
想法包括:
有状态ParDo的执行是按每个窗口的每个键序列化的,这意味着有状态ParDo只需一个连接,因为在给定的时间,一个键和一个窗口只应处理一个元素。
< / li>每个捆绑包一个连接。您可以在startBundle处初始化连接,并使同一包中的元素使用相同的连接(如果我的理解是正确的,则在包中,执行可能会序列化)。