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

:TairRoaringを使用してユーザーを選択する

最終更新日:Sep 12, 2024

TairのTairRoaringデータ構造を使用して、潜在的なユーザー選択のための高性能サービスを提供できます。

TairRoaringの紹介

タグベースのユーザー選択は、パーソナライズされた推奨や精密マーケティングなどのビジネスシナリオに適用できます。 広告主の関心を最大化するために、さまざまなタグでマークされたユーザーに対して、さまざまな運用マーケティング戦略が実装されています。

タグベースのユーザー選択には、次の特徴があります。

  • ユーザー用の多数のタグ。 これには、大きなストレージスペースと高いスケーラビリティが必要です。

  • 多数のユーザー。 これは、タグを生成するために様々な次元が必要であり、データが離散化されることを示す。

  • 重いコンピューティング負担。 アプリケーションは、さまざまな戦略に基づいてさまざまなタグが添付されているユーザーを選択でき、パフォーマンスと適時性に対する高い需要があります。

ビットマップ (またはビットセット) データ構造は、前述の要件を満たすことができる。 このデータ構造は、少量のストレージを使用して、大量のデータの最適化されたクエリを実装できます。 ビットマップ操作は、ApsaraDB for Redis Community Editionでサポートされています。 しかしながら、ネイティブビットマップデータ構造は、大量のタグ付けの必要性によって圧倒される可能性がある。

  • ネイティブビットマップデータ構造は、キースペースのサイズによって制限される。 これは、スパースデータの空間効率の大幅な低下につながる可能性があります。

  • 文字列を使用してビットマップ操作を実行する場合、コンピューティングタスクを実行するためにユーザーコードを記述する必要があり、ラウンドトリップ時間 (RTT) が3倍に増加します。

  • ビットマップデータがネイティブRedisに保存されると、大きなキーが生成され、クラスターが不安定になることがあります。

Roaringビットマップは、TairRoaringで次の方法で最適化されます。

  • TairRoaringは、2レベルのインデックスと動的コンテナを使用することで、多数のシナリオでパフォーマンスとスペースの複雑さのバランスをとることができます。

  • TairRoaringは、単一命令、複数データ (SIMD) 、ベクトル化、およびpopcountアルゴリズムなどの最適化技術を使用して、計算効率を改善し、効率的な時間と空間の複雑さを実現します。

  • TairRoaringは、強力なコンピューティングパフォーマンスと高い安定性を提供し、Tairに基づくビジネスシナリオをサポートします。

ネイティブのビットマップデータ構造と比較して、TairRoaringは、コレクションのメモリ使用量が少なく、計算効率が高くなります。 TairRoaringはまた、高性能Tairサービスのおかげで、より低いレイテンシとより高いスループットを提供します。

潜在的なユーザー選択の手順

ユーザー選択は、モデルの生成と選択を含む複数のステップで構成されます。

  1. 行スキーマを使用して、異なるディメンションから分類されたユーザー特性を保存します。 ほとんどの場合、生のユーザーデータはリレーショナルデータベースに保存されます。

  2. 生データをオンデマンドで処理し、ユーザー識別子 (UID) とユーザータグ間のマッピングを生成します。

  3. これらのマッピングを定期的にTairRoaringデータ構造に更新します。 ほとんどの場合、更新は対応するビジネスデータが生成されてから2日後に行われます。

  4. TairRoaringデータ構造を使用して、ビジネスデータ処理を高速化します。

    • ユーザーとユーザータグの関係を照会できます。

      たとえば、次のコマンドを実行して、user1がTag-Aでアタッチされているかどうかを判断できます。 Tag-Aのシリアル番号は16161です。

      TR.GETBIT user1 16161
    • ANDORDIFFなどの演算子を使用して論理ユーザーグループを作成し、これらのユーザーグループの情報を処理できます。

      たとえば、次のコマンドを実行して、Tag-BとTag-Cの両方がアタッチされているユーザーを取得できます。

      TR.BITOP result AND Tag-B Tag-C
    • また、リスク管理などの一部のマッピングシナリオでTairRoaringデータ構造を使用して、タグがUIDにマッピングされているかどうかを確認することもできます。

      たとえば、次のコマンドを実行して、user1がTag-Aでアタッチされているかどうかを照会できます。

      TR.GETBIT Tag-A user1