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

База данных Microsoft Azure Storage и Azure SQL

Я видел, что вопрос был задан несколько месяцев назад, но это действительно не очень хорошо отразилось на моей ситуации. Вот оно...

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

Само по себе приложение является стандартным CRUD-приложением, которое действует на несколько различных типов объектов (например, пользователь, заказ, элемент и т.д.). Возможно, есть некоторые фоновые процессы, которые могут быть запущены, и некоторая очередность данных (например, для получения обновлений не в реальном времени, например, получение значка SO), но большинство взаимодействий с пользователем будет вашим типичным типом действий CRUD.

Что касается Azure, я прочитал ряд статей об использовании Microsoft Azure Storage для хранения транзакционных данных, и я настоятельно рекомендую это сделать вместо использования Azure SQL DB. Тем не менее, я не видел или не читал ряд историй успеха реальных людей и/или реальных компаний, которые это делают. Поэтому я подумал, что я обращусь к сообществу SO, чтобы узнать, есть ли у кого-нибудь опыт использования Microsoft Azure Storage, какая у вас была удача, какие бывают проблемы, которые я должен искать, и любые лучшие методы, которые у вас есть придумайте.

Я прочитал много разделов MSDN Microsoft Azure и документ Microsoft API Azure Table API от Microsoft. Я ищу практические советы, извлеченные уроки, лучшие практики и т.д. Спасибо заранее!

4b9b3361

Ответ 1

Хранилище Windows Azure похоже на любое хранилище NoSQL. Он работает в сценариях для нас (перекачивая миллионы записей на пользователя). Однако классический подход CRUD немного трудно масштабировать или адаптировать к этому.

Я бы рекомендовал начать поиск по стилю архитектуры CQRS. Вот несколько ссылок, которые могут вам помочь:

Ответ 2

В зависимости от того, какие данные вы говорите - обычно существует тенденция переоценивать требования к транзакционным данным. Многие данные действительно могут быть вписаны в 1 ГБ SQL Azure (мы являемся поставщиком SAAS, а транзакционные данные из почти 20 клиентов могут вписаться в такое пространство). Кроме того, по какой-то странной причине, я видел, что потребление пространства SQL Azure, по-видимому, несколько меньше размера базы данных, которую я вижу на месте (возможно, это связано с тем, как они обрабатывают журналы, но не уверены). И теперь 50 ГБ - это предел, который довольно откровенно, ОГРОМНЫЙ.

Однако для этого вам также необходимо учитывать, что увеличивает использование пространства - хранение изображений, видео или других крупных объектов в базе данных может привести к значительному увеличению потребления пространства. Лучше сохранить такие объекты в Windows Azure.

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

Ответ 3

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

Несмотря на то, что стоимость транзакций в магазинах Windows Azure довольно низкая, это то, что имеет потенциал сложения, если вы делаете достаточно.

Ответ 4

Вы также должны проверить свой шаблон использования данных, прежде чем решать использовать хранилище Azure или хранилище SQL. Поскольку Azure Storage предоставляет решения NoSQL, они больше ориентированы на требования к отчетности без отчетности. Здесь отчетность не означает отчеты, но это означает, что возможности запросов к хранилищу Azure ограничены\не оптимизированы для различных сценариев запросов. С архитектурой CQRS операции CRUD и Reporting отключаются, и поэтому может быть выполнено сочетание n как Azure Storage, так и Azure SQL.

Ответ 5

Другое место для поиска информации - выйти за пределы опций Windows Azure и посмотреть на AWS. Варианты S3 и SimpleDB были проверены в течение более длительного периода времени и имеют много дополнительных историй успеха в Интернете. Однако S3 и SimpleDB очень похожи по функциональности на таблицу хранения Windows Azure и хранилище Blob. Если вы думаете о действительно больших данных, для которых предназначены эти структуры, обязательно ознакомьтесь с параметрами AWS. Если только для контрольной точки на существующих решениях, построенных вокруг больших данных.

Что касается SQL Azure, он отлично подходит для множества транзакций, что снижает транзакционные издержки и поддерживает отношения и общую целостность на основе реляционных данных. Однако, если у вас будут массивные объемы данных, просто продолжайте и стремитесь к большим структурам данных, таким как Windows Azure Table или Amazon SimpleDB.