はじめに
YooZoo Gamesは2009年に設立され、世界最大級のインタラクティブエンターテインメントプロバイダーの一つです。世界10カ国以上に拠点を持ち、ゲームの開発・パブリッシング、IP管理、データおよびAI技術、エンターテインメント業界への投資という4つの主要分野で事業を展開しています。

導入による効果
- ゲーム体験の向上
- ゲーム内課金収益の増加
- 顧客満足度の向上
- 新作ゲームの開発期間短縮
- データエンジニアリングコストの削減
StarRocksの主な特長
- 高性能・低レイテンシのクエリ
- リアルタイムデータ更新
- 高並列クエリ処理
- シンプルな運用とリニアなスケーラビリティ
- MySQLプロトコル互換
ゲーム業界におけるアナリティクスの重要性
ゲーム業界では、ストーリー展開の最適化、プレイヤーごとの個別体験、キャンペーンのスケーリング、収益化戦略の最適化において、データ分析が重要な役割を果たしています。さらに、営業・マーケティング、財務分析、不正検出、セキュリティといった業務領域でも、データ活用は不可欠です。
YooZoo Gamesが直面していた技術的課題
YooZoo Gamesの旧アナリティクス基盤は以下のような構成でした:
- PrestoとClickHouse:分単位や時間単位でのビジネス指標の計算に使用
- Spark StreamおよびApache Flink:Kafkaからデータを読み取り、リアルタイム指標を計算
- MySQL:レポートやダッシュボードシステムのバックエンドとして使用
- Apache HBase:インタラクティブクエリやタグ付けテーブルに使用、DataAPIを通じて他システムと連携
- Apache Hive:他コンポーネントへのメタデータ提供
これらのコンポーネントを組み合わせることで、YooZoo Gamesのアナリティクス基盤は構築されていましたが、このアプローチは決して完璧とは言えず、いくつかの課題が存在していました:
- 高い運用コスト:各コンポーネントを個別に管理する必要がある
- 高い開発コスト:異なる言語・ツールに対応する学習が必要
- 一貫性の課題:システム間でデータや計算結果がズレる可能性がある
- スケーラビリティの限界:MySQLでは多次元クエリの性能がデータ増加と共に低下
次世代OLAPレイヤーの選定
YooZoo Gamesはアナリティクス基盤の課題を解決するため、新たなOLAPプラットフォームの構築を決断。選定基準は以下の通りです:
- 高速なデータ取り込み:イベントデータは数秒以内にOLAPレイヤーへ取り込まれる必要がある
- 低レイテンシのクエリ:クエリの応答時間はミリ秒レベルであること
- 結合テーブルに対する高いクエリ性能
- 管理と拡張が容易であること
- 高い同時実行処理のサポート
- アプリケーション開発者にとって学習コストが低いこと
評価プロセスにおいて、YooZoo GamesはClickHouse、Apache Doris、そしてStarRocksを比較検討し、以下の結論に至りました:
- ClickHouseは保守が難しく、結合クエリのサポートが不十分である。
- パフォーマンス比較において、StarRocksはApache Dorisよりも優れた性能を示した。
評価結果に満足したYooZoo Gamesは、自社のビッグデータプラットフォームにおける次世代OLAPレイヤーとしてStarRocksを採用しました。
StarRocksの強み
- クエリ性能 - MPPアーキテクチャ、コストベースオプティマイザー、カラム型ストレージ、完全ベクトル化エンジンなどの技術により、StarRocksは他の技術と比較して大幅に優れたクエリ性能を発揮します。
- 多様なデータ取り込み方式 - データ構造やボリュームに応じて、Broker Load、Spark Load、Stream Load、Routine Load など複数のデータロード方式に対応。多くのケースではサードパーティのETLツールは不要です。
- シンプルな運用 - StarRocksはZooKeeperなどのサードパーティコンポーネントを必要とせず、クラスターの運用・拡張が容易です。
- 豊富なデータモデルのサポート - 明細データ、集計データ、更新、主キーによるモデルに加え、インテリジェントなマテリアライズドビューによって最適なクエリ性能を実現します。
- MySQLプロトコル対応 - 多くのBIダッシュボードやアプリケーションとの互換性があり、既存のツールをそのまま利用可能です。
- 外部テーブルのサポート - レイクハウスアーキテクチャにおける分析に不可欠であり、ベンダーロックインの回避にも貢献します。
StarRocksがYooZoo Gamesのアナリティクス体験をどう向上させたか
リアルタイム指標の計算
StarRocksの導入により、Flinkが担う処理は大幅に簡素化されました。具体的には、HBaseと連携してユーザーおよびロールのログイン情報を生成したり、ログファイルにタグを付与したり、IP情報を解決するといった軽量なETL処理のみに集中できるようになりました。初期処理を経たデータはKafkaとHiveに書き込まれ、最終的にStarRocks上で段階的に処理されます。ダッシュボードやレポートは、StarRocks上の最終データを直接参照し、DataAPIを通じて外部に提供されます。
データモデル:非正規化テーブルからスター・スキーマへ
YooZoo Gamesの従来のClickHouseベースのアーキテクチャでは、データモデルとして主に非正規化されたワイドテーブルが使用されていました。ClickHouseはこのようなテーブルに対するクエリ性能は非常に高かったものの、ソース側の変更に応じてデータモデルを修正するには多くの時間がかかり、エラーが発生しやすいという課題がありました。
一方でStarRocksは、多表JOINにおいて高いクエリ性能を持ち、リアルタイム更新にも対応しています。これにより、YooZoo Gamesは非正規化テーブルからスター・スキーマモデルへと移行することができ、ディメンションの変更にも柔軟に対応できるようになりました。さらに、ファクトテーブルとディメンションテーブルが疎結合となったことで、多次元分析の柔軟性も大きく向上しています。
Exactly Once を保証するデータ取り込み
ClickHouseでは、リアルタイムデータの取り込みにおいてデータの一意性を保証することができず、YooZoo Gamesはしばしば下流のロジックで重複データの除去処理を行う必要がありました。これは手間がかかる上に非効率的でした。
StarRocksでは、Flink-Connector-StarRocks(FCS)プラグインを利用してデータを取り込むことができ、このFCSプラグインにより**「一度だけ、確実に(Once and Exactly Once)」のデータインジェストが保証**され、生産性が大きく向上しました。
新しい指標ストレージアーキテクチャ
前述のように、従来はClickHouseやHiveで計算されたレポートなどを、Sqoopや自社開発ツールを使用してMySQLに移行していました。
一方、StarRocksでは外部テーブルのサポートを通じてフェデレーションクエリ機能が利用可能であり、データをHiveやMySQLに保持したまま直接クエリを実行することができます。その結果、データの鮮度が向上し、データパイプラインも簡素化されました。
YooZoo Gamesの今後の展望
YooZoo Gamesは、2023年以降にStarRocksをさらに活用したアナリティクス基盤の強化を計画しており、以下の取り組みが予定されています:
- その他すべてのリアルタイム分析ワークロードをStarRocksに移行
- StarRocksを基盤とした統合型アナリティクスプラットフォームの構築
- DataAPIサービスのバックエンドにStarRocksを完全統合
- クエリ性能、タスクスケジューリング、システムヘルスなどの監視体制の構築

導入事例の全文をダウンロード