1

最近、リモート サービスからデータを取得し、ローカル モデルに合わせて変更してから保存するように、最初の "etl" フローをセットアップしました。読み終わった今、いくつかの理由でかなりグロテスクに感じます

mysourceはリモート サービスからの JSON です

myは、オリジナルに基づいて、それぞれを新しく定義された localにtransform置き換えますrowmodelsource row

transformまた、さまざまな値を見て、追加のローカル関係を定義します

destination次に、現在ORMのモデルになっている.save、新しく置き換えられたものを呼び出します。rows

  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 クラスにはprocess、さまざまな方法でリレーションシップを操作またはセットアップするために呼び出す約 6 つのメソッドがあります。

4

0 に答える 0