HightouchでDestinationにMixpanelを指定しユーザーデータを同期してみた
さがらです。
Hightouchでデータの転送先となるDestinationにMixpanelを指定して、ユーザーデータを同期してみたのでその内容をまとめてみます。
参考
事前準備
Sourceの設定
まず、転送元となるSourceについてはSnowflakeを設定します。連携用のデータも事前に準備済であるとします。
- 手順
- ユーザーデータ
Mixpanelの設定
何もデータを入れていない、空っぽの状態のMixpanelの新規プロジェクトで試してみます。
DestinationにMixpanelを設定
まず、HightouchのDestinationとしてMixpanelを設定していきます。
Mixpanelで必要な情報を確認
Hightouchで設定するために、最初にMixpanel上で必要な情報を確認していきます。
具体的には、以下3つの情報が必要です。
Project ID
Project token
Service Account Username and Secret
まず、Mixpanelの画面右上から、Project Settings
を押します。
Project ID
は、Overview
のProject Details
の中から確認が可能です。
Project token
は、Overview
のAccess Keys
の中から確認可能です。
Service Account Username and Secret
は、Service Accounts
から+ Add Service Account
新しく生成する必要があります。
作成画面が開いたら、新しいService Accountを作成します。新しい名前をService Account
欄で追加し、Project Role
はAdmin
かOwner
を選択し、右下のAdd
を押せばOKです。
すると、作成したService AccountのUsername
とSecret
が表示されるので、こちらをコピーします。
これでMixpanel側での確認は完了です!
HightouchでDestinationの設定
続いて、Hightouch上でMixpanelをDestinationとして設定していきます。
まず、左のメニューからDestinations
を選択し、Add destination
を押します。
Destinationとして設定するサービスを選択する画面が出てくるため、Mixpanelを選択し、画面右下のContinue
を押します。
Mixpanelの接続情報を入力する画面が出てくるため、先程確認した各種情報を入力していきます。Region
はMixpanelをEUなどで使用していなければ、Standard (Most Common)を選択します。入力後、右下の
Continue`を押します。
最後に、Hightouch上で区別するための作成するDestinationを入力する画面が出てきます。
任意の名前を入力し、右下のFinish
を押します。これでMixpanelをDestinationとして設定出来ました!
Model設定
続いて、ユーザーデータのModel設定をしていきます。
まず、画面左のModels
を押し、Add model
を押します。
連携済みのSnowflakeのデータベースを選択します。
今回はすでにSnowflake上に存在するテーブルをそのまま使うため、Table selector
を選択します。
連携したいテーブルを選択し、画面右下のContinue
を押します。
Hightouch上の区別のため、Model name
、Description
を入力します。また、HightouchのCDCの処理のためにPrimary key
も設定します。
設定が完了したら、右下のFinish
を押します。これでModelの設定は完了です!
Sync設定
DestinationとModelの設定が完了したので、実際にSnowflakeからMixpanelに同期させるためのSyncの設定をしていきます。
Hightouchの左のメニューからSyncs
を押して、Add sync
を押します。
まず、設定したModelを選択します。
続いて、設定したDestinationを選択します。
続いて、Syncの詳細な設定に移ります。
まず、Object
を選択し、ドロップダウンのリストではUser
を選択します。
レコードのupdate方法はUpsert
のみ選択できるためそのままで、How should records between query results and records in Mixpanel be matched?
では、MixpanelのUser IDと紐付ける、Snowflakeのテーブルのカラムを選択します。
続いて、Which columns would you like to sync to Mixpanel fields?
の設定ですが、Suggest mappings
を押すと、カラム名が一致するものなどはHightouch側で自動で割り当てを行ってくれます。
最後に、Which custom columns would you like to sync to custom fields in Mixpanel?
の設定ですが、ここもSuggest mappings
を押すと、Snowflake上のテーブルのカラム名に併せて自動でカスタムフィールド名も決めて割り当てを行ってくれます。
これらのフィールドの割り当てが自動で行われない場合には、Add mapping
から追加をしましょう。
フィールドの割り当ても完了したら、画面右下のContinue
を押します。
最後に、Description
とSchedule type
を設定し、右下のFinish
を押します。
これで、Syncの設定は完了です!
Sync実行
最後に、実際に設定したSyncを実行してみます。
今回はスケジュール設定をしていないため、対象のSyncを開いた上で、右上のRun
を押します。
すると、Sync画面にRunsのログが表示されます。
HEALTHY
が出たら、無事に同期されたということになります!
実際にMixpanelのUsers
を見ると、無事にカスタムフィールドも込みで登録されていました!
最後に
HightouchでDestinationにMixpanelを指定しユーザーデータを同期してみました。
通常だとMixpanelのAPIを叩く処理を開発して定期実行しないといけないので、HightouchならばGUIベースの操作で簡単に実施できるので簡単ですね!