考虑用户的最大总记录,并根据apache beam中的批次大小进行处理

时间:2018-12-13 05:45:54

标签: apache-beam apache-beam-io beam

我正在尝试根据用户应提供的要处理的最大总记录数来从源中读取记录。

例如:来源表中的总记录为100万    最多可处理10万条记录

我只需要从源头处理这些100k记录。 我已经遍历了JDBC IO库类,以检查是否有实现它的任何选项,就像可以设置批处理大小的选项一样,但是我没有找到。

PS:我想实现IO级,而不是通过增加查询限制

任何建议都值得欢迎。

2 个答案:

答案 0 :(得分:1)

通过关闭JDBC IO的自动提交,我可以与setMaxRows一起使用

答案 1 :(得分:0)

您可以使用withQuery来指定查询,例如要读取的记录数。 .withQuery("select id,name from Person limit 1000")。您也可以使用JdbcIO.StatementPreparator. The example in the doc may help参数化记录数。

编辑 另一种选择是使用withFetchSize