TairのTairRoaringデータ構造を使用して、潜在的なユーザー選択のための高性能サービスを提供できます。
TairRoaringの紹介
タグベースのユーザー選択は、パーソナライズされた推奨や精密マーケティングなどのビジネスシナリオに適用できます。 広告主の関心を最大化するために、さまざまなタグでマークされたユーザーに対して、さまざまな運用マーケティング戦略が実装されています。
タグベースのユーザー選択には、次の特徴があります。
- ユーザー用の多数のタグ。 これには、大きなストレージスペースと高いスケーラビリティが必要です。
- 多数のユーザー。 これは、タグを生成するために様々な次元が必要であり、データが離散化されることを示す。
- 重いコンピューティング負担。 アプリケーションは、さまざまな戦略に基づいてさまざまなタグが添付されているユーザーを選択でき、パフォーマンスと適時性に対する高い需要があります。
ビットマップ (またはビットセット) データ構造は、前述の要件を満たすことができる。 このデータ構造は、少量のストレージを使用して、大量のデータの最適化されたクエリを実装できます。 ビットマップ操作は、ApsaraDB for Redis Community Editionでサポートされています。 しかしながら、ネイティブビットマップデータ構造は、大量のタグ付けの必要性によって圧倒される可能性がある。
- ネイティブビットマップデータ構造は、キースペースのサイズによって制限される。 これは、スパースデータの空間効率の大幅な低下につながる可能性があります。
- 文字列を使用してビットマップ操作を実行する場合、コンピューティングタスクを実行するためにユーザーコードを記述する必要があり、ラウンドトリップ時間 (RTT) が3倍に増加します。
- ビットマップデータがネイティブRedisに保存されると、大きなキーが生成され、クラスターが不安定になることがあります。
Roaringビットマップは、TairRoaringで次の方法で最適化されます。
- TairRoaringは、2レベルのインデックスと動的コンテナを使用することで、多数のシナリオでパフォーマンスとスペースの複雑さのバランスをとることができます。
- TairRoaringは、単一命令、複数データ (SIMD) 、ベクトル化、およびpopcountアルゴリズムなどの最適化技術を使用して、計算効率を改善し、効率的な時間と空間の複雑さを実現します。
- TairRoaringは、強力なコンピューティングパフォーマンスと高い安定性を提供し、Tairに基づくビジネスシナリオをサポートします。
ネイティブのビットマップデータ構造と比較して、TairRoaringは、コレクションのメモリ使用量が少なく、計算効率が高くなります。 TairRoaringはまた、高性能Tairサービスのおかげで、より低いレイテンシとより高いスループットを提供します。
潜在的なユーザー選択の手順
ユーザー選択は、モデルの生成と選択を含む複数のステップで構成されます。
- 行スキーマを使用して、異なるディメンションから分類されたユーザー特性を保存します。 ほとんどの場合、生のユーザーデータはリレーショナルデータベースに保存されます。
- 生データをオンデマンドで処理し、ユーザー識別子 (UID) とユーザータグ間のマッピングを生成します。
- これらのマッピングを定期的にTairRoaringデータ構造に更新します。 ほとんどの場合、更新は対応するビジネスデータが生成されてから2日後に行われます。
- TairRoaringデータ構造を使用して、ビジネスデータ処理を高速化します。
- ユーザーとユーザータグの関係を照会できます。 たとえば、次のコマンドを実行して、user1がTag-Aでアタッチされているかどうかを判断できます。 Tag-Aのシリアル番号は16161です。
TR.GETBIT user1 16161
AND
、OR
、DIFF
などの演算子を使用して論理ユーザーグループを作成し、これらのユーザーグループの情報を処理できます。たとえば、次のコマンドを実行して、Tag-BとTag-Cの両方がアタッチされているユーザーを取得できます。TR.BITOP result and Tag-B Tag-C
- また、リスク管理などの一部のマッピングシナリオでTairRoaringデータ構造を使用して、タグがUIDにマッピングされているかどうかを確認することもできます。
たとえば、次のコマンドを実行して、user1がTag-Aでアタッチされているかどうかを照会できます。
TR.GETBITタグ-A user1
- ユーザーとユーザータグの関係を照会できます。