Поток ETL для получения данных от удаленного сервиса, преобразования его в локальную модель ORM, а затем для установления отношений?

Недавно я настроил свой первый поток "etl" для получения данных из удаленного сервиса, изменил их, чтобы они соответствовали моим локальным моделям, а затем сохранил их. Теперь, когда я закончил, это кажется довольно гротескным по нескольким причинам

мой source это JSON от удаленного сервиса

мой transform заменяет каждый row с недавно определенным местным modelна основе оригинала sourcerow

transform также смотрит на различные значения и определяет дополнительные локальные отношения

destination затем звонит .save на моем недавно заменили rows которые сейчас являются моделями в ORM.

  1. Как я должен создавать локальные записи на основе внешнего источника данных? Мои модели не похожи на удаленные источники. Правильно ли заменить row запись с моим новым объектом Model?
  2. Если я должен заменить значение row с моей локальной моделью, то я предполагаю, что я должен разделить каждое последующее действие на transform на этом новом ряду (теперь модель)?

В целом мой.etl выглядит так

pre_process do
  @some = <Go To DB and fetch data>
  @variables = <Setup More Information>
end

source MyRemoteSource

transform DoABunchOfWork,@some,@variables

destination CallSaveOnModels

Класс DoABunchOfWork имеет около 6 методов, которые process будет вызывать, чтобы манипулировать или устанавливать отношения различными способами

0 ответов

Другие вопросы по тегам