For AI agents: the complete documentation index is available at https://docs.dataplatform.ovh.net/ja/llms.txt, the full documentation bundle is available at https://docs.dataplatform.ovh.net/ja/llms-full.txt, and this page is available as Markdown at https://docs.dataplatform.ovh.net/ja/tutorials-ecommerce-sales-superset-dashboard.md.
  • 🇯🇵 日本語
  • オンラインストアの販売ダッシュボードをSupersetで構築する

    このガイドでは、オンラインストアのクリーンな注文行をSupersetダッシュボードに変換する方法を説明します

    目的

    このガイドでは、オンラインストアのクリーンな注文行をSupersetダッシュボードに変換する方法を説明します。主要な指標、時間を通じた収益、ベストセラー商品、国別の販売、顧客ロイヤルティなどです。

    これは、オンラインストアの注文を販売ダッシュボードに準備するの第二部です。SupersetはTrinoを通じてLakehouseにクエリを実行するため、このページのすべてのSQLはTrino方言です。

    必要条件

    このガイドに従うには、以下が必要です。

    • プロジェクトのデータセットdefault_dataset内のテーブルonline_retail_ii_clean、これは第一部のクリーンアップカスタムアクションによって生成されます。
    • プロジェクトに接続されたApache Supersetアプリケーション。まだデプロイしていない場合は、Apache Supersetのデプロイに従ってください。
    • 第一部のステップ6で作成されたSupersetデータセットonline_retail_ii_clean。

    構築するもの

    この部分の終了時、ダッシュボードは次のようになります。

    Supersetの完成したオンラインストア販売ダッシュボード、主要な指標行と顧客タブが開いている
    セクション内容
    主要な指標4つのタイル:純収益、注文、平均注文額、顧客
    時間タブ月別の純収益、年別の季節性
    商品タブ収益上位10商品、販売単位上位10商品
    地理タブイギリス対世界の残り、イギリス以外の上位10か国、世界地図
    顧客タブ3つのロイヤルティタイル、購入頻度、最近のセグメント、購入間の日数

    各チャートはSupersetで同じ手順に従います:チャート > + チャート、データセットとチャートタイプを選択し、設定を入力し、チャートを作成をクリックし、名前を保存します。ダッシュボードに追加は空白のままにしてください。ダッシュボードを作成し、ステップ8でチャートを追加します。

    Info

    注意: 金額はポンドスターリングです。すべての金額について、カスタマイズタブで通貨形式をGBPにPrefix位置で設定し、値が£18.9Mと読まれるようにします。18.9M £ではありません。

    指示

    ステップ1:SQL Labで顧客データセットを作成する

    顧客チャートは、注文行から計算できない1人1人または再訪問ごとに1行が必要です。これらの行を2つのクエリで1回準備し、仮想データセットとして保存します。

    仮想データセットcustomer_summaryを作成する

    1. SQL > SQL Labを開きます。
    2. データベースとスキーマdefault_datasetを選択します。
    3. 下記のクエリを貼り付け、実行をクリックします。
    4. クエリツールバーでデータセットを保存または上書きアイコンをクリックし、データセットをcustomer_summaryとして保存します。
    WITH purchase_days AS (
        SELECT DISTINCT customer_id, CAST(invoicedate AS DATE) AS purchase_day
        FROM default_dataset.online_retail_ii_clean
        WHERE customer_id IS NOT NULL
          AND invoice NOT LIKE 'C%'
    ),
    customers AS (
        SELECT
            customer_id,
            COUNT(*)          AS purchase_days,
            MIN(purchase_day) AS first_purchase,
            MAX(purchase_day) AS last_purchase
        FROM purchase_days
        GROUP BY customer_id
    )
    SELECT
        customer_id,
        purchase_days,
        LEAST(purchase_days, 10)                                   AS purchase_days_capped,
        CASE WHEN purchase_days >= 2 THEN 1 ELSE 0 END             AS is_repeat,
        first_purchase,
        last_purchase,
        date_diff('day', last_purchase, DATE '2011-12-09')         AS days_since_last_purchase,
        CASE
            WHEN date_diff('day', last_purchase, DATE '2011-12-09') <= 90  THEN '1. Active (90 days)'
            WHEN date_diff('day', last_purchase, DATE '2011-12-09') <= 180 THEN '2. At risk (91 to 180 days)'
            WHEN date_diff('day', last_purchase, DATE '2011-12-09') <= 365 THEN '3. Lapsed (181 to 365 days)'
            ELSE '4. Lost (over a year)'
        END                                                        AS recency_segment
    FROM customers

    結果は、1人1人の顧客ごとに1行になります:5,852行。

    SQL Labでcustomer_summaryクエリ、クエリツールバーのデータセットを保存または上書きアイコン、および5.85kの結果行の最初

    仮想データセットpurchase_intervalsを作成する

    下記のクエリで同じ手順を繰り返し、purchase_intervalsとして保存します。

    WITH purchase_days AS (
        SELECT DISTINCT customer_id, CAST(invoicedate AS DATE) AS purchase_day
        FROM default_dataset.online_retail_ii_clean
        WHERE customer_id IS NOT NULL
          AND invoice NOT LIKE 'C%'
    ),
    with_previous AS (
        SELECT
            customer_id,
            purchase_day,
            lag(purchase_day) OVER (PARTITION BY customer_id ORDER BY purchase_day) AS previous_purchase
        FROM purchase_days
    )
    SELECT
        customer_id,
        purchase_day,
        date_diff('day', previous_purchase, purchase_day) AS days_since_previous_purchase
    FROM with_previous
    WHERE previous_purchase IS NOT NULL

    結果は、再訪問ごとに1行になります:27,026行。

    Info

    注意: SQL Labでは、最初にスキーマを選択してください。スキーマがないと、TrinoはSchema must be specified when session schema is not setを返します。上記のクエリのようにテーブルにプレフィックスを付けることもできます: default_dataset.online_retail_ii_clean。

    ステップ2:online_retail_ii_cleanに計算列を追加する

    データセットを開き、online_retail_ii_cleanを編集し、計算列タブに移動します。下記の各列について、項目を追加をクリックし、名前とSQL式を入力します。revenueから始めます。これはより簡単です。両方の列が追加されたら保存をクリックします。

    Supersetデータセットリストでonline_retail_ii_clean、2つの仮想データセット、およびonline_retail_ii_cleanの編集アイコン

    revenueを追加する

    設定値
    列名revenue
    SQL式quantity * price

    revenueは各注文行の金額です。キャンセルには負の数量があり、その収益は負になります。そのため、純収益が得られます。ダッシュボードのすべての金額はこの列に基づいて構築されています。

    online_retail_ii_cleanの計算列タブでrevenue列とそのSQL式quantity * price

    country_codeを追加する

    設定値
    列名country_code
    SQL式下記の式

    country_codeは国名をISO 3166-1 alpha-3コードに変換し、世界地図用です:

    CASE country
        WHEN 'United Kingdom'       THEN 'GBR'
        WHEN 'EIRE'                 THEN 'IRL'
        WHEN 'Germany'              THEN 'DEU'
        WHEN 'France'               THEN 'FRA'
        WHEN 'Netherlands'          THEN 'NLD'
        WHEN 'Spain'                THEN 'ESP'
        WHEN 'Switzerland'          THEN 'CHE'
        WHEN 'Belgium'              THEN 'BEL'
        WHEN 'Portugal'             THEN 'PRT'
        WHEN 'Australia'            THEN 'AUS'
        WHEN 'Italy'                THEN 'ITA'
        WHEN 'Norway'               THEN 'NOR'
        WHEN 'Sweden'               THEN 'SWE'
        WHEN 'Cyprus'               THEN 'CYP'
        WHEN 'Finland'              THEN 'FIN'
        WHEN 'Austria'              THEN 'AUT'
        WHEN 'Denmark'              THEN 'DNK'
        WHEN 'Greece'               THEN 'GRC'
        WHEN 'Japan'                THEN 'JPN'
        WHEN 'USA'                  THEN 'USA'
        WHEN 'Poland'               THEN 'POL'
        WHEN 'United Arab Emirates' THEN 'ARE'
        WHEN 'Israel'               THEN 'ISR'
        WHEN 'Hong Kong'            THEN 'HKG'
        WHEN 'Singapore'            THEN 'SGP'
        WHEN 'Malta'                THEN 'MLT'
        WHEN 'Iceland'              THEN 'ISL'
        WHEN 'Canada'               THEN 'CAN'
        WHEN 'Lithuania'            THEN 'LTU'
        WHEN 'RSA'                  THEN 'ZAF'
        WHEN 'Bahrain'              THEN 'BHR'
        WHEN 'Brazil'               THEN 'BRA'
        WHEN 'Thailand'             THEN 'THA'
        WHEN 'Korea'                THEN 'KOR'
        WHEN 'Lebanon'              THEN 'LBN'
        WHEN 'Bermuda'              THEN 'BMU'
        WHEN 'Nigeria'              THEN 'NGA'
        WHEN 'Czech Republic'       THEN 'CZE'
        WHEN 'Saudi Arabia'         THEN 'SAU'
        ELSE NULL
    END

    ステップ3:主要指標を構築する

    4つのタイルはデータセットonline_retail_ii_cleanとチャートタイプBig Numberを使用します。

    純収益

    設定値
    メトリックSUM(revenue)
    数値形式SMART_NUMBER
    通貨形式GBP, 接頭辞
    サブヘッダーafter cancellations

    予想値: £18.9M。

    Net revenue Big Number chart with the metric SUM(revenue), showing £18.9M

    注文

    設定値
    メトリックSimpleタブ: 列invoice, 集約COUNT_DISTINCT
    フィルターCustom SQL: invoice NOT LIKE 'C%'
    数値形式SMART_NUMBER

    予想値: 39.5k。

    The Orders Big Number chart with the metric COUNT_DISTINCT(invoice) and the filter invoice NOT LIKE 'C%', showing 39.5k

    平均注文額

    設定値
    メトリックCustom SQL: SUM(revenue) / COUNT(DISTINCT invoice)
    フィルターCustom SQL: invoice NOT LIKE 'C%'
    数値形式,.2f
    通貨形式GBP, 接頭辞
    サブヘッダーsale invoices, before cancellations

    予想値: £497.08。

    The Average order value Big Number chart with its Custom SQL metric and the sale invoice filter, showing £497.08
    Warning

    平均注文額にAVG(revenue)を使用しないでください。これは注文行の平均金額を返し、約£18.53を返し、注文の平均を返しません。

    顧客

    設定値
    メトリックSimpleタブ: 列customer_id, 集約COUNT_DISTINCT
    数値形式SMART_NUMBER
    サブヘッダーidentified customers

    予想値: 5.88k。

    The Customers Big Number chart with the metric COUNT_DISTINCT(customer_id), showing 5.88k

    ステップ4:Timeタブを構築する

    月別純収益

    設定値
    データセットonline_retail_ii_clean
    チャートタイプLine ChartまたはArea Chart
    X軸invoicedate
    時間粒度Month
    メトリックSUM(revenue)
    通貨形式GBP, 接頭辞
    The Net revenue by month line chart from December 2009 to December 2011, with a peak each November

    年別季節性

    設定値
    データセットonline_retail_ii_clean
    チャートタイプArea Chart
    X軸Custom SQL: date_format(invoicedate, '%m - %M'), ラベルmonth
    次元Custom SQL: CAST(year(invoicedate) AS VARCHAR), ラベルYEAR
    メトリックSUM(revenue)
    通貨形式GBP, 接頭辞

    各ラベルの先頭の月番号は、1月から12月までの順序を保ちます。

    The Seasonality by year chart with one series per year, from January to December

    ステップ5:Productsタブを構築する

    両方のチャートはデータセットonline_retail_ii_cleanとチャートタイプTableを使用します。クリーンアップアクションにより、各在庫コードに1つの説明が与えられ、製品が2回表示されることはありません。

    売上高上位10製品

    設定値
    次元stockcode, description
    メトリックSUM(revenue), 名前を変更total
    行制限10
    ソート順total, 降順

    カスタマイズタブで、条件付き書式設定の下にルールを追加します:

    設定値
    列total
    カラースキームsuccess
    カラータイプ背景色
    グラデーションを使用するはい
    The Top 10 products by revenue table, with a green gradient on the total column

    売上数量上位10製品

    設定値
    次元stockcode, description
    メトリックSUM(quantity), 名前を変更quantity
    行制限10
    ソート順quantity, 降順

    前の表と同じ条件付き書式設定をquantity列に適用します。並べて配置すると、2つの表は、最大の数量で販売された製品が最も多くの収益を生み出す製品ではないことを示します。

    The Top 10 products by units sold table, with a green gradient on the quantity column

    ステップ6:Geographyタブを構築する

    イギリス対世界の残り

    設定値
    データセットonline_retail_ii_clean
    チャートタイプPie ChartでDonutを有効にします
    次元Custom SQL: CASE WHEN country = 'United Kingdom' THEN 'United Kingdom' ELSE 'Rest of world' END
    メトリックSUM(revenue)
    ラベルタイプCategory and Percentage
    The United Kingdom vs rest of world donut chart, with the United Kingdom at 85.43% of revenue

    イギリス以外の上位10か国

    設定値
    データセットonline_retail_ii_clean
    チャートタイプPie Chart
    次元country
    メトリックSUM(revenue)
    フィルターCustom SQL: country <> 'United Kingdom'
    行制限10
    ラベルタイプCategory and Percentage
    The Top 10 countries outside the United Kingdom pie chart, led by EIRE, the Netherlands and Germany

    国別収益

    設定値
    データセットonline_retail_ii_clean
    チャートタイプWorld Map
    国列country_code
    国フィールドタイプISO 3166-1 alpha-3 (cca3)
    メトリックSUM(revenue)
    The Revenue by country world map with the countries of the store's customers colored

    ステップ7:Customersタブを構築する

    これらのチャートは、2009年12月から2011年12月までの特定された顧客と販売請求書をカバーしています。リセンスは2011年12月9日、データの最後の日から測定されます。顧客が戻ってくるのは、別の日に購入したときです。同じ日の複数の請求書は1回の購入としてカウントされます。

    リピート顧客率

    設定値
    データセットcustomer_summary
    チャートタイプBig Number
    メトリックCustom SQL: AVG(is_repeat)
    数値形式.1%
    サブヘッダーcustomers with two purchases or more

    予想値: 71.4%。

    The Repeat customer rate Big Number chart with the metric AVG(is_repeat), showing 71.4%

    顧客ごとの中央値購入回数

    設定値
    データセットcustomer_summary
    チャートタイプBig Number
    メトリックCustom SQL: approx_percentile(purchase_days, 0.5)
    数値形式.0f
    サブヘッダーpurchases per customer

    予想値: 3。

    The Median purchases per customer Big Number chart, showing 3

    購入間の中央値日数

    設定値
    データセットpurchase_intervals
    チャートタイプBig Number
    メトリックCustom SQL: approx_percentile(days_since_previous_purchase, 0.5)
    数値形式.0f
    サブヘッダーdays, across all return visits

    予想値: 32。

    The Median days between purchases Big Number chart, showing 32

    購入回数別顧客

    設定値
    データセットcustomer_summary
    チャートタイプBar Chart
    X軸purchase_days_capped
    メトリックCOUNT(*)
    X軸タイトルPurchases (10 = 10 or more)
    Y軸タイトルCustomers

    バーが不均等に配置されている場合、X軸で強制カテゴリを有効にします。

    The Customers by number of purchases bar chart, from 1 to 10 purchases

    リセンス別顧客

    設定値
    データセットcustomer_summary
    チャートタイプBar Chart
    X軸recency_segment
    メトリックCOUNT(*)

    4つのバーは5,852人の顧客に加算されます。各セグメントの先頭の数字は、アクティブからロストの順序を保ちます。

    The Customers by recency bar chart with its four segments, from active to lost

    購入間の日数

    設定値
    データセットpurchase_intervals
    チャートタイプHistogram
    列days_since_previous_purchase
    フィルターdays_since_previous_purchase <= 365
    ビン10
    正規化有効

    フィルターは、軸を伸ばし、他のすべてのバーを左に押し込む1年以上後のまれなリターンを除外します。

    The Days between purchases histogram, normalized, with 10 bins up to 365 days

    ステップ8:ダッシュボードを作成して組み立てる

    1. ダッシュボードを開き、+ ダッシュボードをクリックします。新しいダッシュボードは編集モードで開きます。
    2. タイトルをクリックし、Online store salesにリネームします。
    3. ヘッダーKey figuresを追加し、右パネルの4つの主要指標タイルをドラッグして1行に配置します。
    4. ヘッダーTrends and breakdownsを追加し、4つのタブでタブコンポーネントを追加します: Customers, Time, ProductsおよびGeography。
    5. 右パネルの他のチャートをそれぞれのタブにドラッグします。顧客タブでは、3つのタイルを1行に配置し、2つのバーチャートを並べて配置し、ヒストグラムをフル幅に配置します。
    6. 保存をクリックします。

    何を達成したか

    オンラインストアのマネージャーの質問に答えるダッシュボードを作成しました。その質問とは、店舗がどれだけ売上を上げ、どれだけの顧客に販売しているか、売上が一年間どのように進化するか、どの製品や国が重要か、顧客がどのくらいの頻度で戻ってくるかです。

    ここから、country または日付範囲にダッシュボードフィルターを追加するか、または同じパイプラインを自分の注文データに適用できます。Data Platformを基盤とした別のSupersetダッシュボードについては、FOCUSとApache Supersetのユースケースを参照してください。

    さらに学ぶ

    当社のソリューションの実装に関するトレーニングや技術支援が必要な場合は、営業担当者にお問い合わせください、またはプロフェッショナルサービスページをご覧ください。見積もりをリクエストし、専門家チームがプロジェクトを分析してください。

    質問をする、フィードバックを提供し、Data Platformを構築するチームと直接交流するには、専用のDiscordチャネルにアクセスしてください。

    OVHcloudサービスについてサポートが必要な場合は、ヘルプセンターでリクエストを作成してください。

    ユーザーコミュニティに参加してください。