mixpanelからS3にデータをエクスポートしてみた!

mixpanelのデータをAmazon S3にエクスポートするやり方教えちゃいます。
2023.09.27

ミックスパネラーの國崎です。
今回はmixpanelのデータをAmazon S3にエクスポートする手順を紹介します。

前提条件

  • S3にバケットは作成済み
  • mixpanelにデータは投入済み
  • mixpanelのサービスアカウントは作成済み
  • mixpanelでAnalyst以上の権限を持っている

あと今回の連携はmixpanelのデータパイプラインというオプションを使います。
こちらは有料のオプションになるのですが、trial枠もあるので今回の検証はtrial枠での活用例となります。

AWSコンソールでポリシーとロールの設定

今回S3ですでにバケットは作成済みの前提ですので、ポリシー作成から手順を紹介します。

ポリシーの作成

AWSコンソールのIAM>ポリシー>ポリシーを作成をクリック。
20230927mixpanel_s3_1

ビジュアルでS3を選択。
20230927mixpanel_s3_2

JSONで以下のコードを設定します。
BUCKET_NAMEには作成済みのバケット名を入れます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SomeSidYouChoose",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::<BUCKET_NAME>",
                "arn:aws:s3:::<BUCKET_NAME>/*"
            ]
        }
    ]
}

ポリシー名を決めたらポリシー作成は完了です。
20230927mixpanel_s3_3

ロールの設定

AWSコンソールのIAM>ロール>ロールを作成をクリック。
20230927mixpanel_s3_4

AWSアカウントを選択。
20230927mixpanel_s3_5

別のAWSアカウントにラジオボタンを合わせて485438090326を入力。
20230927mixpanel_s3_6

その下のユースケースはS3にします。
20230927mixpanel_s3_9

先ほど作成したポリシーを追加します。
20230927mixpanel_s3_7

ロール名を決めたらロールが作成されます。
20230927mixpanel_s3_8

作成したロールの信頼関係のタブをクリック。
20230927mixpanel_s3_10_v2

以下のJSONに置き換えます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::485438090326:user/mixpanel-export"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]
}

これでAWSコンソールの作業は終了です。

mixpanelでパイプラインの作成

mixpanelでパイプラインの作成をします。

パイプラインの以下リストからRAW AMAZON S3 PIPELINEを選択。
20230927mixpanel_s3_11

パイプラインには以下の項目があるのでそれぞれ入力します。

  • project_id(必須)…プロジェクトのID
  • type(必須)…s3-rawで固定
  • trial(必須)…トライアル枠か否か選択
  • data_source(必須)…eventsで固定
  • from_date(必須)…データ書き出しの起点日
  • to_date(任意)…いつまでのデータ書き出すか
  • frequency(必須)…データ書き出しの頻度
  • events(任意)…書き出すeventsのホワイトリスト
  • where(任意)…イベントのフィルター
  • data_format(必須)…JSONで固定
  • s3_bucket(必須)…書き出し先のバケット名
  • s3_region(必須)…書き出し先のリージョン
  • s3_role(必須)…今回設定したロール(例:arn:aws:iam:::role/example-s3-role)
  • s3_prefix(任意)…エクスポートのパスのプレフィックス
  • s3_encryption(任意)…s3 バケットによって使用される保存時の暗号化

今回は必須項目を入力して進めました。
上記入力後、ページ右上でサービスアカウントの指定をします。
20230927mixpanel_s3_12

補足ですがプロジェクトのIDやサービスアカウントはmixpanelのProject Settingsから確認できます。
20230927mixpanel_s3_13

パイプラインの項目とサービスアカウントの入力が終わったらサービスアカウントの下にあるTry It!をクリックし緑のアイコンが出たらデータのエクスポートが成功してます。
20230927mixpanel_s3_14

S3を確認

再びAWSコンソールに戻りS3のバケットを確認してみるとmixpanelのプロジェクトIDでフォルダが作成されていました。
20230927mixpanel_s3_15

リアルタイムでの確認はできていませんが、数分以内には作成されていたので連携が成功してから書き出しまでそんなに時間はかかっていないと思います。
実際の中身のデータも確認してみると無事イベントデータの書き出しがされていました。
20230927mixpanel_s3_16

データのエクスポートを止めるor削除する方法

今回連携したデータのエクスポートを止めたり削除するにはパイプラインの名前とプロジェクトIDが必要になってきます。

パイプラインの名前はmixpanelのIntegrationsから確認できます。
20230927mixpanel_s3_17

S3の項目のところに書いてあります。
20230927mixpanel_s3_18

このパイプライン名とパイプライン設定の時に使ったプロジェクトIDPause Pipeline/Deleate Pipelineに入力すればデータのエクスポートを止めたり削除したりできます。
20230927mixpanel_s3_19

以上がmixpanelとS3にデータをエクスポートする手順の紹介となります。
以下は今回参考にしたmixpanelの公式ドキュメントになりますので、他にも色々知りたい方はぜひご覧ください。

Mixpanel Amazon S3 Export

クラスメソッドが行っているmixpanelの支援

クラスメソッドではmixpanelをすでにお使いのお客様にも以下の支援サービスを提供しております。

  • PoC…検証環境提供
  • プランニング支援…KPI設計の支援/QA対応
  • 実装支援…開発の支援/SaaS連携支援
  • 伴走支援…定例など

mixpanelのKPI設計は以下記事でも紹介している専用の測定フレームワークを用いたプランニング支援をさせていただきます。

mixpanelの測定フレームワーク作り方のコツ!サンプルを例に解説!

また実装いただいた後の伴走支援では実際にお使いになられているお客様の課題感などをヒアリングさせていただき、ご要望に沿った内容での定例を設けさせていただき、成果につなげるための分析手法のご提案などをさせていただきます。

今回の記事を見てmixpanelについて詳細の話を聞きたい、興味を持ったという方はぜひぜひクラスメソッドまでお問い合わせください!!

クラスメソッドへのmixpanelお問い合わせ