bricolages / bricolage

AWS-oriented Data Warehouse Framework
114 stars 20 forks source link

変数の値を動的に式で定義できるようにする #163

Open aamine opened 3 years ago

aamine commented 3 years ago

変数が使われるときにRubyのコードで変数の値を設定できるようにする。

ジョブファイルで定義した変数値に基いて条件分岐することは現状できない。しかし分岐したくなる条件はふつうグローバルではなくジョブごとである。そこで、任意のRubyコードを値として使えるようにすることで、条件分岐を最後の最後まで遅延できるようにしたい。

たとえば次のような使いかたができる。

▼config/variable.yml

variables.define('data_window_begin') {|vars|
  case
  when e = ENV['data_window_begin'] then "date '#{e}'"
  when v = vars['data_window_begin'] then v
  else Date.today.strftime('%Y-%m-%d')
  end
}

検討事項

これできるようになったらvariable.rbだけじゃなくてジョブでも書きたくなる気がするが、どうやって書かせよう。現状のerb埋め込み式で十分か?