Хранилище таблиц Azure - выбор PartitionKey и RowKey для использования между запросами

Я новичок в Azure! Цель - вернуть строки на основе отметки времени, хранящейся в RowKey. Поскольку с каждым запросом связана стоимость транзакции, я хочу свести к минимуму количество транзакций / запросов при сохранении производительности

Предлагаемые ключи раздела и строки:

  • Ключ раздела: TextCache_ (AccountID) _ ( ParentMessageId)
  • Ключ строки: (DateOfMessage) _ (MessageId)

Легенда :

  • AccountId - целое число
  • ParentMessageId - родительский идентификатор сообщения, если он есть, пусто, если это родительский
  • DateOfMessage - Дата создания сообщения - формат будет DateTime.Ticks.ToString ("d19")
  • MessageId - уникальный идентификатор сообщения

Я хотел бы вернуться из одного запроса строки и любые дочерние строки, которые являются> или

. Можно ли это сделать с помощью предложенных мной PartitionKeys и RowKeys?

то есть ... (в псевдокоде)

var results = ctx.PartitionKey.StartsWith(TextCache_AccountId) 
   && ctx.RowKey > (TimeStamp)_MessageId

Во-вторых, если у меня есть количество учетных записей, и вы хотите вернуть только первые 10, можно ли это сделать с помощью одного запроса

, то есть ... (в псевдокоде)

var results = ( 
      ( 
        ctx.PartitionKey.StartsWith(TextCache_(AccountId1)) && 
            && ctx.RowKey > (TimeStamp1)_MessageId1 )
      )
      ||
      ( 
        ctx.PartitionKey.StartsWith(TextCache_(AccountId2)) && 
            && ctx.RowKey > (TimeStamp2)_MessageId2 )
      ) ... 
          )
         .Take(10)
6
задан Jason Jong 3 May 2011 в 02:36
поделиться