4

私は紺碧のアプリケーションを書いています。私の質問は、特定のエンティティの Azure テーブルのクエリに関するものです。

アプリケーションは、ユーザーが使用する単語の統計を保存します。テーブルの partitionkey は言語で、row key は単語です。

複数の単語を照会する必要があります。プロセスを高速化するために、関連するすべてのエンティティを 1 つのクエリに取り込みたいと考えています。

同じパーティションキーを持つエンティティのグループを「バッチ挿入」する方法を知っています。パーティション キーは同じだが行キーが異なる 50 ほどの異なるエンティティをクエリする方法。

query を string として指定する可能性はありますか?

よろしく

4

4 に答える 4

1

しかし、1 つのクエリで必ずしも高速になるとは限りません。それぞれ 10 語のクエリを 5 回発行し (おそらく並行して)、結果を結合します。

于 2012-07-16T20:07:33.580 に答える
1

で最大 15 個の一致を指定できる$filterため、そのルートをたどった場合、本質的に 15 個の特定の行キーになります。注: これにより、パーティション スキャンが実行されます。クエリの詳細については、この記事を参照してください。

詳細については、この StackOverflow の質問と関連する回答を参照してください。

于 2012-07-16T16:44:40.797 に答える
1

あなたが尋ねた質問ではありませんが、RowKey と PartitionKey を逆にすると、この特定のクエリのパフォーマンスが向上することがわかる場合があります。言語にはかなりの数の単語がある可能性があると推測しているため、これはかなり大きなパーティションが存在することを意味します。他の人が提案したようにクエリを並列化しようとすると (これは良い考えです)、これらのクエリはすべて、現在のキー プランで同じパーティションにヒットします。

ただし、キーを逆にした場合、特定の言語の単語のリストを取得するのは非常に非効率的になります。

于 2012-07-16T23:23:52.603 に答える
0

簡単な方法はわかりませんが、使用できる動的LINQクエリライブラリがいくつかあります。

この質問を確認することをお勧めします:
文字列C#LINQ式の解析

そして、これらのライブラリ:
カスタムプロパティを使用してLINQクエリを動的に生成する
独自の動的LINQパーサーを作成する

そしてこのチュートリアル:
動的LINQ(パート1:LINQ動的クエリライブラリの使用)

于 2012-07-16T16:28:33.723 に答える