Вопрос

Я нахожусь на этапе планирования веб-приложения, которое будет размещено в Azure с ASP.NET для веб-сайта и Silverlight внутри сайта для обеспечения расширенного взаимодействия с пользователем.Должен ли я использовать таблицы Azure или SQL Azure для хранения данных моего приложения?

Это было полезно?

Решение

Хранилище таблиц Azure выглядит дешевле, чем SQL Azure.Он также более масштабируем, чем SQL Azure.

С SQL Azure легче работать, если вы много работали с реляционными базами данных.Если вы портировали приложение, которое уже использовало базу данных SQL, то его перенос в SQL Azure был бы очевидным выбором, но это единственная ситуация, когда я бы рекомендовал его.

Основным ограничением таблиц Azure является отсутствие вторичных индексов.Об этом было объявлено на PDC '09, и в настоящее время указано, что оно появится в ближайшее время, но никаких объявлений о сроках не было.(Видеть http://windowsazure.uservoice.com/forums/34192-windows-azure-feature-voting/suggestions/396314-support-вторичные-indexes?ref=title)

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

Как только вторичные индексы будут добавлены в хранилище таблиц, оно, по сути, станет облачным. NoSQL системы и будет гораздо полезнее, чем сейчас.

Другие советы

Несмотря на аналогичные имена таблиц SQL Azure и хранение таблицы очень мало общего.

Вот две ссылки, которые могут помочь вам:

В основном, первый вопрос должен удивляться о это Мое приложение действительно нужно масштабировать? Если нет, то иди на SQL Azure.

Для тех, кто пытается выбрать между двумя вариантами, обязательно факторируйте требования к отчетности в уравнение. SQL Azure Reporting. И другие продукты отчетности поддерживают SQL Azure из коробки. Если вам нужно создать сложные или гибкие отчеты, вы, вероятно, захотите избежать хранения таблицы.

Таблицы Azure дешевле, проще и лучше масштабируются, чем SQL Azure.SQL Azure — это управляемая среда SQL, многопользовательская по своей природе, поэтому вам следует проанализировать, соответствуют ли ваши требования к производительности SQL Azure.Анонсирована премиум-версия SQL Azure, которая на момент написания этой статьи находится в предварительной версии (см. ЗДЕСЬ).

Я думаю, что решающими факторами при выборе между SQL Azure и таблицами Azure являются следующие:

  • Вам нужно выполнять сложные соединения и использовать вторичные индексы?Если да, то SQL Azure — лучший вариант.
  • Вам нужны хранимые процедуры?Если да, SQL Azure.
  • Вам нужны возможности автоматического масштабирования?Таблицы Azure — лучший вариант.
  • Размер строк в таблице Azure не может превышать 4 МБ.Если вам нужно хранить большие данные в строке, лучше хранить их в хранилище BLOB-объектов и ссылаться на URI BLOB-объекта в строке таблицы.
  • Вам нужно хранить огромные объемы полуструктурированных данных?Если да, то таблицы Azure предпочтительнее.

Хотя таблицы Azure чрезвычайно выгодны с точки зрения простоты и стоимости, существуют некоторые ограничения, которые необходимо учитывать.Пожалуйста, посмотри ЗДЕСЬ для некоторого первоначального руководства.

Еще одно рассмотрение - задержка. Раньше был сайт, который Microsoft RAN с Microbenchmarks по пропускной способности и задержке различных размеров объектов со столом и SQL Azure. Поскольку этот сайт больше не доступен, я просто даю вам грубое приближение из того, что я помню. Табличный магазин имеет тенденцию иметь гораздо более высокую пропускную способность, чем SQL Azure. SQL Azure имеет тенденцию иметь более низкую задержку (на целых 1/5).

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

Если непрерывность бизнеса является приоритетом, считайте, что с Azure Storage Вы получаете дешевую гео-репликацию по умолчанию. С SQL Azure вы можете сделать что-то похожее, но с большим усилием SQL данные синхронизации. Отказ Обратите внимание, что синхронизация данных SQL также нарушает накладные расходы на производительность, поскольку требуется триггеры на всех ваших таблицах для наблюдения за изменениями данных.

Я понимаю, что это старый вопрос, но все еще очень действительный, поэтому я добавляю его ответ на него.

CodeRDennis и другие указали, что некоторые из фактов - Azure Tables дешевле, и азазубежные столы могут быть намного больше, более эффективными и т. Д. Если вы на 100% уверены, что вы будете придерживаться Azure, идите с таблицами.

Однако это предполагает, что вы уже решили на Azure. Используя Azure Tables, вы запираете себя на платформу Azure. Это означает, что код записи, очень специфичный для азазуховых таблиц, которые не просто портируют в Amazon, вам придется переписать эти области вашего кода. С другой стороны, программирование для базы данных SQL с LINQ будет портировать гораздо легче в другой облачный сервис.

Это может не быть проблемой, если вы уже определились с вашей облачной платформой.

Я предлагаю смотреть на Azure Cache в сочетании с лазурным столом. Таблица в одиночестве 200-300 мс задержки, с периодическими шипами выше, которые могут значительно замедлить время отклика / интерактивность UI. Таблица кеша +, кажется, для меня выигрышная комбинация.

На ваш вопрос, я хочу поговорить о том, как решить с логикой выбирать таблицу SQL и что нужно использовать Azure Table.

Как известно, таблица SQL является реляционным двигателем базы данных. Но если у вас есть большие данные в одной таблице, таблица SQL не применима, поскольку SQL Query получает большие данные, медленные.

В настоящее время вы можете выбрать Azure Table, запрос Azure Table настолько быстро, а затем SQL Table для больших данных, например, на нашем сайте, кто-то подписался на многие статьи, мы производим статью в качестве подачи пользователю, у каждого пользователя есть копия Название статьи и описание, поэтому в таблице статьи существует много данных, если мы используем SQL Table Chable, каждое выполнение запроса, возможно, займет более 30 секунд. Но в Azure таблице получите пользователи Article Ceam по PartitingKey и rowkey настолько быстро.

Из этого примера вы можете узнать, как выбрать между таблицей SQL и таблице Azure.

Интересно, собираетесь ли мы в конечном итоге с некоторыми библиотеками облачных библиотек API поставщиков?

Я думаю, что у вас есть сначала определить, что находятся ваши воронки использования приложений. Будет ли ваша модель данных подвергаться частому изменениям или это стабильный? Вы должны быть в состоянии выполнить ультра быстрые вставки и чтения не столь сложны? Вам нужен продвижение Google вроде поиска? Хранение капельков?

Это вопросы (и не только), которые вы должны задать и отвечать на себя, чтобы решить, что вы, скорее всего, собираетесь использовать NoSQL или SQL подход в хранении ваших данных.

Пожалуйста, подумайте, что оба подхода могут легко сосуществовать и могут быть продлены с помощью хранения BLOB.

Оба Azure Tables и SQL Azure - два разных Seasts.both предназначены для разных сценариев, один Con для Azure Table заключается в том, что вы не можете перемещаться от Azure на любую другую платформу, если вы не пишете поставщики в вашем коде, которые могут обрабатывать такие сдвиги.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top