Azure Service Fabricでデータをクエリするための最良の方法は何ですか?信頼できる辞書の上に何かありますか?例:map / reduce?
例:顧客オブジェクトは信頼できるコレクションに格納されています。キーはCustomerIDです。そして今、私は「シドニー」から来て、先月中に何かを注文した「A」で始まる姓を持つすべての顧客を見つけるのが好きです。
このクエリをAzureService Fabric内で機能的に実装するための最良の方法は何ですか?パフォーマンスはどのようになりますか?リストに数十万人の顧客がいると仮定しましょう。
信頼性の高いコレクションは、単一マシンの.NETコレクションと同様にIEnumerable(または列挙子の作成をサポート)です。つまり、LINQを使用してそれらをクエリできます。例えば:
IReliableDictionary<int, Customer> myDictionary =
await this.StateManager.GetOrAddAsync<IReliableDictionary<int, Customer>>("mydictionary");
return from item in myDictionary
where item.Value.Name.StartsWith("A")
orderby item.Key
select new ResultView(...);
パフォーマンスは実行しているクエリの種類によって異なりますが、Reliable Collectionsの主な利点の1つは、クエリを実行するコードに対してローカルであるということです。つまり、外部ストレージにネットワークリクエストを行うのではなく、メモリから直接読み取っています。 。
非常に大きなデータセットあなたは辞書が含まれているサービスを分割してしまいます(ビルトインサービスファブリック内の機能)。その場合、各パーティションで同じクエリを使用しますが、結果を集計する必要があります。通常、この場合、一般的なクエリのインデックスとして機能できる別の辞書を設定することをお勧めします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加