Поток ETL для получения данных от удаленного сервиса, преобразования его в локальную модель ORM, а затем для установления отношений?
Недавно я настроил свой первый поток "etl" для получения данных из удаленного сервиса, изменил их, чтобы они соответствовали моим локальным моделям, а затем сохранил их. Теперь, когда я закончил, это кажется довольно гротескным по нескольким причинам
мой source
это JSON от удаленного сервиса
мой transform
заменяет каждый row
с недавно определенным местным model
на основе оригинала source
row
transform
также смотрит на различные значения и определяет дополнительные локальные отношения
destination
затем звонит .save
на моем недавно заменили rows
которые сейчас являются моделями в ORM.
- Как я должен создавать локальные записи на основе внешнего источника данных? Мои модели не похожи на удаленные источники. Правильно ли заменить
row
запись с моим новым объектом Model? - Если я должен заменить значение
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
будет вызывать, чтобы манипулировать или устанавливать отношения различными способами