2015-12-02 2 views
-1

Я планирую написать службу Windows, которая объединяет twitter streaming api для сохранения твитов и связанной с ними информации (оценка настроения, твиттер-пользователь, дата создания) определенной темы в лазурное хранилище. Мне нужен способ запросить эту информацию позже, например: «покажите мне среднюю оценку настроений в твитах за последние 24 часа», поэтому SQL или LINQ должны быть доступны.Лазурное хранилище для сохранения твитов и связанной с ним информации

Некоторые номера:

  • Количество твитов сохраненными в день ок. 20,000
  • Сохранить данные для 3 месяца (20.000 твитов * 90 дней), сохраненные
  • данных: твит текст (140 символов), чувство оценка, имя пользователя щебет, дата (возможно, некоторые дополнительные свойства)
  • Сохранение частоты: С Я использую streaming api, я получаю твиты в реальном времени, которые необходимо сохранить в хранилище.
  • Частота запросов: примерно каждые 30 минут.

Мне интересно, какое Azure Storage подходит для этой цели. Я думаю, что я должен решить между Azure Table Storage и базой данных SQL.

+0

На самом деле нет правильного ответа, Карл, просто мнения. Плюс это очень широкий вопрос. Вы указали только один пример запроса. Перед тем, как принять решение, вам действительно нужно рассмотреть все ваши сценарии запросов. Кроме того, это может помочь расширить возможности выбора базы данных для различных других механизмов баз данных, а не только для хранения таблиц (ключ/значение) и SQL Azure (реляционный). –

+0

Отключить тему комментария, но некоторое время назад я проверял условия обслуживания Twitter и хранение твитов в базе данных облака (например, хранилище таблиц Azure). Вы можете проверить их TOS еще раз, прежде чем продолжить проект. –

ответ

-1

Есть две вещи, которые необходимо учитывать, выбирая между этими 2

1. Цена:

SQL Azure: проверить калькулятор: https://azure.microsoft.com/en-us/pricing/calculator/

стол Хранение: проверить калькулятор: https://azure.microsoft.com/en-us/pricing/calculator/?service=storage

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

2. Производительность:

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

В SQL Azure вы будете использовать TSQL, но при хранении таблицы вы будете использовать C# и Linq для запроса данных ...

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

+0

К сожалению, это действительно неправдоподобный ответ. Хранилище таблиц просто не может предоставить результаты запроса, о которых просит ОП, поскольку у него нет возможности выполнять агрегацию/вычисления (например, среднее значение).Для этого потребуется сканирование 24-часового контента и вычисление в приложении. Или это потребует предварительного расчета, но это ограничит выполнение запросов. –

+0

@ Давид Макогон, ты не прочитал последнюю строку моего ответа? ... – Aram

+0

Конечно, да. Я не думаю, что вы полностью понимаете Table Storage. Хранилище таблиц поддерживает только подмножество Linq. И он абсолютно не предлагает каких-либо вычислений, таких как Average в течение 24 часов. Хранилище таблиц не является механизмом базы данных, когда дело доходит до запросов и обработки на стороне сервера. Это хранилище ключей/значений. И если какие-либо запросы требуют поиска другим ключом (кроме даты), то вы вернетесь к просмотру разделов/таблиц. И если вы посмотрите ближе на вопрос, примером будет «показать мне средний показатель настроений в твитах за последние 24 часа». Не 30 минут. –

Смежные вопросы