我正在寫天藍色的應用程序。我的問題涉及查詢特定實體的天藍色表格。查詢多個實體的天藍色表
應用程序存儲用戶使用的單詞的統計信息。在table partitionkey中,語言和行鍵是單詞。
我需要查詢多個單詞。爲了加速這個過程,我想把所有相關的實體都查詢一次。
我知道如何「批量插入」具有相同partitionkey的實體組。 如何使用相同的partitionkey但不同的rowkey查詢類似50個不同的實體。
是否有指定查詢字符串的可能性?
問候
我正在寫天藍色的應用程序。我的問題涉及查詢特定實體的天藍色表格。查詢多個實體的天藍色表
應用程序存儲用戶使用的單詞的統計信息。在table partitionkey中,語言和行鍵是單詞。
我需要查詢多個單詞。爲了加速這個過程,我想把所有相關的實體都查詢一次。
我知道如何「批量插入」具有相同partitionkey的實體組。 如何使用相同的partitionkey但不同的rowkey查詢類似50個不同的實體。
是否有指定查詢字符串的可能性?
問候
我不知道有任何簡單的方法來做到這一點,但也有,你可以使用一些動態LINQ查詢庫。
你可能想看看這個問題:
Parsing a string C# LINQ expression
而且這些庫:
Dynamically generate a LINQ query with a custom property
Invent your own Dynamic LINQ parser
本教程:
Dynamic LINQ (Part 1: Using the LINQ Dynamic Query Library)
您可以指定最多您的$filter
有15場比賽,所以基本上15個特定的rowkeys,如果你沿着這條路線。注意:這將導致分區掃描。查詢的細節在this article。
還有更多的信息在this StackOverflow question以及相關答案。
但是一個查詢不一定會加快速度。發出5個每個10個單詞的查詢(可能並行)併合並結果。
這不是你問的問題,但是如果你反轉RowKey和PartitionKey,你可能會發現你會從這個特定的查詢中獲得更好的性能。我猜測在一種語言中可能會有相當多的單詞,所以這意味着你將有相當大的分區。如果您試圖按照其他人的建議來平行化您的查詢(這是一個好主意),所有這些查詢將與您當前的關鍵計劃達到相同的分區。
如果您確實反轉了鍵,雖然這意味着獲取特定語言的單詞列表將非常低效。
大衛就在這裏。我過去曾經這樣做過。 – 2012-07-16 17:29:52