• トップ
  • ナレッジ
  • SnowflakeのデータをAmplitudeに連携してみた|連携手順と活用ポイント

SnowflakeのデータをAmplitudeに連携してみた|連携手順と活用ポイント

公開日:

このような状態では、マーケティング担当者が自らデータを扱えず、十分に活用しきれない状況になってしまいます。

データ活用を進めるためには、Snowflakeなどのデータ基盤に蓄積されたデータを、マーケティングの現場で活用できる状態にする仕組みが重要です。

本記事では、Snowflakeのデータを分析ツールへ連携し、マーケティング活用につなげる方法を実際の設定手順をもとに解説します。今回は一例として、SnowflakeからAmplitudeという分析ツールへデータを取り込む手順を紹介します。

Snowflakeのデータを分析ツールに連携するメリット

Snowflakeにデータを蓄積していても、それだけではマーケティング施策に活かしきれないケースは少なくありません。その背景には、「データがある場所」と「使う場所」が分かれている構造があります。

  • Snowflake:データが蓄積される場所(基盤)
  • 分析ツール(Amplitude):マーケターが活用する場所(現場)

Snowflake単体でもデータ分析は可能ですが、基本的にはSQLによる操作が前提となるため、マーケティング担当者が日常的に活用するにはハードルがあります。

こうした分断を解消するのが、Snowflakeと分析ツールのデータ連携です。

この連携により、データウェアハウスに蓄積されたリッチなデータを、マーケティング担当者が普段使っている分析ツール上で扱えるようになり、自ら分析や施策に活かせるようになります。

SnowflakeからAmplitudeへデータ連携する流れ

SnowflakeからAmplitudeへデータを取り込む手順は、大きく3つに分かれます。

  1. Snowflake認証情報の設定
  2. データ取り込みの設定
  3. 取り込み完了後の確認

詳しく手順を解説していきます!

1. Snowflake認証情報を設定する

まずは、Amplitude側からSnowflakeへ接続するための設定を行います。
Amplitude Dataコンソール画面のサイドメニュー「データ」→「カタログ」に進み、データウェアハウスとしてSnowflakeを選択します。

Snowflake データ連携 Amplitude

設定時には、以下の情報を入力します。

Snowflake データ連携 Amplitude
  • アカウント識別子:Snowflakeのアカウント名
  • 倉庫:取り込みに使用するウェアハウス名
  • データベース:取り込みに使用するデータベース名
  • 役割:Amplitudeが対象のテーブルにアクセスするために、作成したユーザーに割り当てるロール (ロール名は“AMPLITUDE”が推奨されている)
  • ユーザー: AmplitudeがSnowflakeにアクセスする際に使用するユーザー名
  • キーペア:上記ユーザーのキーペア

入力後、接続に必要なクエリが自動生成されます。

Snowflake データ連携 Amplitude

生成されたクエリをコピー、Snowflake側で実行することで、連携に必要なリソースを準備できます。

Snowflake データ連携 Amplitude

※すでに同様の設定が存在する場合は、新規作成せず既存のリソースを利用することも可能です。

Snowflake側の作業後、Amplitude画面で「次へ」をクリックし、接続テストを行います。
成功のログが表示されたら、Snowflakeの認証設定は完了です。

Snowflake データ連携 Amplitude

2. データ取り込みの設定

次に、Snowflake側でAmplitudeへ送るためのテーブルを準備します。

2-1.カラムの構成例

「店舗で購入」というイベントを取り込む場合、以下のような設計が推奨されます。

Snowflake データ連携 Amplitude
  • user_id:ユーザーのID
  • time:実際の発生日時。タイムゾーンはUTC、UNIXエポックミリ秒(13桁)で指定
  • dt:差分取り込みの基準カラム。タイムスタンプ方式では前回取り込み済みの日時より新しいレコードのみを取り込みます。
  • event_type:Amplitude上のイベント名(例:店舗で購入)
  • event_properties:イベントに付随する詳細情報。取引コード、購入店舗、商品名などの詳細情報をJSON形式で格納
  • revenue / revenuetype:購入金額や購入種別。これらはAmplitudeの標準フィールドのため、独立したカラムにします

※今回は、Snowflake側ですでに計算済みの合計金額(レシート単位の考え方)を 「revenue」 カラムに格納しています。Amplitudeでは 「quantity(個数) × price(単価)」での個別の購買の形式での投入もサポートされていますが、シンプルな構成にするため合計額のみを扱っています。

この設計で特に重要なのは、どのカラムが何の役割を持つかを明確にすることです。

💡 insert_idの設定について

重複排除のためのinsert_idの設定を推奨します。
タイムスタンプ方式では、通信エラーなどで処理が途中で失敗し、再実行が発生した場合、同じデータが2回送られてしまい、売上やイベント数が二重にカウントされるリスクがあります。

カラムにinsert_idを設定しておくことで、Amplitudeが同じinsert_idを持つイベントを重複として検知し、1件のみ記録します。


設定例
user_id と time を結合した値が一般的

MD5(CONCAT(user_id, time, event_type, event_properties::STRING)) AS "insert_id"

2-2.データの種類と連携方法の設定

続いて、取り込むデータの種類と、連携方法を設定していきます。
今回は「店舗で購入」というイベントを「タイムスタンプ方式」で連携していきますが、他には以下のようなデータ種類と連携方法を選択することが可能です。

連携できるデータの種類

  • イベント:ユーザーIDに紐づく「いつ・誰が・何をしたか」という具体的な行動ログ
  • ユーザープロパティ:居住地や会員ランクなど、ユーザー自身に付随する属性情報
  • グループプロパティ:会社単位やプロジェクト単位など、特定の集団全体に適用される属性
  • プロフィール:ユーザーIDに紐づく最新のプロファイル情報
Snowflake データ連携 Amplitude

選択できる連携方法

  • ミラーリング同期:Snowflakeを「正」とし、追加・更新・削除を完全に同期
  • 同期のみを追加:データベースへの新規挿入(INSERT)のみを検知して連携
  • タイムスタンプ:指定した日時カラムを基準に、最新のレコードのみを差分抽出して連携

※ミラーリング同期は、Amplitude側が自動で行う「情報の穴埋め(エンリッチメント)」が無効となります。

本記事では、タイムスタンプ方式で検証しました。最新の行を差分で取り込む方式で、定期バッチ運用との相性がよい方法です。

Snowflake データ連携 Amplitude

2-3.SQLを作成しマッピングを設定する

データタイプと取り込み方法を選択した後は、Snowflakeのテーブルから必要なデータを取得するSQLを作成し、各カラムをAmplitude側の項目へマッピングしていきます。

Snowflake データ連携 Amplitude

SELECT 文を用い、Snowflakeのカラム名をAmplitudeが認識できる項目名(例:AS “event_type”)に変換して定義します 。

※データタイプごとに必要なフィールドが異なるため、取り込む目的に応じてどのフィールドが必須かを事前に確認しておく必要があります。


最新のユーザー属性をイベントに紐付ける場合は「ユーザープロパティの同期」をONにします。詳細な設定については以下の注意点を参照してください。

💡詳細な設定について

ユーザープロパティの同期:ONの場合
・イベントに付随するユーザープロパティは、最新のユーザープロパティとしてデータベースに保存され、ユーザープロファイルにも反映される
・イベントに付随しないユーザープロパティは、データベースから最新の値を取得し、イベントにリンクされる


ユーザープロパティの同期:OFFの場合
・イベントに付随するユーザープロパティはイベントのみにリンクされ、データベース上の最新値には変更されない
・ユーザープロファイルの値は変更されない
・イベントに付随しないユーザープロパティはイベントにリンクされず、データベースからも参照されない

Snowflake データ連携 Amplitude

SQLとマッピングの設定が終わったら、「テストSQL」を実行し、取得データのプレビューを確認します。ここで、イベント名、時刻、プロパティの形、数値項目などが想定通りに表示されているかをチェックします。

2-4.取り込みスケジュールを設定する

問題がなければ、接続名と取り込み頻度を設定して保存します。

Snowflake データ連携 Amplitude

取り込みスケジュールは最短5分から最長1か月まで設定可能です。設定完了後、初回取り込みは即時開始されます。

3.取り込み完了後の確認

データの取り込み完了後は、以下の画面で、必ず正しく反映されているか確認しましょう。

各種ステータスや詳細の確認

Snowflake データ連携 Amplitude

Amplitudeチャート上でのデータ確認

Snowflake データ連携 Amplitude

Snowflake側の値と、取り込まれたデータの突合

Snowflake データ連携 Amplitude

データ連携のポイント:分析に使える設計になっているかが重要

ここまで見てきたように、SnowflakeからAmplitudeへの連携は、単にデータを移すだけの作業ではありません。重要なのは、あとで分析や施策に使いやすい形でイベントとプロパティを設計することです。

たとえば、次のような観点は事前に考えておく必要があります。

  • どのイベントを分析したいのか
  • イベント名は誰が見ても意味がわかるか
  • どの属性をevent_propertiesとして持たせるべきか
  • 売上や購買種別など、標準項目で持つべきものは何か
  • 重複排除や差分取り込みのルールは適切か

関連記事:活用から逆算するデータウェアハウス(DWH)構築完全ガイド

まとめ:Snowflakeをデータ活用基盤につなげる

Snowflakeを活用している企業は多い一方で、「マーケティング施策に十分活かせていない」という課題はよく聞かれます。

Snowflakeに蓄積された「購買データ」「会員属性」「行動データ」を分析ツール(例:Amplitude)と連携することで、エンジニアリングスキルがないメンバーでも、これらのデータを横断的かつ実践的に分析できるようになります。

単にデータを移すことではなく、「何をどう分析したいか」から逆算して設計することがとても重要です。

DearOneでは、マーケティング活用を見据えたより実用的なデータ基盤作りをご支援しています。
「既存の基盤のデータをマーケティングに活用したい」
「マーケティング活用のための、データ設計をしたい」

といった課題をお持ちの方は、ぜひお気軽にご相談ください。

Recommended