Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > NoSQL > Подскажите просто облачное NoSQL-хранилище


Автор: wgent 29.11.2015, 06:20
Hi All!
Подскажите пожалуйста облачное хранилище, отвечающее следующим критериям (в порядке приоритета):
1. Простота вхождения для новичка
2. Масштабируемость
3. Надёжность
N. Цена не особо критична.

Дано: кодер-самоучка, умеющий в ООП, прогающий на PHP/MySQL, но в силу возраста уже не очень хорошо обучаемый.
И проект, в котором надо хранить очень много объектов (точнее, многомерных таблиц) очень сложной структуры.
Скажем так, что для описания одного объекта выражением типа $Object[1]=array("ID"=>"1", "Field1"=>"value1", "Field2"=>array("ID"=>"101", "Field2_1"=>array("ID"=>"1001", "Field2_1_1"=>array( ... )))) требуется порядка 300 килобайт, при том, что сами значения полей достаточно короткие, никаких изображений, многабукаф и бинарностей поля не содержат, просто этих полей и вложенных в них полей слишком много.
Попытка организации хранения этих объектов (многомерных таблиц) в реляционной базе данных (MySQL) привела к тому, что простая операция копирования такой многотаблицы занимает 200 строк PHP-кода (и нет, скопировать таблицу одним MySQL-запросом категорически нельзя, поскольку имена её под-таблиц при копировании обязаны меняться на другие уникальные).
А тут ещё босс огорошил тем, что таких объектов будет много, порядка нескольких сотен тысяч. И насиловать это хранилище данных запросами "выбери-ка мне четвёртый десяток оъектов, в которых Object[Field2][Field2_1][Field2_1_9] > 5 AND Object[Field202][Field202_7] LIKE '%Preved%'" будут десятки frontend-серверов. Хорошо ещё хоть, что вносить/обновлять данные будет только один сервер и с вменяемой частотой.
Короче, понял я, что надо хранить таблицы в виде целиковых объектов и хранить их надо в облаках.
В облаках я не умею. А обучаюсь я уже плоховато. И английский хоть и читаю без словаря, но читаю медленно.
Поэтому прошу совета, какое хранилище выбрать.

Самое главное - простота покупки и, главное, использования. Наличие русскоязычной документации - обязательно. 
Язык запросов - чем проще, тем лучше, я даже думаю, что комплекта ">, <, =, !=, AND, OR, NOT" + что-то типа LIKE для строк - будет вполне достаточно.

На втором месте - масштабируемость. То есть, если в какой-то момент обнаруживается, что N серваков совместными усилиями эту базу кладут, то значит, надо просто заплатить побольше денег и снова всё залетает.

На третьем месте - надёжность. Бэкапы, конечно, рулят, но не хотелось бы в один прекрасный день обнаружить, что уникальный сервис хранения приказал долго жить и куды бечь с этими бэкапами - непонятно.

Что посоветуете?

Автор: Romikgy 30.11.2015, 10:35
Цитата(wgent @  29.11.2015,  05:20 Найти цитируемый пост)
 не очень хорошо обучаемый

плохо ...
посмотрите в сторону https://mongolab.com/
PS а кто мешает сохранять ваши мегатаблицы в json и после засовывать в mysql ?

Автор: wgent 12.12.2015, 11:28
Цитата(Romikgy @ 30.11.2015,  10:35)
PS а кто мешает сохранять ваши мегатаблицы в json и после засовывать в mysql ?

А как потом производить выборку по заданным полям? Никак!

Автор: ksnk 12.12.2015, 12:29
Цитата(wgent @  29.11.2015,  06:20 Найти цитируемый пост)
хранить их надо в облаках

mongodb - позволяет хранить именно объекты именно в деревянном виде с неопределенным количеством параметров. Ну и искать по всему этому добру. 

Зачем нужно облако? Только для удержания нагрузки?

mongo ставится на сервер без особых проблем. Работает шустро, хотя на больших объемах данных - надо тестировать скорость, добавлять память... 

Для быстрого тестирования на windows - существует WinGinx - сборка nginх, монга, mysql и разных версий php для счастья. 


Автор: wgent 12.12.2015, 23:01
Цитата(ksnk @ 12.12.2015,  12:29)
Зачем нужно облако? Только для удержания нагрузки?

Облако - да, для работы под большой нагрузкой. А хранение в деревянном виде - это большой бонус к облачности, очень сильно облегчающий разработку и, надеюсь, оптимизацию кода тоже.
За направление на mongoDB всем пославшим спасибо. "Есть понимание, куда идти" ((С)ВВП).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)