• トップ
  • ナレッジ
  • Hightouchを使ってデータウェアハウス(DWH)のデータを、SQL文を1行も書かずにセグメント化して送信してみた

Hightouchを使ってデータウェアハウス(DWH)のデータを、SQL文を1行も書かずにセグメント化して送信してみた

2024.02.09

DearOneの小林と申します。グロースマーケティング部という部署でツール導入のアーキテクチャ設計や実装の支援を行っています。

データ活用において、データウェアハウス(DWH)などに溜まっているデータを加工したり、外部のツールへ連携する際にはSQLのスキルが必要不可欠です。しかし、文系出身でSQLスキルに不安があり、日々楽をする事ばかり考えている私は、「最新のテクノロジーに頼ることでどうにかSQLを1文も書かずにDWHからのセグメント連携ができないか」と思うようになりました。

そこで今回は、DWHのデータを連携するリバースETL*1DWHからデータを取り出し、適切な形式に変換し、分析ツールやMAツールなど目的のツールにデータを送り込む処理。参考:リバースETLとは?領域で世界的にメジャーなツールである「Hightouch」の機能を使って、セグメントの作成から外部への連携までを私自身の手で行ってみようと思います。

本記事で紹介する作業のイメージは、次の通りです。

Hightouchを使ってデータウェアハウス(DWH)のデータをSQL文を1行も書かずにセグメント化して送信してみた

Hightouchとは

Hightouchは、DWHのデータの価値を最大限に引き出すデータ活用のプラットフォームです。リバースETL機能を中心に、セグメント機能やリアルタイムでパーソナルデータを提供するAPI機能などデータ活用における様々な価値を提供するツールです。

Hightouchの詳細はこちらからご覧ください。

Hightouchのセグメント機能

Hightouchには、DWHにあるデータを使ってHightouchのUI上からSQL不要でセグメントを作成し、それを外部ツールへ連携する「Customer Studio」という機能があります。

エンジニアリング知識を必要としないため、マーケティング担当者自身で、必要な時に必要なセグメントを瞬時に作成できることが大きな特徴です。

今回はHightouchのデモデータを使って、アパレル店舗の購入履歴から「新宿店で一度以上商品を購入したことがある女性ユーザー」というセグメントの作成からデータの連携までをやってみようと思います。

セグメントの作成までに行う主な作業は下記です。

  1. セグメント作成時に使用するデータの設定
  2. セグメント設定
  3. データ連携設定

データ連携の手順は以下の記事で詳しく紹介しています。

STEP1:セグメント作成時に使用するデータの設定

手順① DWHとの接続設定

まずはセグメントを切るDWHのデータを、Hightouchが見に行けるようにする設定を行います。

HightouchではDWH側のアカウントやロール*2管理者がユーザーまたはグループに対して割り当てるアクセス権の集合のこと。を使ってデータを参照しに行き、その結果を外部のツールへ連携する流れになります。そのため、事前にDWH側の参照可能な範囲のデータベースや使用するロールなどを設定する必要があります。このデータソースの設定をHightouchでは「Source」と呼びます。

  1. UI上の「Source」タブ「Add source」から設定を行う
セグメント作成時に使用するデータの設定-1
  1. Hightouchがコネクタを持つ製品の一覧が表示される

(具体的な連携先は「Hightouchのコネクタ一覧」からよりご確認ください。)

セグメント作成時に使用するデータの設定-2
  1. 製品ごとの設定に必要な内容をHightouchがUI上に表示してくれるため、あとは項目に沿って必要情報を入力して完了(Databricksの場合は以下の項目が表示されます。)
セグメント作成時に使用するデータの設定-3

手順② 参照データの設定

次にセグメント作成時に使うデータセットを設定します。

ここでは、「Source」で指定したデータベースから、セグメントに使いたいデータをテーブル単位やSQLクエリを用いて設定し、それらのデータの関係性まで設定することができます。

設定するデータは主に2種類です。

  • ペアレントモデル(Parent Model)
    セグメントの設定対象となるユーザー情報。主にユーザーマスタやテーブルなどを使って設定。
  • イベントモデル、リレイテッドモデル(Event Models, Related Models)
    ペアレントモデルの付帯情報となるようなデータ。ユーザー行動(イベント)の情報や追加のユーザー属性情報など。

今回はSQLを使わないのでDWH上の「ユーザーマスタ」テーブルをペアレントモデルに、「商品購買履歴」テーブルをイベントモデルに設定します。

1. Customer Studio機能内の「Schema」タブからペアレントモデルの作成ボタンをクリック

セグメント作成時に使用するデータの設定-4

2. 「Source」で設定した範囲のテーブルが参照可能

セグメント作成時に使用するデータの設定-5

3. ペアレントモデルに「ユーザーマスタ」テーブルを、イベントモデルに「イベントデータ_商品購入」のテー ブルを設定
・「ユーザーマスタ」

セグメント作成時に使用するデータの設定-6

・「イベントデータ_商品購入」

セグメント作成時に使用するデータの設定-7

今回使用する商品購入のデモデータは、アパレル店舗での購入履歴を模したものになります。(見やすさのためカラム名だけ事前に日本語に設定しています。)

セグメント作成時に使用するデータの設定-8

4. 「user_id」のカラムをキーにテーブル同士の関係性を設定して完了

セグメント作成時に使用するデータの設定-9

ここまででHightouch上でセグメントを切るのに必要なデータの設定が完了しました。そして、ここまでの作業も、一切SQLを使わず簡単に実行することができました。次に、実際にセグメントを切っていきます。

STEP2:セグメント設定

手順③ セグメント(Audience)の作成

  1. 画面左「Audience」タブから右上「Add audience」をクリック
セグメント設定-1
  1. 「Schema」で作成したデータセットを選択
セグメント設定-2

3. セグメントを設定する画面へ遷移。赤枠「Add filter」からセグメント条件を指定していく

セグメント設定-3

4. 「イベントデータ_商品購入」テーブルの購買履歴データから「新宿店で一度以上商品を購入したことのあるユーザー」という条件のセグメントを指定

セグメント設定-4
セグメント設定-5
セグメント設定-6
セグメント設定-7

5. 「AND」や「OR」条件などでより複雑な条件指定も可能

セグメント設定-8
セグメント設定-9

ここまでの操作によって「新宿店で一度以上商品を購入したことがあり性別が女性のユーザー」というセグメントを作成することができました。

この作業は本来SQLという言語を用いて主にデータエンジニアの方が作業を行う部分ですが、Hightouchを使うことでSQLスキルを持たない非エンジニアでも簡単にセグメントを作成することが可能になります。

また、UIがシンプルで非常にわかりやすいため、作業をスムーズに行うことができます。(私はこの手順を1~2分で終えることができました。)

手順④ セグメント(Audience)の確認

Hightouchでは、作成したセグメントに含まれるユーザー数やいくつかの情報を、セグメントを作成する時点で事前に確認することができます。

この機能は地味ですが個人的に意外と重要な機能だと思います。

  1. セグメントを作成した画面で、右上「Calculate size」を押下
セグメント設定-10
  1. そうすると指定した条件に合致するユーザー数をセグメントを保存する前に確認することができる
セグメント設定-11
  1. また、「Show insights」からセグメントに関する幾つかの情報を確認することができる
セグメント設定-12
  1. セグメントに含まれる各ユーザーのユーザーIDを確認
セグメント設定-13
  1. 作成済みの他のセグメントとの重複を確認
セグメント設定-14
  1. セグメントに含まれるユーザーの他のカラムの値の分布を確認
セグメント設定-15

STEP3:データ連携設定

手順⑤ セグメント(Audience)の送信

ここまで、DWH上のデータを使いSQLを書かずにセグメントを作成することができました。

この後は、セグメントデータをMAツールや広告などの様々な連携先のツールへ流していく工程になるのですが、作業はHightouchの基本的なデータ連携の設定手順と同様なので、以下の記事を参考にしていただければと思います。

DWHのSnowflake(スノーフレーク)にあるデータを、外部のプロダクトアナリティクスツールAmplitude(アンプリチュード)に連携する手順を紹介しています。

もちろん連携設定もSQL不要で、目標であった「SQLを1文も書かずにDWHからのセグメント連携を行う」ことは実現できそうです。これでまた一つ業務が楽になりました。

最後に

ここまで記事を読んでいただきありがとうございます。実際にHightouchで行う作業自体は、シンプルで簡単なものだと感じていただけたのではないでしょうか。

改めて、Hightouchのセグメント機能を使うメリットを振り返ってみようと思います。

  • 誰もがセグメントを作成できるためマーケターの作業効率が格段に向上
  • セグメント作成に必要だったエンジニアのコストを削減
  • 非エンジニアによるデータ活用文化を促進
  • 1つセグメントを作成すれば、それを複数の連携先ツールへ流すことが可能
  • DWHのデータを直接参照することで、リアルタイムにDWHのデータを活用できる

DearOneでは、Hightouchの導入・運用のご支援を行っております。Hightouchについてさらに詳しく知りたい方は、お気軽にご相談ください。

References
*1 DWHからデータを取り出し、適切な形式に変換し、分析ツールやMAツールなど目的のツールにデータを送り込む処理。参考:リバースETLとは?
*2 管理者がユーザーまたはグループに対して割り当てるアクセス権の集合のこと。

Recommended