Массовый импорт через API (SOAP / REST) - PullRequest
0 голосов
/ 01 марта 2019

У меня есть приложение, в котором мне нужно импортировать данные из системы клиента в мое приложение.Эти данные должны быть преобразованы в формат, требуемый моим приложением.Кроме того, данные должны периодически обновляться.

Итак, я имею в виду две вещи:

  • Первоначальная массовая загрузка
  • Обновление этих данных при изменении данных всистема клиента.

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

Есть ли другие варианты для этого?

Давайтескажем, мне нужно импортировать продукты и пользователей (около 1 тыс.) в мою систему.

Итак, мои вопросы:

  1. Нужно ли выполнять массовую загрузку через какой-нибудь файл?или можно ли использовать SOAP / REST API для импорта огромного количества записей?
  2. Можно ли использовать Spring-batch в этом сценарии в качестве ETL?

Решение, которое я вижу сейчаспредоставляет API на моем сервере, который будет вызываться клиентской системой, а затем передает эти данные в задание (используя spring-batch) для дальнейшей обработки.

Я использую среду Spring и MySQL DB.

Заранее спасибо,

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Вы можете использовать либо SOAP / REST API, либо Чтение из файла.Я сделал оба пути.1к это очень маленькое число.Я сделал для 10k, используя Rest API.У большинства организаций есть сетевые ограничения на размер ответа API.Убедитесь, что размер ответа Rest / SOAP находится в пределах вашей организации.Если оно превышает, предпочитайте загрузку через файл, используя Spring batch.

В вашем ItemReader создайте метод init () с аннотацией @PostConstruct.И вызовите свою конечную точку Rest / SOAP или прочитайте из файла, чтобы получить данные.Ваш читатель должен возвращать одну запись / строку за раз, когда ваш ItemProcessor должен проанализировать строку / запись, отправленную читателем, и выполнить дальнейшую обработку.

Надеюсь, это поможет.

0 голосов
/ 01 марта 2019

Первоначальный импорт может быть выполнен с помощью задания Spring Batch.Spring Batch прекрасно подходит для таких случаев использования ETL благодаря своей модели обработки, ориентированной на куски, особенно когда у вас огромный набор данных.

Решение, которое я вижу сейчас, - это предоставление API на моем сервере, которое будетбыть вызванным клиентами system

Для дельт я не уверен, что вам нужно выставлять API.Я думаю, что это другая система, которая должна предоставлять такой API для обеспечения изменений данных в заданном диапазоне дат / времени.Затем ваша система может регулярно вызывать этот API, чтобы получать дельты и обновлять себя.Это также может быть сделано с помощью запланированного пакетного задания (или нет, если дельты достаточно малы для обработки в веб-запросе).

Надеюсь, это поможет.

...