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

Lindorm:歴史ロールプレイングゲームを開発しているゲーム開発会社向けのストリーム処理とデータウェアハウスソリューション

最終更新日:Jan 14, 2025

ソリューションのハイライト:ピーク時のストリーム処理で毎秒数百万トランザクション(TPS)、Greenplum よりも 10 倍高いパフォーマンス。

課題

一部の悪意のあるユーザーは、クレジットカードの脆弱性やその他の脆弱性を悪用して、他のユーザーに代わってゲーム内購入を行う際に、支払いを少なくしたり、全く支払いをしなかったりします。これらの不正なトランザクションを特定してブロックするには、システムは、ログオンレコードやゲーム内購入レコードなど、さまざまな種類のログレコードをリアルタイムでクエリする必要があります。

急速なビジネスの発展に伴い、行動ログレコードの数は急速に増加しています。データの価値を掘り起こすために、企業は大量のクリックストリームログレコードとアクティベーションログレコードを分析する必要があります。たとえば、分析結果は、企業が広告のコンバージョン率、アクティベーション率、ゲームをインストールした各ユーザーにかかるコストを推定するのに役立ちます。

同社は以前、ストリーム処理と統計分析に Greenplum を使用していました。しかし、Greenplum は、以下の制限により、急速なビジネスの発展に伴う要件を満たすことができませんでした。

1. Greenplum のアーキテクチャは、ますます複雑化するコンピューティングタスクの処理には適していません。

2. 単一のテーブルのパーティション数に上限が課せられています。さらに、Greenplum は多階層パーティション分割を完全にはサポートしていません。したがって、Greenplum は、ログレコードを永続的に保持する必要があり、単一のテーブルのログデータ量が過度に大きいシナリオには適していません。単一のパーティションテーブルに過度に大量のデータが格納されている場合、Greenplum のクエリパフォーマンスはビジネス要件を満たせない可能性があります。

3. Greenplum の容量が拡張されるたびに、データが再配布されます。これには多くの時間がかかります。

4. Greenplum は非構造化データの処理には適していません。

ソリューション

同社は、Lindorm の Phoenix SQL サービスと Data Lake Analytics(DLA)のサーバーレス Spark エンジンを使用して、ストリーム処理とデータウェアハウスのソリューションを構築しています。

  • Phoenix SQL はオンラインデータクエリ機能を提供します。サーバーレス Spark エンジンは、ストリーム処理や複雑なデータ分析などの機能を提供します。Phoenix SQL と DLA のサーバーレス Spark エンジンを併用することで、同社のビジネス要件を満たします。

  • ビジネスデータは、Phoenix SQL とサーバーレス Spark エンジンに格納される前に、ソートされ、異なる層に分割されます。

1. 操作データ層:モバイルゲームクライアント、ユーザーセンター、広告監視、ゲームサーバーによって生成された生のログレコードを格納します。

2. データ詳細層:操作データ層で処理されたデータを格納します。操作データ層では、Spark Streaming などのサービスを使用して、ダーティデータの削除、データの重複除去、データのフォーマットを行い、Phoenix SQL に格納します。または、Java Database Connectivity(JDBC)を使用して Phoenix SQL にデータを書き込むこともできます。

3. データ集計層:データ詳細層のデータは、定期的に(毎日または毎時間など)、ディメンションテーブルに関連付けられ、フィルタリング、集計、またはその他の抽出、変換、ロード(ETL)操作によって処理されます。その後、結果データはデータ集計層の宛先に書き込まれます。データ集計層のデータは、後続の複雑なデータ分析に使用できます。

4. アプリケーションデータ層:Phoenix SQL を使用して、アプリケーションデータ層のデータに対して外部クエリを実行できます。これにより、ビッグデータリスクコントロール、広告レコメンデーション、上層でのきめ細かい操作を実装できます。データ集計層でデータが処理された後、結果データは Phoenix SQL に書き込まれ、外部クエリで使用できるようになります。

メリット

  • 他のユーザーに代わって行われた不正なゲーム内購入を数ミリ秒以内に特定してブロックします:Lindorm の Phoenix SQL は、高並列のリアルタイム読み取りと書き込みをサポートしています。数百万 TPS と数十万の同時リクエストをサポートしています。さらに、単純なクエリの結果は数ミリ秒で返されます。

  • サーバーレス Spark エンジンによる優れたコンピューティングパフォーマンス:大量のデータ分析を伴うジョブの場合、Apache Parquet で使用されるカラムナーストレージ形式は、Greenplum クラスタよりも 10 倍高いパフォーマンスを提供します。これにより、企業は、広告のコンバージョン率、アクティベーション率、ゲームをインストールした各ユーザーのコストの計算など、コンピューティング要件を満たすことができます。このようにして、企業はデータドリブンで、きめ細かい操作を実行できます。

  • ワンストップソリューションを提供:ネイティブ Spark サービスを使用すると、ユーザーは SQL ステートメントを実行して Phoenix SQL からデータを読み取ることができます。ネイティブ Spark サービスは、パフォーマンス最適化のためにカラムプルーニング、述語プッシュダウン、パーティションプルーニングなどの機能も提供します。オンラインデータベースに格納されているデータが抽出、変換、ロードされた後、企業はデータを Spark データウェアハウスに効率的にアーカイブできます。

  • 企業はビジネス開発に集中できます:フルマネージド Spark サービスにより、ジョブが期待どおりに実行され、O&M 担当者の作業負荷が最小限に抑えられます。Lindorm はまた、企業が Spark ジョブの管理コストを削減できるワークベンチも提供しています。