2016-02-19 1 views
0

Я должен сделать запрос на лазурном хранения таблицы, где у меня есть следующие настройки: RowKey, PartitionKey, ThirdColumnAzure TableStorage - Производительность

RowKey уникален, и PartitionKey corelates с ThirdColumn, то есть все третьи столбцы со значением «Y», будет иметь ключ раздела «X».

Мне нужно получить все сущности с ключом раздела X, используя значение ThirdColumn. Это не будет выполняться, потому что Y не является ни PartitionKey, ни RowKey.

Вопрос: имеет ли смысл делать .FirstOrDefault() в третьем столбце, чтобы получить объект (любой объект), а затем выполнить запрос с помощью PartitionKey? Я думаю, это было бы лучше, потому что тогда ему не нужно искать на разных машинах данные.

С уважением,

+0

Это будет, а также вы можете подумать о том, чтобы сделать третью колонку в качестве ключа partion. –

ответ

1

Почему не делает PartitionKey комбинированного значения X и Y? Как «MyValueofX_MyValueofY»?

Или, если вы не имеете значения X, когда запрос, просто дублировать информацию с другим порядком, например:

PK: X RK: Z Колонка: Y

PK: Y RK: Z Колонка: X

Таким образом, вы можете запросить запись, когда у вас есть X, и когда у вас есть Y.

Проверить Designing a Scalable Partition Strategy.

0

Я думаю, вы можете посмотреть на статьи ниже:

https://msdn.microsoft.com/en-us/library/azure/dd894039.aspx

и попробовать этот код, чтобы получить первый 1 объект:

var query = (from entity in context.CreateQuery<Customer>("Top1Customers") 
       select entity).Take(1); 

Тогда вы можете записать его в метод, называемый First()

 Смежные вопросы

  • Нет связанных вопросов^_^