Максим
С этим понятно. А по критерию скорости поиска, что будет?
думаю по индексу быстрый поиск и по 1000 доков и по 2000
Nikita
если индекс не перестанет влезать в память %)
Andrey
А зачем мигрировать их в монгу?
Необходимо посмотреть, будет ли поиск работать быстрее
Andrey
А зачем мигрировать их в монгу?
Если есть способ искать одновременно по всем базам в одном экземпляре постгреса, который будет работать за разумное время, поделитесь. Инфу такого рода мне не удалось нигде найти.
Viktar
Не думаю, что смена бд ускорит поиск. Скорее надо смотреть из за чего ищет не приемлемо долго
Михаил
Если есть способ искать одновременно по всем базам в одном экземпляре постгреса, который будет работать за разумное время, поделитесь. Инфу такого рода мне не удалось нигде найти.
Очень странная постановка задачи Окей, а почему монга? Почему в одну базу постгреча не мигрировать? Почему монга а не мариадиби например?
Andrey
Очень странная постановка задачи Окей, а почему монга? Почему в одну базу постгреча не мигрировать? Почему монга а не мариадиби например?
Потому что данных много, поиск происходит по разным полям, добавление новых данных в основном происходит при помощи copy, при котором индексы начинают перестраиваться и поиск ложится. Даже если решить проблему с индексами через их отключение и всего такого остаётся проблема загрузки объема данных (новая база может грузится несколько дней в чистый экземпляр). При этом все начинает дико лагать и ещё много и много проблем. А если не дай боже что то в исходнике не так, copy вставляет часть данных, которую надо каким то образом вычистить. Если делать через транзакции, остаётся проблема с индексами и в целом времени загрузки данных.
Andrey
Плюс банально данные не вмещаются на один сервер, а postgres и mariadb не скейлятся в ширину.
Andrey
Вот и приходится загружать все каждый раз в новую базу, надеясь на лучшее
Andrey
Плюс сам поиск формата, что приходится делать join 8 таблиц, что уже как бы намекает что все это не очень спроектировано
Andrey
К сожалению за проектирование этого всего я не отвечал
Andrey
Так что имеем, что имеем
Михаил
Потому что данных много, поиск происходит по разным полям, добавление новых данных в основном происходит при помощи copy, при котором индексы начинают перестраиваться и поиск ложится. Даже если решить проблему с индексами через их отключение и всего такого остаётся проблема загрузки объема данных (новая база может грузится несколько дней в чистый экземпляр). При этом все начинает дико лагать и ещё много и много проблем. А если не дай боже что то в исходнике не так, copy вставляет часть данных, которую надо каким то образом вычистить. Если делать через транзакции, остаётся проблема с индексами и в целом времени загрузки данных.
Шардирование и партиционирование? Просто выглядит так, что нужно взять DBA и перепроектировать данные, а после масштабировать в рамках одной базы. А также оптимизировать запросы. Потому что по-факту, при переносе всего этого бардака на монгу вы просто дополнительно добавите себе проблем связанных с изменением формата данных с реляционного на не реляционный, а также, напомню, монга не является фулл ACID базой, то есть нужно будет дополнительно писать логику для обеспечения корректности и нормализации данных. Все это приводит к тому, что скорее всего монга только добавит проблем в вашем случае
Андрей
Потому что данных много, поиск происходит по разным полям, добавление новых данных в основном происходит при помощи copy, при котором индексы начинают перестраиваться и поиск ложится. Даже если решить проблему с индексами через их отключение и всего такого остаётся проблема загрузки объема данных (новая база может грузится несколько дней в чистый экземпляр). При этом все начинает дико лагать и ещё много и много проблем. А если не дай боже что то в исходнике не так, copy вставляет часть данных, которую надо каким то образом вычистить. Если делать через транзакции, остаётся проблема с индексами и в целом времени загрузки данных.
Поднимайте отдельную реляционную СУБД, какой-нибудь поколоночник например, стройте репликацию и выполняйте всю аналитику да занимайтесь построением любых отчетов уже из отдельного подготовленного источника, а не из основной продуктовой базы. Пока не представляю, насколько всё может быть через жопу, чтобы в принципе уйти целым бизнес процессом с много данных, как вы говорите, из PG в MongoDB. Геморроя не оберётесь.
Андрей
Тут нужно подходить, исходя из бюджета и доступных ресурсов. Да возможно вам даже на основе той же PG подойдет какое-то решение, если получится уложить всё красиво в пределах одной БД.
Андрей
А так, если хочется прям всё быстренько и красиво, какой-нибудь SAP IQ например и вперёд.
Андрей
Она поддерживает межбазовые запросы
Андрей
дблинком в ходе запроса обращаетесь к другой базе и в конце юнионами объединяете представления
Andrey
Кстати в PG же дблинки есть.
Ооо, вот это видимо то, что я ищу
Андрей
Но если нужно ворочать реально большими объёмами, строить аналитику, то PG вообще не вариант. Мы пробовали распределенную PG через Citus, куча озу, ссд - и это всё равно полнейшее дно. Как балк заливки так и различные аналитические нагрузки в разы проигрывают одиночному серверу с IQ с меньшими железными ресурсами.
Kozimjon
Привет всем)) Короче, куда-то с сервера пропала целая база 🤷‍♂ Дев база на месте, а боевого нет. Ща гуглил как восстановить - но решил тут тоже уточнить, чтоб не снести все окончательно. Никаких бэкапов ещё не было настроено. Система centos. Может кто подсказать проверенный способ? Заранее спасибо
Kozimjon
посмотри может там где-то оставили подпись типа "скинь 2 биткоина и верну базу"
Ты даже не представляешь как ты прав. Я херею ща сижу. Сервер был арендованный
Kozimjon
Фоткаю потому что на этом компе нету тг
Bogdan
наверное неприятно терять базу)
Bogdan
может кто-нибудь рассказать основные способы обезопасить свою бд?
Bogdan
И как быть теперь?
а что там написано?
Kozimjon
Kozimjon
а что там написано?
Ты прям слово в слово угадал
Lid Force
Ты прям слово в слово угадал
может он и оставил сообщение
Bogdan
0.02 БТС а я сказал 2
Kozimjon
0.02 БТС а я сказал 2
Ну знаешь, тут уже суть не в этом
Bogdan
Ну знаешь, тут уже суть не в этом
870 долларов прийдется заплатить
Bogdan
ну или заява в киберполицию
Bogdan
Ну знаешь, тут уже суть не в этом
а у тебя бд в докере была?
Максим
Фоткаю потому что на этом компе нету тг
Если оставить бд без пароля, и торчащую в весь интернет, то они находят в течение пары суток. 😁
Максим
И шифруют
Максим
Надеюсь там ничего ценного не было
Bogdan
Надеюсь там ничего ценного не было
А если так воруют личные данные юзера типа email и телефон то ты будешь как-то отвечать по закону?
Kozimjon
Надеюсь там ничего ценного не было
Ну ничего ценного, прям чтоб по закону отвечать. Только были реальные данные, вот что плохо. Личных данных там не было
Bogdan
Вдруг заплатишь а они все равно сольют или продать даже
Lid Force
Я бы не платил
не факт что вернут и не сольют, начнуть доить
Bogdan
А как вообще правильно организовать бд, я просто не бекендер
Kozimjon
Расскажи как это получилось и как скоро после установки базы?
Проект ещё в разработке, но контент менеджеры через админку начали заливать данные чтоб времени выиграть. Сегодня днём всё работало. А база работала примерно 3 месяца
Максим
А как вообще правильно организовать бд, я просто не бекендер
Хотя бы пароль на подключение к бд поставить. Лучше ключ. Открыть доступ к бд не из всего интернета а только для айпи своих серверов.
Bogdan
Хотя бы пароль на подключение к бд поставить. Лучше ключ. Открыть доступ к бд не из всего интернета а только для айпи своих серверов.
Понял, а как можно ограничить айпи, в настройках монги или на уровне системы это делается?
Максим
Проект ещё в разработке, но контент менеджеры через админку начали заливать данные чтоб времени выиграть. Сегодня днём всё работало. А база работала примерно 3 месяца
У меня такое было. Поставил первый раз бд на сервер, так поиграться. Открыл доступ, пароль не ставил. Думаю, завтра сделаю, кто там её найдёт. Утром уже зашифровано было. Но там пусто было. Просто дропнул базу и новую создал.
Максим
Можно ещё порт поменять с дефолтного. Не знаю делают ли так обычно. Файрвол тоже можно настроить.
Максим
Но это уже не про бд
Максим
Нет 🤦‍♂
Пароля на подключение к бд не было?
Андрей
Что, правда - есть реальные админы, которые выставляют продуктовые базы без авторизации либо с супер юзером/пассом admin/admin в интернет, на протяжении 3 месяцев живут без бэкапов и потом приходят распрашивать, как восстановить данные после хацкера вымогателя?
yopp
870 долларов прийдется заплатить
к сожалению, скорее всего это обман
yopp
в моей практике не было ситуаций, когда с монги куда-то что-то копировали
yopp
Порт монги поменял?
к сожалению это тоже не поможет
yopp
современная малварь умеет сканировать диск на предмет конфигурационных файлов популярных фрейморков или продуктов
yopp
и как следствие извлекать оттуда реквизиты доступа
Kozimjon
Что, правда - есть реальные админы, которые выставляют продуктовые базы без авторизации либо с супер юзером/пассом admin/admin в интернет, на протяжении 3 месяцев живут без бэкапов и потом приходят распрашивать, как восстановить данные после хацкера вымогателя?
Ну тут нужно учесть тот момент, что я вообще ангуляр разраб и сам проект поднимался на чистом энтузиазме (то есть без реального бэкендера). Поднимал на нест жс, так как там ts, и честно скажу - порты у сервера менял, пароли тоже не стандартные. А вот о портах бд либо вообще о защите бд не думал
yopp
наиболее эффективно создавать отдельных пользователей с очень ограниченными правами, из которых точно исклюена возможность сделать dropDatabase
Kozimjon
наиболее эффективно создавать отдельных пользователей с очень ограниченными правами, из которых точно исклюена возможность сделать dropDatabase
А вот сам доступ к серверу был только у меня, поэтому о более защищённом доступе и не думал 🤷‍♂ Короче, пусть берут в штат ещё одного бэкендера, пошел я свои пиксели править