在有界源上使用 GroupIntoBatches
Use of GroupIntoBatches on Bounded Source
我有一个管道将有界数据源转换为一组 RPC 到第三方系统,并且希望在批处理请求效率和强制执行最大批处理大小之间取得合理的平衡。 GroupIntoBatches
在这种情况下使用合适的转换吗?我应该注意批处理模式下的效率问题吗?
根据 unit tests,似乎“最终”批次将针对有界源发出(即使它不构成完整批次),对吗?
我认为 GroupIntoBatches
是这个用例的好方法。保持在
请注意,此转换使用 KV 对,您想要实现的并行性将受到键数的限制。我建议看看 答案。
关于批量大小,是的,如果没有足够的元素,批量可能会较小。看看梁 Python documentation:
这个有趣的例子
GroupIntoBatches
会起作用。如果您是 运行 批处理流水线并且没有用于分组的自然键(随机生成一个通常会导致批次太小或并行度太小并且与 liquid 的交互效果不佳分片),你应该考虑使用 BatchElements 而不是它可以在没有密钥的情况下进行批处理,并且可以配置为固定或动态批处理大小。
我有一个管道将有界数据源转换为一组 RPC 到第三方系统,并且希望在批处理请求效率和强制执行最大批处理大小之间取得合理的平衡。 GroupIntoBatches
在这种情况下使用合适的转换吗?我应该注意批处理模式下的效率问题吗?
根据 unit tests,似乎“最终”批次将针对有界源发出(即使它不构成完整批次),对吗?
我认为 GroupIntoBatches
是这个用例的好方法。保持在
请注意,此转换使用 KV 对,您想要实现的并行性将受到键数的限制。我建议看看
关于批量大小,是的,如果没有足够的元素,批量可能会较小。看看梁 Python documentation:
这个有趣的例子GroupIntoBatches
会起作用。如果您是 运行 批处理流水线并且没有用于分组的自然键(随机生成一个通常会导致批次太小或并行度太小并且与 liquid 的交互效果不佳分片),你应该考虑使用 BatchElements 而不是它可以在没有密钥的情况下进行批处理,并且可以配置为固定或动态批处理大小。