ユーザーごとの情報を保持テーブル(ユーザーマスタ)を作成する手順を記載します。
媒体に送る際には、ユーザーマスタを参照することで、都度KARTEイベントデータにアクセスする必要がないため、クエリリソース消費量を抑えることができます。
事前準備
- Signalsで実現したい施策をあらかじめ決めていただいた上で、ユーザーマスタに何の項目が必要かを決めてください。
- 以下、例示を記載します。(施策に応じて決めてください。)
- user_id(必須)
- emailアドレス, 電話番号等の個人情報
- 購入回数
- 累計購入金額
- 最終購入日時
- 最終訪問日時
- 以下、例示を記載します。(施策に応じて決めてください。)
作成手順
①ユーザーマスタ登録用のクエリを作成する
- 全KARTEイベントデータを取得して、ユーザーごとに必要な情報を算出します。
- 必要に応じて、karte_eventテーブルへのクエリを作成するをご参照の上、クエリを作成してください。
- クエリを書く際は、登録用と更新用のデータの期間に隙間ができないように注意してください。(基本的には、現在日付の前日までのデータを取得していただけると良いです。)
②ユーザーマスタテーブルを作成する
- データテーブルを作成するをご参照の上、テーブルを作成してください。
- スキーマの指定は不要です。
③ユーザーマスタ登録用のジョブフローを設定する
- ②で作成したテーブルにレコードを登録するためのジョブフローを作成します。
- KARTE Datahub > ジョブフロー > 作成 から、ジョブフローを作成します。
- ジョブを追加 > データテーブルへのインポート > 次へ をクリックします。
- 「クエリの実行結果」を選択し、①で作成したクエリ、②で作成したデータテーブルを選択します。
ルール
は、「置き換え」を選択してください。ジョブ名
は適当に入力し、完了を押してください。ジョブフロー名
を適用に入力し、右上の保存して完了を押してください。- 作成したジョブフローを選択し、今すぐ実行を押すとジョブが実行されます。
- 処理が完了したら、作成したテーブルにレコードが作成されていることを確認してください。
- 基本的には、1度のみ実行します。
④ユーザーマスタ更新用のクエリを作成する
- 1日分のKARTEデータを取得し、ユーザーマスタの各項目を更新します。
- クエリでupsert文が使えないため、既存データテーブルの一部のレコードを差分更新することはできますか?の方法を使って、差分更新を実現します。(tempテーブル自体の作成は不要です。)
- 上記ドキュメント内のクエリの、
current_master
でユーザーマスタを取得、new_data
で1日分のKARTEイベントデータを取得し、データを加工した上で、ユーザーマスタの全レコードを洗い替えるイメージでクエリを作成してください。 - クエリを書く際は、取得するデータの期間に隙間ができないように注意してください。(基本的には、現在日付の前日1日分のデータを取得していただけると良いです。)
⑤ユーザーマスタ更新用のジョブフローを設定する
- ②で作成したテーブルのレコードを更新するためのジョブフローを作成します。
- 作成方法は基本的には③と同じです。
- ルールは、「置き換え」を選択してください。
- スケジュール実行を有効にするにチェックをつけ、繰り返し実行を有効にするにもチェックをつけます。
- 基本的には、日次で実行してください。
注意点
- ユーザーマスタの項目を追加したいとなった場合は、①のクエリを修正していただいたのち、③のジョブフローを実行していただく必要があります。また、④のクエリも修正してください。