Tair (Enterprise Edition) のTairRoaringデータ構造を使用して、潜在的なユーザー選択のための高性能サービスを提供できます。
TairRoaringの紹介
タグベースのユーザー選択は、パーソナライズされた推奨や精密マーケティングなどのビジネスシナリオに適用できます。 広告主の関心を最大化するために、さまざまなタグでマークされたユーザーに対して、さまざまな運用マーケティング戦略が実装されています。
タグベースのユーザー選択には、次の特徴があります。
ユーザー用の多数のタグ。 これには、大きなストレージスペースと高いスケーラビリティが必要です。
多数のユーザー。 これは、タグを生成するために様々な次元が必要であり、データが離散化されることを示す。
重いコンピューティング負担。 アプリケーションは、さまざまな戦略に基づいてさまざまなタグが添付されているユーザーを選択でき、パフォーマンスと適時性に対する高い需要があります。
ビットマップ (またはビットセット) データ構造は、前述の要件を満たすことができる。 このデータ構造は、少量のストレージを使用して、大量のデータの最適化されたクエリを実装できます。 ビットマップ操作はRedis Open-Source 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 Tag-A user1