@MongoDBRussian

Страница 182 из 342
yopp
31.01.2018
21:57:58
Возможно на каждой ноде надо будет как shard local выполнять

Buka
01.02.2018
13:33:03
Добрый день. Подскажите пожалуйста, есть ли способ используя достучаться к своей базе данных(mlab) через прокси? То есть можно ли его как-то настроить?

yopp
01.02.2018
13:34:11
afaik, нет

Buka
01.02.2018
13:34:12
Использую mongoose. Но судя по тому что в гугле я вообще даже намеков не нашел, то подойдет любой вариант рабочий

Google
yopp
01.02.2018
13:34:20
но можно попробовать прокинуть ssh тоннель

Buka
01.02.2018
13:34:50
xaoc
01.02.2018
15:28:41
Bounce

John
01.02.2018
18:15:05
всем привет. вопрос. есть колекция с 500к документов, небольших. через aggregate делаю выборки с group примерно по 13ти полям. изначально падало по памяти, добавил allowDiskUse, теперь не падает, но очень долго выполняется (около 30 секунд). если добавляется match, то ускоряется, но он не всегда есть. кто то сталкивался? есть возможность ускорить?

yopp
01.02.2018
18:32:29
Тяжело сказать не видя ни агрегации, ни примера документов.

John
01.02.2018
18:45:19
Ошибка "Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in." добавляю allowDiskUse и она пропадает вот пример pipeline: https://gist.github.com/vchizi/2cf57ea6725ba18337335482333207fa пример документа: https://gist.github.com/vchizi/9955dbfd19999ff75e979f873c71370e

yopp
01.02.2018
18:47:16
Точно можно из 5 полей с датой сделать одно

John
01.02.2018
18:49:28
можно, но и не учитывая дату оно долго, количество группировок меняется

порядка 30 секунд и с увеличением коллекции время увеличивается)

yopp
01.02.2018
18:50:28
Но в целом с таким количеством измерений есть два варианта: либо шардить, либо оффлайн агрегация, либо преагрегация

John
01.02.2018
18:52:14
ясно, спасибо

yopp
01.02.2018
18:52:27
Можно попробовать сразу сделать проекции

До шага с группировкой

Google
John
01.02.2018
18:52:41
а что за проэкции?

yopp
01.02.2018
18:53:23
$project или redact, выпилив лишение данные

Всегда лучше сокращать количество документов от шага к шагу

И их размер

John
01.02.2018
18:58:15
а я вроди как добавил индекс на datetime только хз используется ли он в данном случае=( причем добавил 2 db.collection.createIndex({datetime: 1}) и db.collection.createIndex({datetime: -1}). я что то вообще не вьехал в индексы в монге

yopp
01.02.2018
18:59:30
Маловероятно что тут проблема в индексах.

John
01.02.2018
18:59:37
то понятно

yopp
01.02.2018
18:59:52
Это легко проверяется, в 3.6 есть уже explain

Можно убрать сортировку

Я бы начал с приведения даты к одному полю

И потом убрал сортировку

И посмотрел влазит ли оно в лимит по памяти

Но это не будет скейлится, в любом случае.

John
01.02.2018
19:02:21
не будет оно влезать=(

yopp
01.02.2018
19:03:30
Тогда надо менять подход

John
01.02.2018
19:05:18
это да, и всеравно спасибо=)

Stepan
01.02.2018
20:51:43
Можно ссылки на преагрегацию и оффлайн ?

버길
02.02.2018
18:28:39
Hello everybady

?
02.02.2018
18:28:59
Hello everybady
Helo evribody

John
02.02.2018
18:29:01
everybody *

Google
버길
02.02.2018
18:29:49
Hi how are you

yopp
03.02.2018
10:57:05
https://docs.dotmesh.com/concepts/what-is-a-datadot/

Buka
03.02.2018
16:36:41
Как можно искать документы по частичному соответствию одного из полей? На стековерфлоу пишут что вот такой регуляркой { name_ru: new RegExp('^'+ text +'$', "i") } Но я наверное где-то допустил ошибку

Вопрос снят, убрал у регекспа начало и конец ввода и нормально ищет

버길
04.02.2018
03:21:24
Hello

Peter
04.02.2018
16:21:55
connection 4 to **** timed out на heroku это исправить можно?

Max
05.02.2018
09:54:07
Парни, подскажите, пожалуйста, есть ли возможность переехать с шардинга обратно на репликасет? в доке монги пишут, что надо dump + restore, что вообще не выход :) Чисто теоретически можно же поменять ключи и все чанки переедут на один шард, а дальше - ходи уже не в монгос а именно в репликасет Дальше - рестарт без shardsvr Будет работать, нет?

yopp
05.02.2018
10:00:25
А зачем?

Max
05.02.2018
10:00:45
я опыты ставлю пока незачем.

yopp
05.02.2018
10:02:11
Тогда почему из дампа невозможно восстановить?

Max
05.02.2018
10:03:39
очень много данных, восстановление будет занимать недели, думаю.

yopp
05.02.2018
10:04:33
Опыты на продуктивной системе?

Max
05.02.2018
10:04:43
сейчас тестируем шардинг на тестовых данных скоро будет нагрузочное тестирование, и дальше это все в прод. но есличтот будет не так - хочу уметь откатиться обратно.

Nick
05.02.2018
10:05:11
если не секрет, то много это сколько?

Max
05.02.2018
10:05:16
прод сейчас на репликасете ставим опыты с переходом с репликасета на шардинг, разнесённый по странам.

yopp
05.02.2018
10:06:23
Балансировка большого числа чанков на один шарж займёт вечность. 3.4 мог балансировать около не больше 2-3 чанков в секунду.

Max
05.02.2018
10:07:03
если не секрет, то много это сколько?
Вам в каких единицах? :) 9 тер данные на диске + 550 гиг журналы + база local + 1.5 тер индексов Это если просто смотреть на то, сколько занимает данных

yopp
05.02.2018
10:07:52
Поздравляю, вы очень поздно задумались о шардинге :)

Max
05.02.2018
10:07:58
Балансировка большого числа чанков на один шарж займёт вечность. 3.4 мог балансировать около не больше 2-3 чанков в секунду.
У нас тестируется вариант, когда на новый шард сначала только маленький кусок данных едет. по сути - это гео шардинг и мы только маленькую страну тестируем с выносом. чисто как PoC Вот вернуть бы это взад

Поздравляю, вы очень поздно задумались о шардинге :)
мне тут нечего сказать задумались давно, но бизнесу,как обычно, пофик, пока жареный петух не клюнет

Google
Max
05.02.2018
10:08:36
короче, все как обычно. :(

на 3.6 пока не тестируем - в текущей версии нельзя с shardsvr запуститься

yopp
05.02.2018
10:09:04
Значит вы с бизнесом разговаривать не умеете ;) но это другая проблема

В вашем случае «надежный вариант» это как в доке написано

Max
05.02.2018
10:09:29
Значит вы с бизнесом разговаривать не умеете ;) но это другая проблема
Согласен я и монгу не сильно-то умею, но делаю, что могу.

В вашем случае «надежный вариант» это как в доке написано
я понял спасибо жаль, конечно, что даже при шардинге одной коллекции для тестов не будет пути обратно.

yopp
05.02.2018
10:11:23
Если вы хотите вынести только небольшую часть, то проведите тестирование. Залейте данных в два раза больше чем будете выносить, зашардите, проставьте зоны, заметьте сколько займёт балансировка. А потом зоны сведите на один шард и посмотрите сколько оно будет литься назад. Умножите потом на 20 и будет примерное понимание прокатит ли вариант с балансировкой

Max
05.02.2018
10:11:42
а в штуках документов это сколько, для самой большой коллекции
данные привязаны к коллекции по месяцам в январе насобиралось 2915132366 документов

но все-таки — при условии, что все чанки переедут на один шард - его потом в обычном режиме можно будет в репликасет перевести? тушим secondary, убираем shardsvr, поднимаемся, ждём синк, делаем его праймари, и то же самое потом с другими серверами или я гоню?

yopp
05.02.2018
10:14:41
Ещё надо учитывать от это https://docs.mongodb.com/manual/reference/limits/#Sharding-Existing-Collection-Data-Size

Max
05.02.2018
10:15:27
Peter
05.02.2018
10:17:38
Можно ли в агрегатке убрать поле если это поле пустой объект

yopp
05.02.2018
10:17:47
Т.е. если задача стоит как сделать это всё без даунтайма, то в общем виде она не решается

Max
05.02.2018
10:18:27
только бекап и восстановление. понял.

Кирилл
05.02.2018
10:34:32


В итоге на выходе в консоли получаю id, которого вообще нет в базе, а todo = undefined

Google
Кирилл
05.02.2018
10:35:39
ObjectId я делаю потому что без него выдаётся ошибка Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters

Вопрос, как правильно мне указать req.params.id=)

Nick
05.02.2018
10:37:01
тебе в чат по ноде

Кирилл
05.02.2018
10:38:10
продублирую туда

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