Подтвердить что ты не робот

Начало работы с хранилищем Azure: Blobs vs Tables vs SQL Azure

Это довольно тема, blobs vs tables vs SQL, и, несмотря на все, что я читал до сих пор, я до сих пор не могу найти правильные рассуждения о том, что использовать, когда.

У нас есть веб-приложение SaaS с несколькими арендаторами, которое мы собираемся перейти на Azure. Мы используем базу данных SQL Server 2008. Мы храним документы и информацию о журнале, которые принадлежат документам. Это похоже на Dropbox.

На форумах говорится, что вы лучше используете Azure Tables при рассмотрении "больших" объектов. Обычно мы храним сотни документов на одного пользователя, где размер документов варьируется от 5 кб до 30 мб, где подавляющее большинство будет около 1 МБ?

Есть ли какие-то основные правила, когда нужно использовать Blobs, Tables, Sql? Я уже узнал, что я не должен хранить свои документы в SQL, потому что это слишком дорого. Но когда он "полезен" для хранения документов в Blobs, и когда мне лучше со столами? Есть какая-то формула вроде:

if (objects * MB/object * objectrequested > y) then blobs, else tables

4b9b3361

Ответ 1

Я думаю, что Igorek рассмотрел ваши проблемы с SQL Azure. Тем не менее, у вас все еще есть вопросы о таблицах и блоках.

В вашем случае использование хранилища таблиц будет раздражать. Каждое свойство/столбец в ATS может быть не более 64 КБ, поэтому вам придется разделить документы на несколько свойств и затем собрать их. Также существует ограничение на 4 МБ на сущность, что будет проблемой. Хранилище Blob не имеет ни одного из этих ограничений.

Я хотел бы использовать хранилище таблиц Azure, когда у вас есть небольшие объекты со многими свойствами, которые нужно хранить и запрашивать отдельно. Таким образом, он работает с колодцами для хранимых объектов или небольших документов с большим количеством метаданных.

Хранилище Blob работает лучше для вещей без тонны метаданных. Это хорошо для вещей, которые могут хорошо работать как файлы в файловой системе.

Ответ 2

Я бы хранил документы в хранилище Azure Blob (а не в хранилище таблиц). Помимо того факта, что хранить в базе данных SQL Azure довольно дорогое хранение, которое взимает пенни за мега (или меньше в зависимости от объема), база данных SQL обычно не подходит для документов. SQL - это реляционная база данных, которая обеспечивает преимущества возможности делать запросы, объединяет и т.д. Обычно нет базы данных для хранения больших документов или изображений в базе данных SQL, особенно когда имеется очень масштабируемая центральная система хранения, которая довольно дешева для хранения/доступ.

Теперь, если вам нужно выполнить поиск через сами документы, я бы использовал что-то вроде Lucene.NET для обеспечения возможности поиска для репозитория на основе документов.

НТН