2016-06-18 6 views
1

Я понимаю преимущество ключа раздела в лазурной таблице хранения. Однако, учитывая мой реляционный фон базы данных, я немного запутался в том, как получить объект из azure table storage, заданный только rowkey. Насколько я знаю, это невозможно. Это означает, что я должен хранить пару ключей раздела/rowkey где-то, чтобы просто получить объект, заданный rowkey. Должен ли я просто ввести таблицу «sharding» с одним произвольным ключом раздела, что позволяет мне искать ключ раздела, заданный rowkey?partitionkey и rowkey в лазурной таблице хранения

ответ

4

Возможно, но это приведет к сканированию таблицы, как описано в этом section MSDN.

Если вам не нужны несколько разделов, то совершенно нормально использовать один раздел (например, с использованием константы), если ваши данные не будут огромными по размеру и нуждаются в масштабируемости нескольких разделов.

Еще один возможный подход - использовать текущий RowKey как PartitionKey, который предоставит вам высокомасштабируемое решение, но приведет к плохой производительности, если вам нужно запрашивать диапазоны строк.

Связанная страница MSDN рассказывает о плюсах и минусах обоих, поэтому, исходя из ваших знаний о вашем конкретном проблемном домене, вы должны найти сбалансированное решение.

+0

Соответствующая документация: https://msdn.microsoft.com/en-us/library/azure/hh508997.aspx#dft – BenV

+0

Я ожидаю около 40 миллионов или около того объектов, но может потребоваться запросить диапазоны строк. Поймать 22 Думаю ... – cs0815