Получить данные с ограничениями - PullRequest
0 голосов
/ 26 сентября 2018

Я очень новичок в Kettle Transformations, но обнаружил, что у меня проблема в проекте, над которым я работаю.

A GET вызовы преобразования на сервер, сервер возвращает данные в *Формат 1005 *.У меня проблема в том, что данные представляют собой очень большое количество JSON, скажем, 80 000 документов JSON, поэтому иногда сервер отключается.

Интересно, смогу ли я установить ограничение в JSON, полученное всамо преобразование, другими словами: я хочу получить 3000 JSON и после этого следующие 3000 JSON.

Есть ли способ сделать это с помощью преобразований?Вот как я получаю данные enter image description here

Я пытаюсь с

& limit = 3000

в URLЯ звоню, но я просто получаю первые 3000 документов, и мне нужно, чтобы с ним работало 3000 документов, а затем следующие 3000 ...

1 Ответ

0 голосов
/ 26 сентября 2018

Не на шаге PDI, если вы не можете указать параметры limit и offset с помощью URL.Эти параметры должны быть определены на сервере, который предоставляет вам данные.И обычно разработчики API кодируют эти параметры, потому что они знают, что такие люди, как вы, в противном случае будут загружать тонны данных.К сожалению, это лучшая практика, а не норма, поэтому она не может быть реализована в Data Integrator.

Попробуйте.И для этого используйте вкладку parameter вместо ?limit=&offset= в URL.Например, значения могут быть получены на предыдущем шаге, и вы сможете читать сервер по частям.

Вы также можете увеличить Response time, то есть максимальное время, в течение которого ваш PDI будет ожидать ответас сервера, прежде чем решить, что сервер не работает.

Вы также можете поймать ошибку шага REST Client, либо в основной работе, либо выбрав ее, когда вы отпустите кнопку мыши, чтобы определить шаг.В этом случае вам может потребоваться добавить дополнительную логику, чтобы перезапустить процесс через 15 минут после сбоя http.Однако если вы выберете это решение, позаботьтесь о том, чтобы остановиться после 3 или 5 попыток, в противном случае вы можете заполнить память незанятых процессов.

...