Alteryxでユーザー購買記録、位置情報などのビッグデータを扱う際、先週と同じ曜日との比較のように、日時でデータ処理することが多いかと思います。今回はその際のコツを紹介します。
- ビックデータを収集するクエリの回数は最小限にする
例えばある処理では1週間前、別では5日の平均と比較する場合は、1週間のビッグデータを一度に取得した方が高速に動作します。データベースへのアクセスよりも、Alteryx内の処理の方が何十倍も高速です。
- 日時の範囲を指定→ダミーテーブルとクエリ置換
前日までの1週間のデータが欲しい場合、クエリ内のWhere betweenで指定しますが(全て取得してAlteryxのFilterで絞るのはNG、データ量によってはデータベース側、Alteryx側共に高負荷となる為)、データベースの種類によって日時の処理方法が異なる為、関数を調べて記述するのが手間となります。
そこで、Text Inputで作成した仮テーブルにて、Alteryxで日時を処理し、クエリ内の文字列を書き換えることにします(これ以上にスッキリしたやり方が見つからなかったので…)。
Formulaツールで7日前を設定する例
DateTimeAdd(DateTimeToday(),-7,"Days")
ODBCクエリ
~ Where date_id between 'DATE_START' and 'DATE_END'
クエリのオプションで、DATE_STARTとDATE_ENDをそれぞれ書き換えます。
- 当日と前週の平均を比較する
日付でフィルターをかけ、TrueとFalseで分けたものをSummarizeし、キーとなる値でJOINすると、スッキリ処理できます。このように、FilterツールにTrueとFalse両方の足があることがAlteryxのポイントです。JoinツールにもJoined, Left, Rightの足があるので、結合できない場合の処理も可視化できます。
例)前日とそれ以外のビッグデータに分け、前日を条件処理、それ以外を平均して結合。この後に、比較したり、結果を出力したり…
0 件のコメント:
コメントを投稿