ユーザーごとの情報を保持テーブル(ユーザーマスタ)を作成する手順を記載します。
媒体に送る際には、ユーザーマスタを参照することで、都度KARTEイベントデータにアクセスする必要がないため、クエリリソース消費量を抑えることができます。

事前準備

  • Signalsで実現したい施策をあらかじめ決めていただいた上で、ユーザーマスタに何の項目が必要かを決めてください。
    • 以下、例示を記載します。(施策に応じて決めてください。)
      • user_id(必須)
      • emailアドレス, 電話番号等の個人情報
      • 購入回数
      • 累計購入金額
      • 最終購入日時
      • 最終訪問日時

作成手順

①ユーザーマスタ登録用のクエリを作成する

  • 全KARTEイベントデータを取得して、ユーザーごとに必要な情報を算出します。
  • 必要に応じて、karte_eventテーブルへのクエリを作成するをご参照の上、クエリを作成してください。
  • クエリを書く際は、登録用と更新用のデータの期間に隙間ができないように注意してください。(基本的には、現在日付の前日までのデータを取得していただけると良いです。)

②ユーザーマスタテーブルを作成する

③ユーザーマスタ登録用のジョブフローを設定する

  • ②で作成したテーブルにレコードを登録するためのジョブフローを作成します。
  • KARTE Datahub > ジョブフロー > 作成 から、ジョブフローを作成します。
  • ジョブを追加 > データテーブルへのインポート > 次へ をクリックします。
  • クエリの実行結果」を選択し、①で作成したクエリ、②で作成したデータテーブルを選択します。
  • ルールは、「置き換え」を選択してください。
  • ジョブ名は適当に入力し、完了を押してください。
  • ジョブフロー名を適用に入力し、右上の保存して完了を押してください。
  • 作成したジョブフローを選択し、今すぐ実行を押すとジョブが実行されます。
  • 処理が完了したら、作成したテーブルにレコードが作成されていることを確認してください。
  • 基本的には、1度のみ実行します。

④ユーザーマスタ更新用のクエリを作成する

  • 1日分のKARTEデータを取得し、ユーザーマスタの各項目を更新します。
  • クエリでupsert文が使えないため、既存データテーブルの一部のレコードを差分更新することはできますか?の方法を使って、差分更新を実現します。(tempテーブル自体の作成は不要です。)
  • 上記ドキュメント内のクエリの、current_masterでユーザーマスタを取得、new_dataで1日分のKARTEイベントデータを取得し、データを加工した上で、ユーザーマスタの全レコードを洗い替えるイメージでクエリを作成してください。
  • クエリを書く際は、取得するデータの期間に隙間ができないように注意してください。(基本的には、現在日付の前日1日分のデータを取得していただけると良いです。)

⑤ユーザーマスタ更新用のジョブフローを設定する

  • ②で作成したテーブルのレコードを更新するためのジョブフローを作成します。
  • 作成方法は基本的には③と同じです。
  • ルールは、「置き換え」を選択してください。
  • スケジュール実行を有効にするにチェックをつけ、繰り返し実行を有効にするにもチェックをつけます。
  • 基本的には、日次で実行してください。
    null

注意点

  • ユーザーマスタの項目を追加したいとなった場合は、①のクエリを修正していただいたのち、③のジョブフローを実行していただく必要があります。また、④のクエリも修正してください。