DearOneの小林と申します。グロースマーケティング部という部署でツール導入のアーキテクチャ設計や実装の支援を行っています。
データ活用において、データウェアハウス(DWH)などに溜まっているデータを加工したり、外部のツールへ連携する際にはSQLのスキルが必要不可欠です。しかし、文系出身でSQLスキルに不安があり、日々楽をする事ばかり考えている私は、「最新のテクノロジーに頼ることでどうにかSQLを1文も書かずにDWHからのセグメント連携ができないか」と思うようになりました。
そこで今回は、DWHのデータを連携するリバースETL*1DWHからデータを取り出し、適切な形式に変換し、分析ツールやMAツールなど目的のツールにデータを送り込む処理。参考:リバースETLとは?領域で世界的にメジャーなツールである「Hightouch」の機能を使って、セグメントの作成から外部への連携までを私自身の手で行ってみようと思います。
本記事で紹介する作業のイメージは、次の通りです。
Hightouchとは
Hightouchは、DWHのデータの価値を最大限に引き出すデータ活用のプラットフォームです。リバースETL機能を中心に、セグメント機能やリアルタイムでパーソナルデータを提供するAPI機能などデータ活用における様々な価値を提供するツールです。
Hightouchの詳細はこちらからご覧ください。
Hightouchのセグメント機能
Hightouchには、DWHにあるデータを使ってHightouchのUI上からSQL不要でセグメントを作成し、それを外部ツールへ連携する「Customer Studio」という機能があります。
エンジニアリング知識を必要としないため、マーケティング担当者自身で、必要な時に必要なセグメントを瞬時に作成できることが大きな特徴です。
今回はHightouchのデモデータを使って、アパレル店舗の購入履歴から「新宿店で一度以上商品を購入したことがある女性ユーザー」というセグメントの作成からデータの連携までをやってみようと思います。
セグメントの作成までに行う主な作業は下記です。
- セグメント作成時に使用するデータの設定
- セグメント設定
- データ連携設定
データ連携の手順は以下の記事で詳しく紹介しています。
STEP1:セグメント作成時に使用するデータの設定
手順① DWHとの接続設定
まずはセグメントを切るDWHのデータを、Hightouchが見に行けるようにする設定を行います。
HightouchではDWH側のアカウントやロール*2管理者がユーザーまたはグループに対して割り当てるアクセス権の集合のこと。を使ってデータを参照しに行き、その結果を外部のツールへ連携する流れになります。そのため、事前にDWH側の参照可能な範囲のデータベースや使用するロールなどを設定する必要があります。このデータソースの設定をHightouchでは「Source」と呼びます。
- UI上の「Source」タブ「Add source」から設定を行う
- Hightouchがコネクタを持つ製品の一覧が表示される
(具体的な連携先は「Hightouchのコネクタ一覧」からよりご確認ください。)
- 製品ごとの設定に必要な内容をHightouchがUI上に表示してくれるため、あとは項目に沿って必要情報を入力して完了(Databricksの場合は以下の項目が表示されます。)
手順② 参照データの設定
次にセグメント作成時に使うデータセットを設定します。
ここでは、「Source」で指定したデータベースから、セグメントに使いたいデータをテーブル単位やSQLクエリを用いて設定し、それらのデータの関係性まで設定することができます。
設定するデータは主に2種類です。
- ペアレントモデル(Parent Model)
セグメントの設定対象となるユーザー情報。主にユーザーマスタやテーブルなどを使って設定。
- イベントモデル、リレイテッドモデル(Event Models, Related Models)
ペアレントモデルの付帯情報となるようなデータ。ユーザー行動(イベント)の情報や追加のユーザー属性情報など。
今回はSQLを使わないのでDWH上の「ユーザーマスタ」テーブルをペアレントモデルに、「商品購買履歴」テーブルをイベントモデルに設定します。
1. Customer Studio機能内の「Schema」タブからペアレントモデルの作成ボタンをクリック
2. 「Source」で設定した範囲のテーブルが参照可能
3. ペアレントモデルに「ユーザーマスタ」テーブルを、イベントモデルに「イベントデータ_商品購入」のテー ブルを設定
・「ユーザーマスタ」
・「イベントデータ_商品購入」
今回使用する商品購入のデモデータは、アパレル店舗での購入履歴を模したものになります。(見やすさのためカラム名だけ事前に日本語に設定しています。)
4. 「user_id」のカラムをキーにテーブル同士の関係性を設定して完了
ここまででHightouch上でセグメントを切るのに必要なデータの設定が完了しました。そして、ここまでの作業も、一切SQLを使わず簡単に実行することができました。次に、実際にセグメントを切っていきます。
STEP2:セグメント設定
手順③ セグメント(Audience)の作成
- 画面左「Audience」タブから右上「Add audience」をクリック
- 「Schema」で作成したデータセットを選択
3. セグメントを設定する画面へ遷移。赤枠「Add filter」からセグメント条件を指定していく
4. 「イベントデータ_商品購入」テーブルの購買履歴データから「新宿店で一度以上商品を購入したことのあるユーザー」という条件のセグメントを指定
5. 「AND」や「OR」条件などでより複雑な条件指定も可能
ここまでの操作によって「新宿店で一度以上商品を購入したことがあり性別が女性のユーザー」というセグメントを作成することができました。
この作業は本来SQLという言語を用いて主にデータエンジニアの方が作業を行う部分ですが、Hightouchを使うことでSQLスキルを持たない非エンジニアでも簡単にセグメントを作成することが可能になります。
また、UIがシンプルで非常にわかりやすいため、作業をスムーズに行うことができます。(私はこの手順を1~2分で終えることができました。)
手順④ セグメント(Audience)の確認
Hightouchでは、作成したセグメントに含まれるユーザー数やいくつかの情報を、セグメントを作成する時点で事前に確認することができます。
この機能は地味ですが個人的に意外と重要な機能だと思います。
- セグメントを作成した画面で、右上「Calculate size」を押下
- そうすると指定した条件に合致するユーザー数をセグメントを保存する前に確認することができる
- また、「Show insights」からセグメントに関する幾つかの情報を確認することができる
- セグメントに含まれる各ユーザーのユーザーIDを確認
- 作成済みの他のセグメントとの重複を確認
- セグメントに含まれるユーザーの他のカラムの値の分布を確認
STEP3:データ連携設定
手順⑤ セグメント(Audience)の送信
ここまで、DWH上のデータを使いSQLを書かずにセグメントを作成することができました。
この後は、セグメントデータをMAツールや広告などの様々な連携先のツールへ流していく工程になるのですが、作業はHightouchの基本的なデータ連携の設定手順と同様なので、以下の記事を参考にしていただければと思います。
DWHのSnowflake(スノーフレーク)にあるデータを、外部のプロダクトアナリティクスツールAmplitude(アンプリチュード)に連携する手順を紹介しています。
もちろん連携設定もSQL不要で、目標であった「SQLを1文も書かずにDWHからのセグメント連携を行う」ことは実現できそうです。これでまた一つ業務が楽になりました。
最後に
ここまで記事を読んでいただきありがとうございます。実際にHightouchで行う作業自体は、シンプルで簡単なものだと感じていただけたのではないでしょうか。
改めて、Hightouchのセグメント機能を使うメリットを振り返ってみようと思います。
- 誰もがセグメントを作成できるためマーケターの作業効率が格段に向上
- セグメント作成に必要だったエンジニアのコストを削減
- 非エンジニアによるデータ活用文化を促進
- 1つセグメントを作成すれば、それを複数の連携先ツールへ流すことが可能
- DWHのデータを直接参照することで、リアルタイムにDWHのデータを活用できる
DearOneでは、Hightouchの導入・運用のご支援を行っております。Hightouchについてさらに詳しく知りたい方は、お気軽にご相談ください。
*1 | DWHからデータを取り出し、適切な形式に変換し、分析ツールやMAツールなど目的のツールにデータを送り込む処理。参考:リバースETLとは? |
---|---|
*2 | 管理者がユーザーまたはグループに対して割り当てるアクセス権の集合のこと。 |