@MongoDBRussian

Страница 209 из 342
yopp
22.03.2018
10:26:39
Нужно понимать какую роль выполняют бекапы, что нужно бекапить очень часто, что можно бекапить реже, что вообще не надо бекапить.

Резервное копирование ОЧЕНЬ дорогое удовольствие.

Igor
22.03.2018
10:28:37
Ну вот допустим ежесуточно 500 гигов

yopp
22.03.2018
10:28:55
Сколько хранится бекап?

Google
Nick
22.03.2018
10:28:57
тогда db.tst.createIndex({ v1: "text", v2: "text" }); // db.tst.insertMany([{ "v1" : "word", "v2" : "тест" },{ "v1" : "word", "v2" : "тест2" },{ "v1" : "word2", "v2" : "тест" },{ "v1" : "тест", "v2" : "word" }]); и дальше по русскому слову db.getCollection('tst').find({ $text:{$search:"тест"} }) по англицкому db.getCollection('tst').find({ $text:{$search:"word"} }) два одновременно db.getCollection('tst').find({ $text:{$search:"\"тест2\" \"word\""} })

Igor
22.03.2018
10:28:59
с таким объёмом mongodump справится при быстрых дисках?)

Nick
22.03.2018
10:29:09
Igor
22.03.2018
10:30:17
а чем тогда большие объемы бэкапить?

yopp
22.03.2018
10:30:43
с таким объёмом mongodump справится при быстрых дисках?)
И не в mongodump дело, а в том, что mongodump по сути просто делает find({}) на всех коллекциях. Для этого монге их надо так или иначе сложить в память

Igor
22.03.2018
10:31:01
ах, вот оно что....

yopp
22.03.2018
10:31:14
14 дней по 500 гигов это уже 7Тб

Igor
22.03.2018
10:31:18
верно

А чем бэкапить тогда?)

yopp
22.03.2018
10:31:36
С фактором репликации хотяб 3, это уже 21Тб

А чем бэкапить тогда?)
Я же говорю, вопрос стоит в корне не верно

Google
Igor
22.03.2018
10:32:03
ну где диски на это брать - проблема заказчика )

yopp
22.03.2018
10:32:13
Нет, это не проблема заказчика, это проблема архитектора решения

Igor
22.03.2018
10:32:19
Согласен

yopp
22.03.2018
10:32:24
Не в дисках дело, а в надёжности резервного копирования

Igor
22.03.2018
10:32:36
В данном случае - архитектор решения захотел бэкапы )

yopp
22.03.2018
10:32:50
Архитектору решения надо разобраться что такое «бекапы», я же говорю

Самый простой способ это сделать — через стоимость данных. Например через ущерб от их недоступности (в долларах в минуту) и полной потери

Не бывает так, что все 500 гигов убер критически важны

В большинстве случаев критически важных данных там от силы 10%

Igor
22.03.2018
10:34:25
В данном случае в монге хранятся документы, и они важны.

а их будет в итоге очень много

yopp
22.03.2018
10:34:43
А. Будет :)

А сколько есть?

И когда будет?

Igor
22.03.2018
10:35:05
пока в тестовой эксплуатации

можно сказать сейчас почти нет

а после запуска в течении года заказчик расчитывает на 500 гигов

yopp
22.03.2018
10:40:04
надо составить три модели роста размера данных (оптимизм, пессемизм и реализм), после чего планировать решение исходя из этих цифр. Вкладывать денег в бекап 500 гигов, при наличии 5 расточительство :)

Потому что цена бекапа 5 гигов и 500 будет отличаться даже не на два порядка

Igor
22.03.2018
10:40:46
Спасибо за ответы про mongodump.

Google
Igor
22.03.2018
10:40:59
У заказчика есть системы бэкапа в т.ч. на ленты

в общем насколько я понял, заказчика не волнует как эта служба будет по 500 гигов ежедневно бэкапить 2 недели )

и сколько это будет стоить

yopp
22.03.2018
10:48:01
Не бывает так, чтоб не волновало сколько это будет стоить

Igor
22.03.2018
10:48:46
Да я согласен, но этими вопросами не я занимаюсь

yopp
22.03.2018
10:51:30
На деле у вас выбор не такой большой: 1) mongodump 2) бекап фс

Igor
22.03.2018
10:51:51
я ещё прочитал в доке про снапшоты fs, lvm...

yopp
22.03.2018
10:51:54
С п.2 у вас есть какой-то выбор ещё, например снепшоты

Igor
22.03.2018
10:53:32
пойду детали про снапшоты почитаю...

спасибо

No
22.03.2018
13:14:09
Здравствуйте. Трабла такая. $bulk->update( ['_id' => 2], ['$set' => ['accountBag.CashInventory.items.1' => ['count'=>'213']]], ['multi' => false, 'upsert' => false] ); Запрос на изменение параметра count, а вместо этого удаляется всё что есть в массиве items и вставляется count 213.

Nick
22.03.2018
13:18:57
а нужно обновить значение у элемента с индексом 1?

['accountBag.CashInventory.items.1.count' => '213']

чтото такое попробуйте

Ilya
22.03.2018
13:21:22
https://docs.mongodb.com/ доступен сейчас у кого ?

Ilya
22.03.2018
13:22:09
хм

Andrew
22.03.2018
13:22:57
Здравствуйте, есть ли способ вылечить вот это ==== "errmsg" : "exception: no NamespaceDetails for index: { v: 1, key: { _id: 1 }, name: \"_id_\", ns: \"viewsStatistics. statistics_reduced_1\" }", "code" : 17329, === ? кроме как бэкапа того, что можно забэкапить и восстановления версия 2.6.12

Google
No
22.03.2018
13:32:20


я не знаю, может я не правильно указываю, но по другому не получается)

Nick
22.03.2018
13:35:48
у вас items не массив

значит нужно просто указать путь

No
22.03.2018
13:38:51
у вас items не массив
Тогда как правильно будет указать, массив в объект переводить ?

Nick
22.03.2018
13:39:29
у вас уже не массив, либо данные попорчены ваши запросом, либо изначально не было массивом

приведите в изначальный вид

No
22.03.2018
13:40:07
Получается так, вроде сработало, не удалило ничго. ['$set' => ['accountBag.CashInventory.items.1.count' => '213']],

очень трудно после SQL под монго сделать скрипт, всё кажется таким нелогичным)))

в любом случае спасибо за помощь, вроде получилось)

Nick
22.03.2018
13:43:54
может тогда отказатсья от монго?

No
22.03.2018
13:44:21
я бы с радостью, но там целый сервер под монго, мне только веб чатсь надо сделать)

Nick
22.03.2018
13:46:58
а пробелма выше скорее всего связана с тем, что после числа 1 ожидалось поле, а так монга расценила 1 как название поля и изменила тип с массива на объект, удалив все старое и создав новое поле 1.

интересно это нормальное поведение или нет, никто не вкурсе?

No
22.03.2018
13:48:16
Там да, проблема что ожидался объект, пришел массив, по всей видимости монго решает всё перезаписать на массив, когда я отправил объект всё как по маслу удачно)

так пробую, вродне всё равно объектом он и остается быть. ['$set' => ['accountBag.CashInventory'=> array('items'=> ['1'=> ['count'=>123]])]],



Как сделать массивом?

Nick
22.03.2018
14:16:47
Не знаю синтаксиса, так что не поскажу, читайте доки к вашему драйверу

Google
No
22.03.2018
14:19:20
Это же PHP, его все знают, по крайней мере мне так казалось)

Nick
22.03.2018
14:20:20
Если жизнь заставит, то да, но добровольно лезть в нем разбираться эт без меня

Игорь
23.03.2018
06:24:18
А подскажите ещё такой момент, ищу информацию, но однозначно не могу найти. Если создать комплексный текстовый индекс, влияет ли в нем очерёдность полей?

Nick
23.03.2018
07:13:08
не влияет

Игорь
23.03.2018
07:15:31
но он один на коллекцию может быть

я так понимаю, там немного свой алгоритм

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

Nick
23.03.2018
07:21:59
видите, вам не подходит монга под ваши задачи

по крайней мере с текущей структурой документов

Игорь
23.03.2018
07:38:23
ну это на самом деле подзадачи большой задачи, там много чего, для чего монго очень подходит сама по себе. вопрос в том, что только поиск по документам для конкретного варианта подзадачи может быть не таким молниеносным, как хотелось бы. Но в целом не должно быть коллецкий больше 3 500 000 документов, а по ним более или менее адекватно даже без индекса искать. Всегда хочеться оптимизировать и ускорить, но бывают такие затыкания. Если вязть за место монги другой движок, то в других местах может больше проблем появиться в целом в проекте

Zloy Dobriy
23.03.2018
07:39:49
Вам точно не к монге, имхо

Игорь
23.03.2018
07:40:33
А что например?

Nick
23.03.2018
07:41:09
я бы сказал как бычно youpp говорит, сначала сделайте чтоб работало, а потом задумывайтесь о скорости. а то может выяситсья что реально часть задач физически невозможно выполнить на монге, либо это делается через использование хрупих костылей и усложнения логики

Игорь
23.03.2018
07:47:49
мне очень подходит документоорентированная база и мне кажеться монго сейчас лучшая. Во всяком случае, все статьи сравнения говорят в ее пользу. ElasticSearch все таки не полноценное документоорентированное хранилище

Zloy Dobriy
23.03.2018
07:50:11
Постгрес умеет в докумен

Игорь
23.03.2018
07:54:36
насколько лучше полнотекстовый поиск постгреса по json полю документа? мне разбирать и собирать документы совсем не нужно, прям вот никак. поэтому докуметная база. в постгресе есть поле json, но искать по нему в том же варианте, что я делаю сейчас врядли будет как-то сильно лучше

не поймите не правильно, я очень люблю постгрес и это великолепная база. Но разные задачи, разные инструменты. Хорошо бы найти серебренную пулю на все и сразу, но пока такой нет(

Страница 209 из 342