Я понимаю преимущество ключа раздела в лазурной таблице хранения. Однако, учитывая мой реляционный фон базы данных, я немного запутался в том, как получить объект из azure table storage, заданный только rowkey. Насколько я знаю, это невозможно. Это означает, что я должен хранить пару ключей раздела/rowkey где-то, чтобы просто получить объект, заданный rowkey. Должен ли я просто ввести таблицу «sharding» с одним произвольным ключом раздела, что позволяет мне искать ключ раздела, заданный rowkey?partitionkey и rowkey в лазурной таблице хранения
1
A
ответ
4
Возможно, но это приведет к сканированию таблицы, как описано в этом section MSDN.
Если вам не нужны несколько разделов, то совершенно нормально использовать один раздел (например, с использованием константы), если ваши данные не будут огромными по размеру и нуждаются в масштабируемости нескольких разделов.
Еще один возможный подход - использовать текущий RowKey
как PartitionKey
, который предоставит вам высокомасштабируемое решение, но приведет к плохой производительности, если вам нужно запрашивать диапазоны строк.
Связанная страница MSDN рассказывает о плюсах и минусах обоих, поэтому, исходя из ваших знаний о вашем конкретном проблемном домене, вы должны найти сбалансированное решение.
Соответствующая документация: https://msdn.microsoft.com/en-us/library/azure/hh508997.aspx#dft – BenV
Я ожидаю около 40 миллионов или около того объектов, но может потребоваться запросить диапазоны строк. Поймать 22 Думаю ... – cs0815