概要
digdagとembulkで連携している際に、複数のIDのデータをBigQueryにインポートしたいことがある。
今回の場合、GoogleAnalyticsのデータをBigQueryへ連携していて、GAの異なるIDの処理を複数ファイルにするのではなく一つのファイルで行いたかった。
それを実行した際のメモです。
※GAの設定については省略します。
※下記の設定を参考に
Google Analytics input plugin for Embulk
変数の渡し方
書き方は下記の方を参考にさせていただいた。
DigdagとEmbulkの連携で便利なdigdagの変数参照
shオペレータを使っている場合は下記で渡すことが出来る。
※shオペレータではない場合は、指定の仕方が異なるので注意。
digdagファイル
_export:
test_id: 12345
embulkのliquidファイル
in:
id: {{ env.test_id }}
out:
mode: append
digdagのfor_eachの回し方
上記のように、変数化した複数のIDを同じ処理を実行したい場合、for_eachオペレータを使う。
下記公式ページに使い方が記載されている。
https://docs.digdag.io/operators/for_each.html
_export:
別の変数(ここに共通の値を書いてあげる): hoge
+repeat:
for_each>:
test_id: [123, 456]
_do:
sh>: embulkの実行
+repeat:
でfor_each>
を使ってあげて、_do:
で実行してあげるとそれぞれを呼び出してくれる。
注意点として、上記にもout
で指定しているように、mode: append
にしてあげないと、それぞれの変数の結果が追加されない。
replaceにしていると、もちろん2つ目の変数のIDの結果が上書きされてしまうので注意!
ちょいハマったけど、わかってとてもスッキリしました。
digdag便利!
<p style='padding: 5px;'>