Aleksei
gridfs
Спасибо! Загуглю
Aleksei
Я как скаченные titles карт связаны с файлами, содержащие высоты?
Да пока не знаю, пока только ogr2ogr сконвертил карты в GeoJSON и импортировал в базу
Aleksei
У вас каждый title описывается geojson?
Пока не знаю) я вот по этому ответу сделал, разбираюсь, что получилось в БД https://gis.stackexchange.com/questions/109471/importing-osm-data-into-mongodb
Andrey
Спасибо! Загуглю
Не нужен вам gridfs скорее всего, вам надо искать geojson objects и mongodb
Andrey
Хорошо, это тоже посмотрю, благодарю!
а потом построить индекс 2dsphere Indexes
Andrey
и уже используя методы базы, искать данные, и выводить высоты или что там
Aleksei
@AndrewFoma спасибо, я попробую. Просто мне непонятно, что мне делать с файлами .tiff, которые я накачал. Как загрузить их в PostgreSQL я разобрался, а тут возникли проблемы. Может быть мне стоит поискать рельеф в другом формате, но это ведь всё равно будут графические файлы, как я понимаю
Aleksei
а что вы будете делать с тиф файлами?
У меня есть задача по заданному участку дороги получить высоты. Я решил скачать карты OSM и рельеф SRTM (.tiff) — все эти данные бесплатны. Как загрузить карты в MongoDB я с горем пополам нашёл инфу (хотя ищу её не так долго, может быть есть несколько простых и эффективных шагов). А вот как работать с SRTM я не понимаю.
Oyatillo
У меня очень большая база данных какие рекомендации даёте чтобы работало быстрее. Щас у цп очень большая нагрузка
yopp
У меня есть задача по заданному участку дороги получить высоты. Я решил скачать карты OSM и рельеф SRTM (.tiff) — все эти данные бесплатны. Как загрузить карты в MongoDB я с горем пополам нашёл инфу (хотя ищу её не так долго, может быть есть несколько простых и эффективных шагов). А вот как работать с SRTM я не понимаю.
Геоиндексы в монге двухмерные, они не поддерживают карту высот. Сама поддержка GeoJSON ограничена двухмерными объектами https://www.mongodb.com/docs/manual/reference/geojson/ Не уверен, можно ли внутри объектов хранить трёхмерные координаты, при этом используя для поиска только две оси из трёх. В любом случае, даже если это возможно, вам придется преобразовать карту высот в GJSON объекты Думаю что вы можете хранить тайлы карты высоты в tiff, например по gridfs соглашению, добавив отдельное поле с полигоном опоясывающим тайл в GeoJSON. В таком случае вы сможете найти нужные тайлы по 2d координате, получить tiff с высотами и уже на стороне приложения их обрабатывать
yopp
У меня очень большая база данных какие рекомендации даёте чтобы работало быстрее. Щас у цп очень большая нагрузка
Базовые рекомендации есть в этих двух статьях: https://www.mongodb.com/basics/best-practices https://www.mongodb.com/docs/manual/tutorial/optimize-query-performance-with-indexes-and-projections/ В первую очередь вам нужно найти запросы которые создают нагрузку. Встроенный инструмент это профайлер https://www.mongodb.com/docs/v3.6/tutorial/manage-the-database-profiler/ Он позволяет обнаружить запросы которые выполняются больше чем заданное время (по-умолчанию 100мс). Исходя из того какие запросы туда попадают, вы сможете подобрать подходящее решение, например добавить индексы или изменив запрос на стороне приложения (например, если какие-то запросы вызывают «каскадные чтения», например к комментариям подгружаются профили пользователей, а ваш драйвер не использует $lookup или не группирует запрос в один)
yopp
Коллеги, добры день! Подскажите, плиз. Обладает ли MongoDB от Percona, в обвязке со всеми рюшечками типа PMM, PBM, etc., всем необходимым функционалом, который есть в OPS Manager? Я вот смотрю у перконы ещё и с документацией как-то всё печальненько ...
К сожалению инструменты от Percona не могут полностью заменит Ops Manager. Как минимум у перконы совсем нет инструментов для управления деплойментами (провижен, апгрейды, изменение топологии), нет data explorer, аудита логов.
Sergey
К сожалению инструменты от Percona не могут полностью заменит Ops Manager. Как минимум у перконы совсем нет инструментов для управления деплойментами (провижен, апгрейды, изменение топологии), нет data explorer, аудита логов.
А для шардированных монг желательно юзать ops manager?) У меня был просто опыт больше с репликасетами ))) а тут я глянул архитектуру шардовой монги и ужаснулся)))) а если руками это всё запускать и сопровождать... Это какая то жесть получается
Sergey
Вот и решил подумать на тему OPS Manager
yopp
Зависит от вашего бюджета и размера кластера :) Ops Manager это коммерческий и достаточно дорогой продукт, который теперь работает только с enterprise деплойментами (с 5 версии по-моему)
yopp
Дорогой потому что идет только с коммерческой версией, а это раньше было несколько десятков тысяч долларов за 3 ноды
yopp
Если у вас шард не из сотни нод, то в целом это средние по размеру трудозатраты, при наличии инструментов для оркестрами типа ансибла или шефа
yopp
Из совсем ценных вещей там бэкапы, с ними несколько сложнее. PBM до какой-то степени решает ряд проблем, но там достаточно неприятная кривая обучения работы с ним
Sergey
Из совсем ценных вещей там бэкапы, с ними несколько сложнее. PBM до какой-то степени решает ряд проблем, но там достаточно неприятная кривая обучения работы с ним
Ну вот вроде как в Enterprise у монги есть решение для снятия консистентного бэкапа с шардированного кластера. В комьюнити болт, а у Percona с документацией всё плохо.
Andrey
а что вы будете делать с тиф файлами?
Ссылками на s3 если они просто raw изображения.
NO WAR!
Всем привет. Обновил сегодня mongo до 4.4.21. Перестала запускаться. Выдает ошибку. До обновления прекрасно работала 4.4.18. Как лечить?
Alexander
Всем привет. Обновил сегодня mongo до 4.4.21. Перестала запускаться. Выдает ошибку. До обновления прекрасно работала 4.4.18. Как лечить?
ILL - illegal instruction. Вы точно до 4.4.21, а не 5.0+ обновились? Насколько я помню именно с версии 5.0 MongoDB требует поддержки инструкций AVX на CPU.
Alexander
Откатитесь назад, 4.4.20 к примеру, возможно 4.4.21 была собрана не с теми флагами
Mark
Всем привет. Подскажите бест вей для динамической сортировки списка. Если сортировать по индексу, то придется обновлять все индексы ниже. Можно конечно сортировать, забыл как называется этот вариант, где добавляются буквы "a", "ab", "abc", "b". Хотел бы узнать, мб у монги есть какое то уже полуготовое решение либо самое подходящее?
🤓🤓🤓
как можно увидеть схему коллекции в компасе?
Mark
Если перефразируешь свой вопрос, то мб и отвечу
Есть некий список из 10 элементов, который отсортирован по полю, допустим, listIndex: number. Я перетаскиваю 10 элемент на место 4 элемента. Теперь, по логике, я должен у 10 элемнта обновить listIndex на 4, а также обновить все индексы ниже. Вопрос, есть ли вариант получше, чтобы обновлять минимум документов?
Mark
Возможно вы про это спрашиваете: .updateMany({ listIndex: { $gt: 4 } }, { $inc: { listIndex: 1 } })
Да, это обновит все нижние индексы, но это считается норм практикой? А если у меня будет миллион документов
Dmitry
Да, это обновит все нижние индексы, но это считается норм практикой? А если у меня будет миллион документов
Если у тебя несколько млн записей, то использование оператора updateMany может привести к существенной нагрузке. Можно через bulkWrite, только это не лучше вариант т.к. может возникнуть блокировка коллекции. Также не стоит забывать про index т.к. он ускорит процесс выполнения запроса
Dmitry
Всем привет. Подскажите бест вей для динамической сортировки списка. Если сортировать по индексу, то придется обновлять все индексы ниже. Можно конечно сортировать, забыл как называется этот вариант, где добавляются буквы "a", "ab", "abc", "b". Хотел бы узнать, мб у монги есть какое то уже полуготовое решение либо самое подходящее?
Мне не известна полная структура вашей коллекции, но для оптимизации сделал бы следующий вариант. Каждый документ знает кто перед ним и кто после него стоит. Когда надо заменить документы местами, например 4 и 8, то в документах 3 5 7 9 меняем id документа. Возможно ещё в качестве защиты от дурака, создал бы индекс, который гарантирует, что ссылка на элемент выше и ниже не дублируется, но тут всё равно зависит от поставленной задачи
...
When I download mongosh, it appears as a zip file, and when I open it, it shows a black interface and asks to write something. What is it?
🤓🤓🤓
mongodb://localhost/
Abdurazzoq
I don't know what to do
Там показано же пример. Ты должен вести URI mongodb
Dmitry
what is mongodb URI
https://www.mongodb.com/basics/get-started
Abdurazzoq
what is mongodb URI
По гугли пожалуйста и учись всегда сначала гуглить и потом если не найдёшь ответ, можешь спросить
NO WAR!
Всем привет. Обновил Mongo 4.4.18 до 4.4.21. Перестала запускаться. Вчера уже спрашивал здесь. Посоветовали даунгрэйднуть. Даунгрэйднул. Не помогло. Даже 4.4.18, которая до этого прекрасно работала, теперь не запускается с той же ошибкой. Есть у кого-нибудь идеи что это может быть и как это лечить? Кстати. Вместе с Mongo обновилось несколько других пакетов, но я даже не помню что это были за пакеты.
NO WAR!
Посмотрите в journalctl что за ошибка
Подскажите, пожалуйста, где это смотреть.
Alexander
sudo journactl -xe, кажется
NO WAR!
sudo journactl -xe, кажется
Показывает, но не то что нужно.
Артем
открой/var/log/mongodb, там будет лог файл как-то так
NO WAR!
открой/var/log/mongodb, там будет лог файл как-то так
пытаюсь его смотреть. Он 300Мб. Пара минут потребуется.
Артем
пытаюсь его смотреть. Он 300Мб. Пара минут потребуется.
отключи приложения что к ней обращаются, перезапусти базу и сделай какой-нибудь tail
Сергей
Народ какой метод в mongoDB вставляет документ в коллекцию и возвращает в качестве потверждения этот же документ, но уже с айдишкой? insert пишут устарел insertOne возвращает только идентификатор и на том спасибо Или прийдётся писать повторный запрос на получение этого документа? Хотя для админских возможностей это не критично Даже опшин убрали из метода, теперь не указать необходимость возврата документа с айдишкой Мне нужно вернуть в состояние новое значение, чтоб не ресать страничку
メメメ
Вот всё не пойму, Mongo по определению schemaless или flexible schema? На их же сайте написано и так, и так, но при этом там же читал какую-то статью, где было написано, что у Mongo flexible schema и это не тоже самое, что и schemaless... Может кто прояснить, что же всё таки на самом деле в монго и в чём разница между этими двумя свойствами
Lukaš 🇨🇿
А зачем что-то проверять самой монгой, если это все равно сделает бэкенд
Alexandrr
вложил много сил и щас его и тебя за спам заблочат
Alexander
Всем привет. Обновил Mongo 4.4.18 до 4.4.21. Перестала запускаться. Вчера уже спрашивал здесь. Посоветовали даунгрэйднуть. Даунгрэйднул. Не помогло. Даже 4.4.18, которая до этого прекрасно работала, теперь не запускается с той же ошибкой. Есть у кого-нибудь идеи что это может быть и как это лечить? Кстати. Вместе с Mongo обновилось несколько других пакетов, но я даже не помню что это были за пакеты.
Надо копать в сторону архитектуры бинарников, похоже на то, что бинарники из пакетов скомпилированы под архитектуру не совместимую с архитектурой процессора на сервере. Как я писал выше ILL - illegal instruction, CPU не знает как выполнить какую-то инструкцию внутри бинарника.
Alexander
Как объяснить то, что до обновления 4.4.18 прекрасно работал, а теперь и он не запускается?
Это не мой сервер, я не могу объяснить что на нём происходит - может неправильный feed пакетов подключен, может ещё что. ILL говорит сам за себя.
NO WAR!
Это не мой сервер, я не могу объяснить что на нём происходит - может неправильный feed пакетов подключен, может ещё что. ILL говорит сам за себя.
Может подскажете, как сохранить существующие базы? Гугление выдает как делать бэкапы при работающем Монго, а вот как не потерять при неработающем, ничего не могу найти.
Max
Как объяснить то, что до обновления 4.4.18 прекрасно работал, а теперь и он не запускается?
в вашем скрине видна монга 4.4.21, а не 4.4.18, про которую вы говорите, что задаунгрейдились. про ILL - в ченжлоге монги, https://www.mongodb.com/docs/manual/release-notes/4.4-changelog/#std-label-4.4.21-changelog ,есть строка - "SERVER-71772 Update ARM builds to target armv8.2-a on older branches" у вас там raspberrypi, возможно, вас и зацепило. попробуйте все же задаунгрейдиться, убедиться, что именно 4.4.18, и запустить ее.
Andrey
Может подскажете, как сохранить существующие базы? Гугление выдает как делать бэкапы при работающем Монго, а вот как не потерять при неработающем, ничего не могу найти.
Если база разумного размера, то все у вас хранится по пути, указанному в конфиге монги. На остановленной монге, можете просто скопировать в другое место всю директорию.
Max
Даунгрэйдился и до 4.4.18 и до 4.4.10, не помогало, поэтому уже апдейтнулся обратно.
я вижу то, что вы прислали, догадываться за вас не могу пробуйте.
Max
https://www.mongodb.com/community/forums/t/core-dump-on-mongodb-4-4-19-on-rpi-4/215223 - прям ваш случай.
Андрей
Как объяснить то, что до обновления 4.4.18 прекрасно работал, а теперь и он не запускается?
Судя по тому, что описано выше, то объясняется полным непониманием что, почему/для чего и откуда обновляется, неумением грепать логи и даже вскрыть конфиг, чтоб найти этот лог. Скачайте уже скомпилированные бинарники с сайта MongoDB под вашу ОС и архитектуру, скопируйте файлы базы данных по пути, который обычно включает каталог /data, создайте отдельный конфиг под это дело и запустите бинарник на этом конфиге.