はじめに

 

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

 
YooZoo Games Game of Thrones 
 
YooZoo Gamesが開発した代表的なタイトルには、『Game of Thrones: Winter is Coming』、『League of Angels』、『Saint Seiya Awakening』などがあります。現在、YooZoo Gamesは世界200以上の国と地域で約10億人のユーザーを抱え、1,000社以上のパートナーと提携しています。

導入による効果

 

  • ゲーム体験の向上
  • ゲーム内課金収益の増加
  • 顧客満足度の向上
  • 新作ゲームの開発期間短縮
  • データエンジニアリングコストの削減

StarRocksの主な特長


  • 高性能・低レイテンシのクエリ
  • リアルタイムデータ更新
  • 高並列クエリ処理
  • シンプルな運用とリニアなスケーラビリティ
  • MySQLプロトコル互換

ゲーム業界におけるアナリティクスの重要性

ゲーム業界では、ストーリー展開の最適化、プレイヤーごとの個別体験、キャンペーンのスケーリング、収益化戦略の最適化において、データ分析が重要な役割を果たしています。さらに、営業・マーケティング、財務分析、不正検出、セキュリティといった業務領域でも、データ活用は不可欠です。

 

YooZoo Gamesが直面していた技術的課題

YooZoo Gamesの旧アナリティクス基盤は以下のような構成でした:

  • PrestoClickHouse:分単位や時間単位でのビジネス指標の計算に使用
  • 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のアナリティクス体験をどう向上させたか

リアルタイム指標の計算

Real-Time Metrics Calculation

 

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を完全統合
  • クエリ性能、タスクスケジューリング、システムヘルスなどの監視体制の構築