2017-09-18 5 views
1

Quand j'exécute ceci:Les tables Azure Table Storage sont-elles garanties par tri par partition/rangée?

query = new azure.TableQuery().top(100).where("PartitionKey eq ?", someKey); 

Est-ce que cette garantie que ces 100 résultats seront retournés dans l'ordre par RowKey? Tout ce que je lis m'amène à croire qu'il y a un seul ordre d'enregistrements, et c'est par le PartitionKey + RowKey. Mes propres tests de base semblent confirmer cela. Mais je ne trouve pas de documents officiels qui sortent et le disent. J'ai juste besoin de savoir si je peux compter sur cela, ou si c'est quelque chose qui pourrait potentiellement changer.

Répondre

3

Les résultats seront dans l'ordre lexical par leurs RowKeys. Se base sur ce fait exact qu'au sein d'une partition, les entités seraient triées dans l'ordre lexical de leur RowKey s.

Je doute jamais que cela va changer de toute façon pour le service de stockage de table de base. Donc, un point intéressant ici est cependant, si vous construisez des solutions sur le stockage de base de table en s'appuyant sur le type lexical de RowKeys dans une partition et puis si vous migrez vers la table DB Cosmos api (éventuellement) qui repose sur le document db , cette hypothèse restera-t-elle vraie?

+0

Fantastique, merci pour cela. C'est drôle qu'ils ne semblent jamais sortir et dire "top X va commander par RowKey", mais ils supposent ce fait ici, donc cela semble assez bon pour moi. –