Рассматривая итоговые максимальные записи от пользователя и обрабатывая их на основе размера пакета в Apache Beam - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь прочитать записи из источника на основе общего количества обработанных записей, которое должно быть предоставлено пользователем.

Например: общее количество записей в исходной таблице равно 1 миллиону. Максимальное количество обрабатываемых записей: 100 КБ

Мне нужно обработать эти 100 КБ записей только из источника.Я прошел через классы библиотеки JDBC IO, чтобы проверить, есть ли у меня какая-либо опция для ее реализации, так как есть опция для установки размера пакета, но я не нашел ни одной.

PS: я хочу реализовать его на уровне ввода-вывода, а не путем добавления ограничения к запросу

Любые предложения приветствуются.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Я смог сделать это с помощью setMaxRows, отключив авто-фиксацию для JDBC IO

0 голосов
/ 14 декабря 2018

вы можете использовать withQuery для указания запроса с количеством записей для чтения, например, .withQuery("select id,name from Person limit 1000").Вы также можете параметризовать количество записей, используя JdbcIO.StatementPreparator. . Пример в документе может помочь .

РЕДАКТИРОВАТЬ Другой вариант - использовать withFetchSize

...