すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:MaxCompute を使用した e コマース向けファネル分析

最終更新日:Apr 28, 2026

このトピックでは、MaxCompute を使用してオフラインコンピューティングを行い、Quick BI を使用して e コマース シナリオ向けのファネル モデルを作成する方法について説明します。

背景情報

ファネル モデルは、コンバージョン レートを使用してプロダクトのパフォーマンスを測定します。各ステップでのコンバージョンを追跡することで、ユーザーがどこで離脱しているかを特定し、継続的なプロダクトの最適化を可能にします。e コマースでは、このモデルにより、商品の閲覧から注文完了までのユーザーの購買ジャーニーを可視化できます。このトピックでは、このジャーニーに対してファネル分析を実行し、その結果を可視化する方法を紹介します。

前提条件

操作手順

  1. Simple Log Service を使用してログデータを収集します。

    Simple Log Service を使用したログデータの収集方法の詳細については、「データ収集の概要」をご参照ください。このトピックではサンプルデータを使用します。サンプルデータをダウンロードするには、TestData をクリックしてください。

  2. MaxCompute を使用してオフラインコンピューティングのデータモデルを構築します。

    1. DataWorks DataStudio で、次の SQL ステートメントを実行して、ods_user_trace_data という名前のオペレーショナルデータストア (ODS) テーブルを作成します。

      -- dt 列に基づき、テーブルを日単位でパーティション化します。
      CREATE TABLE IF NOT EXISTS ods_user_trace_data
      (
          md5                     STRING COMMENT 'ユーザー ID (UID) の MD5 ハッシュの先頭 8 文字。',
          uid                     STRING COMMENT 'ユーザー ID (UID)。',
          ts                      BIGINT COMMENT 'ユーザー操作のタイムスタンプ。',
          ip                      STRING COMMENT 'IP アドレス。',
          status                  BIGINT COMMENT 'サーバーが返す状態コード。',
          bytes                   BIGINT COMMENT 'クライアントに返されるバイト数。',
          device_brand            STRING COMMENT 'デバイスブランド。',
          system_type             STRING COMMENT 'オペレーティングシステム(例:Android、iOS、iPad、Windows Phone)。',
          customize_event         STRING COMMENT 'カスタムイベント(例:ログイン、ログアウト、購入、登録、クリック、バックグラウンド、ユーザー切り替え、閲覧、コメント)。',
          use_time                BIGINT COMMENT '単一アプリセッションの持続時間。このフィールドは、ログアウト、バックグラウンド、ユーザー切り替えイベントに対して記録されます。',
          customize_event_content STRING COMMENT 'ユーザーが操作したコンテンツに関する情報。この列は、閲覧およびコメントイベントに対して含まれます。'
      ) 
      PARTITIONED BY
      (
          dt STRING  
      );
      説明
    2. 次のコマンドを実行して、ods_user_trace_data テーブルにパーティションを追加します。

      ALTER TABLE ods_user_trace_data ADD PARTITION (dt=${bdp.system.bizdate});
    3. 収集したログデータを MaxCompute に移行します。

      収集したログデータを MaxCompute に移行する方法の詳細については、「ログデータを MaxCompute に移行する」をご参照ください。

    4. DataWorks DataStudio で、次の SQL ステートメントを実行して、dw_user_trace_data という名前のデータウェアハウスの詳細 (DWD) テーブルを作成します。

      -- dt 列に基づき、テーブルを日単位でパーティション化します。
      CREATE TABLE IF NOT EXISTS dw_user_trace_data
      (
          uid                     STRING COMMENT 'ユーザー ID (UID)。',
          device_brand            STRING COMMENT 'デバイスブランド。',
          system_type             STRING COMMENT 'オペレーティングシステム(例:Android、iOS、iPad、Windows Phone)。',
          customize_event         STRING COMMENT 'カスタムイベント(例:ログイン、ログアウト、購入、登録、クリック、バックグラウンド、ユーザー切り替え、閲覧、コメント)。',
          use_time                BIGINT COMMENT '単一アプリセッションの持続時間。このフィールドは、ログアウト、バックグラウンド、ユーザー切り替えイベントに対して記録されます。',
          customize_event_content STRING COMMENT 'ユーザーが操作したコンテンツに関する情報。この列は、閲覧およびコメントイベントに対して含まれます。'
      ) 
      PARTITIONED BY
      (
          dt STRING 
      );
      説明

      DWD の詳細については、「データウェアハウスの詳細 (DWD)」をご参照ください。

    5. 次のコマンドを実行して、dw_user_trace_data テーブルにデータを挿入します。

      INSERT INTO dw_user_trace_data PARTITION (dt = '${bdp.system.bizdate}')
      SELECT  uid
              ,device_brand
              ,system_type
              ,customize_event
              ,use_time
              ,customize_event_content
      FROM    ods_user_trace_data
      WHERE   dt = '${bdp.system.bizdate}'
      ;
    6. DataWorks DataStudio で、次の SQL ステートメントを実行して、rpt_user_trace_data という名前のアプリケーションデータサービス (ADS) テーブルを作成します。

       -- dt 列に基づき、テーブルを日単位でパーティション化します。
      CREATE TABLE IF NOT EXISTS rpt_user_trace_data
      (
          browse      STRING COMMENT 'ページビュー数',
          click       STRING COMMENT 'クリック数',
          purchase    STRING COMMENT '購入数量',
          browse_rate STRING COMMENT 'クリックコンバージョンレート',
          click_rate  STRING COMMENT '購入コンバージョンレート'
      ) 
      PARTITIONED BY
      (
          dt STRING 
      );
      説明

      ADS の詳細については、「データウェアハウスのレイヤー構造」をご参照ください。

    7. DataWorks DataStudio で、次の SQL ステートメントを実行してビジネスロジックを記述します。

      INSERT OVERWRITE TABLE rpt_user_trace_data PARTITION (dt=${bdp.system.bizdate})
      SELECT browse AS "Page views"
            ,click AS "Clicks"
            ,purchase AS "Purchase quantity"
            ,concat(round((click/browse)*100,2),'%') AS "Click conversion rate"
            ,concat(round((purchase/click)*100,2),'%') AS "Purchase conversion rate" 
      FROM
      (SELECT dt,count(1) browse FROM dw_user_trace_data WHERE customize_event='browse' 
       AND dt = ${bdp.system.bizdate} GROUP BY dt) a
      LEFT JOIN
      (SELECT dt,count(1) click FROM dw_user_trace_data WHERE customize_event='click' 
       AND dt = ${bdp.system.bizdate} GROUP BY dt) b
      ON a.dt=b.dt
      LEFT JOIN
      (SELECT dt,count(1) purchase FROM dw_user_trace_data WHERE customize_event='purchase' 
      AND dt = ${bdp.system.bizdate} GROUP BY dt)c 
      ON  a.dt=c.dt 
      ;
      説明

      ユーザーのジャーニーは「閲覧 → クリック → 購入」となります。各ステップのコンバージョンレートは、次のステップに進んだユーザーの割合です。たとえば、クリックコンバージョンレートは、クリックしたユーザー数を閲覧したユーザー数で割った値です。

    8. rpt_user_trace_data テーブル内の計算結果を照会します。

      • サンプル SQL:

        SELECT * FROM rpt_user_trace_data WHERE dt='20231126';
      • 照会結果:

        +------------+------------+------------+-------------+------------+------------+
        | browse     | click      | purchase   | browse_rate | click_rate | dt         |
        +------------+------------+------------+-------------+------------+------------+
        | 35         | 16         | 2          | 45.71%      | 12.5%      | 20231126   |
        +------------+------------+------------+-------------+------------+------------+
  3. データを可視化します。

    Quick BI を使用してダッシュボードを作成し、ファネル分析の結果を可視化します。詳細については、「クラウドデータソース MaxCompute の追加」および「じょうごグラフ」をご参照ください。

    重要
    • Quick BI でデータセットを作成する際は、まず MaxCompute プロジェクトで 3 階層モデルが有効になっているかどうかを確認し、それに応じてデータセットを作成してください。

      MaxCompute では、setproject; コマンドを実行して、プロジェクトプロパティ内の odps.namespace.schema パラメーターの値を確認できます。

      • 値が true の場合、プロジェクトで 3 階層モデルが有効になっています。この場合、Quick BI は MaxCompute の 3 階層モデルを公式にサポートしていないため、カスタム SQL を使用してデータセットを作成する必要があります。フィールドをドラッグしてデータセットを作成すると、内部で生成される SQL により「table not found」エラーが発生します。

      • 値が false の場合、3 階層モデルは有効になっていません。カスタム SQL を使用するか、フィールドをドラッグしてデータセットを作成できます。

    • 以下のじょうごグラフを生成するには、テーブルオブジェクトが ods_user_trace_data であるデータセットを選択し、customize_event フィールドを じょうごレイヤー / ディメンション として使用する必要があります。

    image.png