メインコンテンツまでスキップ

AIS データウェアハウスのサンプルクエリ

Last updated on February 4, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要

この記事には、ゲームマッチメイキング、プレイヤー、注文、ロビーなど、AccelByte Intelligence Service(AIS)データウェアハウスから有用なインサイトを取得するためのサンプルクエリが含まれています。必要なインサイトを得るために、これらのサンプルを試してみることをお勧めします。

注記

AIS データウェアハウスの可能性は無限です。お客様の環境や運用ニーズに合わせて、クエリを探索し実験することをお勧めします。サポートやアドバイスが必要な場合は、AccelByte サポートチームにお問い合わせください。

前提条件

ユーザーアクティビティに関するインサイトの取得

プレイヤーアクティビティに関する包括的なインサイトを得るために、AIS データウェアハウスには、簡単にクエリできるように設計されたアクセス可能なサマリーテーブルが用意されています。データは、時間単位、日単位、週単位、月単位を含む時間間隔で分類されています。さらに、これらのテーブルは、ユーザーの重要なアクションを含む、さまざまなアクティビティを示しています。

これらは、時間単位アクティブユーザー、日単位アクティブユーザー数、週単位アクティブユーザー、月単位アクティブユーザー、平均時間単位アクティブユーザー、ピーク時間単位アクティブユーザーを取得するのに役立つ、集計データおよびクエリ対応テーブルです。

  • bd_activity_type_t: Agreement、Entitlement、Fulfillment、Order、Payment、Auth、Ban、New User、Wallet などの絶対的なアクティビティタイプで構成されています。
  • bd_daily_count_t: 個別のユーザーアクティビティの日次カウント(DAU、WAU、MAU、AHAU(1日の平均)、PHAU(1日の最大 HAU))が含まれています。
  • bd_hourly_count_t: 個別のユーザーアクティビティタイプの時間単位カウントが含まれています。

特定のタイプのアクティビティのサンプルを代表として提供します。利用可能なタイプを理解し、他のタイプで独自に実験を行うには、bd_activity_type_t の詳細をご覧ください。

日次、週次、月次のユーザーアクティビティの取得

日次、週次、月次のユーザーアクティビティに関するインサイトを取得するには、bd_daily_count_tnamespace_tstudio_t テーブルの組み合わせを使用します。

SELECT
bdct.*
FROM
bd_daily_count_t AS bdct
INNER JOIN
namespace_t AS nt ON nt.id = bdct.namespace_id
INNER JOIN
studio_t AS st ON st.id = nt.studio_id
WHERE
bdct.activity_type_id = '10' AND
bdct.day_ts BETWEEN '2024-01-01' AND '2024-01-31' AND
nt.is_production = TRUE AND
st.name = 'YourStudioName' AND
nt.name = 'YourNamespace';

上記のクエリは、2024-01-01 から 2024-01-31 までのユーザーアクティビティに関するインサイトを提供します。ただし、activity_type_id10 と定義しているため、クエリは New Users データのセットを表示します。

このクエリは、アクティビティタイプ、日、DAU、WAU、MAU、AHAU、PHAU に関する情報を提供します。

時間単位のユーザーアクティビティを取得するサンプルクエリ

時間単位のユーザーアクティビティに関するインサイトを取得するには、bd_hourly_count_tnamespace_tstudio_t テーブルの組み合わせを使用します。

SELECT
bhct.*
FROM
bd_hourly_count_t AS bhct
INNER JOIN
namespace_t AS nt ON nt.id = bhct.namespace_id
INNER JOIN
studio_t AS st ON st.id = nt.studio_id
WHERE
bhct.activity_type_id = '8' AND
DATE(bhct.hour_ts) = '2024-01-01' AND
nt.is_production = TRUE AND
st.name = 'yourStudioName' AND
nt.name = 'yourNamespace';

このクエリは、2024-01-01 の特定のユーザーアクティビティの 24 行を提供します。また、activity_type_id8 と定義しているため、その日の 24 時間のユーザー認証カウントが表示されます。

ユーザーの総数の取得

特定の namespace 内のユーザーの総数を取得するには、user_tnamespace_tstudio_t テーブルの組み合わせを使用します。

SELECT
count(ut.id) AS "Total Users"
FROM
user_t AS ut
INNER JOIN
namespace_t AS nt ON nt.id = ut.namespace_id
INNER JOIN
studio_t AS st ON st.id = nt.studio_id
WHERE
nt.is_production = TRUE AND
st.name = 'yourStudioName' AND
nt.name = 'yourNamespace';

マッチメイキングインサイトの取得

マッチメイキングセッションのインサイトを取得するには、以下のテーブルを使用してプレイヤーのマッチメイキングサマリーを取得できます。

  • bd_session_daily_t: 個別のマッチセッションとロビーセッションの日次カウントが含まれています。
  • bd_session_hourly_t: 個別のマッチセッションとロビーセッションの時間単位カウントが含まれています。

時間単位のマッチメイキングセッションの取得

マッチメイキングアクティビティの時間単位カウントを取得するには、bd_session_hourly_tnamespace_tstudio_t テーブルの組み合わせを使用します。

SELECT
bsht.*
FROM
bd_session_hourly_t AS bsht
INNER JOIN
namespace_t AS nt ON nt.id = bsht.namespace_id
INNER JOIN
studio_t AS st ON st.id = nt.studio_id
WHERE
DATE(bsht.ts_hr) = '2024-01-01' AND
nt.is_production = TRUE AND
st.name = 'yourStudioName' AND
nt.name = 'yourNamespace';

結果には、ロビーセッションとマッチセッションの時間単位カウントの 24 行が表示されます。

日次のマッチメイキングセッションとロビーの取得

マッチメイキングアクティビティの日次カウントを取得するには、bd_session_daily_tnamespace_tstudio_t テーブルの組み合わせを使用します。

SELECT
bsdt.*
FROM
bd_session_daily_t AS bsdt
INNER JOIN
namespace_t AS nt ON nt.id = bsdt.namespace_id
INNER JOIN
studio_t AS st ON st.id = nt.studio_id
WHERE
bsdt.day_ts >= '2024-01-01' AND bsdt.day_ts < '2024-02-01' AND
nt.is_production = TRUE AND
st.name = 'yourStudioName' AND
nt.name = 'yourNamespace';

結果には、1 か月間のロビーセッションとマッチセッションの日次カウントが表示されます。

週次のマッチメイキングセッションとロビーの取得

マッチメイキングアクティビティの週次カウントを取得するには、bd_session_daily_tnamespace_tstudio_t テーブルの組み合わせを使用します。

SELECT
bsdt.namespace_id,
EXTRACT(WEEK FROM bsdt.day_ts) AS week_number,
MIN(bsdt.day_ts) AS week_start_date,
MAX(bsdt.day_ts) AS week_end_date,
SUM(bsdt.match_session_count) AS match_session_count,
SUM(bsdt.lobby_session_count) AS lobby_session_count
FROM
bd_session_daily_t AS bsdt
INNER JOIN
namespace_t AS nt ON nt.id = bsdt.namespace_id
INNER JOIN
studio_t AS st ON st.id = nt.studio_id
WHERE
day_ts >= '2023-01-01' AND day_ts < '2024-01-01' AND
nt.is_production = TRUE AND
st.name = 'yourStudioName' AND
nt.name = 'yourNamespace'
GROUP BY
bsdt.namespace_id,
EXTRACT(WEEK FROM bsdt.day_ts)
ORDER BY
week_number;

結果には、2023 年のロビーセッションとマッチセッションの週次カウントが表示されます。

月次のマッチメイキングセッションとロビーの取得

マッチメイキングアクティビティの月次カウントを取得するには、bd_session_daily_tnamespace_tstudio_t テーブルの組み合わせを使用します。

SELECT
bsdt.namespace_id,
EXTRACT(MONTH FROM bsdt.day_ts) AS month_number,
MIN(bsdt.day_ts) AS month_start_date,
MAX(bsdt.day_ts) AS month_end_date,
SUM(bsdt.match_session_count) AS match_session_count,
SUM(bsdt.lobby_session_count) AS lobby_session_count
FROM
bd_session_daily_t AS bsdt
INNER JOIN
namespace_t AS nt ON nt.id = bsdt.namespace_id
INNER JOIN
studio_t AS st ON st.id = nt.studio_id
WHERE
day_ts >= '2023-01-01' AND day_ts < '2024-01-01' AND
nt.is_production = TRUE AND
st.name = 'yourStudioName' AND
nt.name = 'yourNamespace'
GROUP BY
bsdt.namespace_id,
EXTRACT(MONTH FROM bsdt.day_ts)
ORDER BY
month_number;

結果には、2023 年のロビーセッションとマッチセッションの月次カウントが表示されます。

E コマースインサイトの取得

AIS データウェアハウスには、アイテム、トランザクション、注文、エンタイトルメント、フルフィルメントなど、ゲーム内 E コマースデータを保持する多くのテーブルがあります。

最も人気のある注文アイテムを取得するサンプルクエリ

このクエリは、ゲーム内で最も頻繁に注文された上位 5 つのアイテムに関する全期間のインサイトを提供します。

SELECT
it.item_number AS "item_number",
ilt.title AS "item_title",
ist.item_status_name AS "item_status",
SUM(oit.qty) AS "quantity"
FROM item_t AS it
INNER JOIN
(
SELECT
ROW_NUMBER() OVER (
PARTITION BY ist.id ORDER BY ist.start_ts DESC
) AS "row_num",
ist.item_id AS "item_id",
istt.name AS "item_status_name"
FROM
item_status_t AS ist
INNER JOIN
item_status_type_t AS istt ON istt.id = ist.status_id
) AS ist ON it.id = ist.item_id AND ist.row_num = 1
INNER JOIN
item_localization_t AS ilt ON ilt.item_id = it.id
INNER JOIN
order_item_t AS oit ON oit.item_id = it.id
INNER JOIN
namespace_t AS nt ON nt.id = it.namespace_id
INNER JOIN
studio_t AS st ON st.id = nt.studio_id
WHERE
st.name = 'yourStudioName' AND
nt.name = 'yourNamespace'
GROUP BY
item_number, item_title, item_status
ORDER BY
quantity DESC
LIMIT 5;