はじめに
trocco の導入初期などでは、過去分のデータをまとめて連携したいケースがあると思います。
そのようなケースではワークフローを使って日付ごとにループ処理することで実現できるのでその方法を紹介します。
この記事では、以下のようなケースに沿って紹介します。
- UA のデータを BigQuery に転送したい
- 過去分(長期間のデータ)を一括で転送したい
データ転送設定についても軽く紹介しますが、データマート定義を使ったループ処理も考慮すべき点はほぼ同じなので参考にしてください。
この記事で実現すること
- 長期間のデータを一括で転送したい
- 出力するテーブルは 1 テーブル
- 日付カラムで分割テーブルにする
- シャーディングテーブルにはしない
trocco のデータ転送設定
基本的には、trocco® を利用して Google Analytics UA のデータを Google BigQuery へ同期し、Tableau で可視化するがわかりやすくまとまっているので、
こちらを参考にして設定を進めることができると思います。
わかりにくいところの補足と今回のケースを実現する上で設定しないといけないことを紹介します。
カスタム変数の設定
まず最初に、データ取得期間を外部から渡してループ処理を回すため、カスタム変数を設定する必要があります。
ここで設定する際、データ型は「時刻・日付」を選択してください。
値・単位・前/後は、実行時に 1 つの基準日時を設定するだけで複数の変数をセットできる機能になります。
以下の画像のように設定すると、2 日ずつ期間を分割することができる設定になります。
後ほど紹介しますが、今回の例では値を直接格納する方法を取るのでこの設定は意識する必要はありません。
日付フォーマットは、データ取得期間のフォーマットに合わせるため「%Y-%m-%d
」と設定してください

カスタム変数をデータ取得期間に設定
次に設定したカスタム変数をデータ取得期間に入れます。

転送方法と転送モードの設定
最後に、転送方法と転送モードを設定します。今回は出力するテーブルが 1 テーブルのため転送方法を「全件転送」、転送モードを「追記(APPEND)」に設定します。
もし、出力するテーブルを日付で変える(シャーディングテーブルにする)場合は、テーブル名にカスタム変数を入れるようにし、転送方法を「全件転送」、転送モードを「全件洗い替え」に設定すると良いでしょう
trocco のワークフロー設定
基本的には、以下を参照して設定してください。
ループ処理を実行するための設定方法はフロー編集画面で行います。ループさせたい転送ジョブを追加し、以下の画像のようにクリックし編集に進みます。

クリックするとタスク編集画面が出てくるので、カスタム変数でループ実行にチェックを入れます。

チェックを入れると入力画面が出てくるので、それぞれ入力します。
ループの種類は必要に応じて使用していただくとよいと思いますが、私は以下のように使い分けるようにしています。
- 取得する期間が固定で決まっているなら「Google BigQuery のクエリ結果でループ」
- 取得する期間が現在を起点に決まっているなら「期間(相対指定)でループ」
今回の例では、過去分を一括で実行したいケースなので「Google BigQuery のクエリ結果でループ」を使うことにします。
対象カスタム変数は、転送ジョブ設定で作成したカスタム変数を指定し、クエリは以下のような SQL を記述します。
参考:GENERATE_DATE_ARRAY

プレビュー実行をクリックして確認すると以下のように値がカスタム変数に値が入っていることを確認できます。

最後に、必要に応じて並列処理の許可するかどうかを選択してください。
これでワークフローの設定は完了です。
実行時の補足
上記までの設定が完了すれば、あとはワークフローを動かすだけでループ処理が実行されます。
実行時にカスタム変数展開方法を選択することができますが、ワークフロー上で設定した値が優先されるのでここの指定は何でも問題ありません。

参考

備考
Hakky では社内のデータ活用やサービスとしてデータ提供を行うためのソリューションを展開しております。
「社内のデータを一元管理し、よりデータドリブンな組織を構築したい」など具体的な相談はもちろんのこと、「どんなことをお願いできるのか知りたい」や「こんなことをやりたい」など、ご検討段階でも構いませんので、ぜひお気軽にフォームよりお問い合わせくださいませ。