Я прочитал много блогов и статей о плюсах и минусах Amazon EC2 против Microsoft Azure (и Google App Engine ).Однако я пытаюсь решить, какой вариант лучше подойдет для моего конкретного случая.
У меня есть набор данных, который можно рассматривать как стандартную таблицу формата:
[id] [name] [d0] [d1] [d2] .. [d63]
---------------------------------------
0 Name1 0.43 -0.22 0.11 -0.81
1 Name2 0.23 0.65 0.62 0.41
2 Name3 -0.13 -0.23 0.17 0.00
...
N NameN 0.43 -0.23 0.12 0.01
Iв конечном счете, мы хотим сделать что-то, что (несмотря на мой последний выбранный стек) будет равно выражению SQL SELECT
, похожему на:
SELECT name FROM [table] WHERE (d0*QueryParameter1) + (d1*QueryParameter1) +(d2*QueryParameter2) + ... + (dN*QueryParameterN) < 0.5
, где QueryParameter1,2,N
- параметры, предоставляемые во время выполнения, и будет меняться каждый раз, когдазапустить (так что о кешировании не может быть и речи).
Моя основная проблема связана со скоростью запроса , поэтому я хотел бы посоветовать, какой вариант облачного стека даст самый быстрый результат запросавозможно.
Я могу сделать это несколькими способами:
- (1) Использовать SQL Azure , так же, как запрос выше.Я попробовал этот метод, и запросы могут быть довольно медленными, как и ожидалось, поскольку SQL дает вам только один экземпляр.Я могу раскрутить несколько экземпляров SQL и разделить данные на части, но это очень быстро и очень дорого.
- (2) Использование Таблицы хранилища Azure .Блоггеры утверждают, что таблицы хранения в целом работают быстрее, но будет ли это соответствовать моим требованиям?
- (3) Использовать EC2 и ускорять несколько экземпляров с помощью MySQL возможно добавление шардинга для новых экземпляров (хотя стоимость увеличивается).
- (4) Используйте EC2 с MongoDB , поскольку я читал, что это быстрее, чем
MySQL
.Опять же, это, вероятно, зависит от типа запроса. - (5) Google AppEngine. Я не совсем уверен, как GAE будет работать с этой структурой запроса, но я думаю, именно поэтому яищу мнения.
Я бы хотел найти лучшую комбинацию стеков для оптимизации моих конкретных потребностей (обрисовано в общих чертах с помощью псевдо SQL
запроса выше).
Есть ли у кого-нибудьлюбой опыт в этом? Какая опция стека приведет к быстрейшему запросу, содержащему много математических операторов в предложении WHERE
?
Cheers, Brett