Имя: Пароль:
IT
Админ
Альтернативы PostrgreSQL, для наискорейшего массового изменения
0 GANR
 
22.10.23
09:11
Существует ли в природе СУБД или иное средство, способное максимально быстро выполнить подобную операцию Postgresql 12.6. Как ускорить скрипт с update? Обновление 18 млн записей по юрлицам РФ ?

Время от начала изменения данных до его окончания с возможностью восстановления быстрого поиска должно быть минимально.

На слуху такие вещи как Kassandra, графовая БД, Elastic Search, тарантул. Что может помочь?
1 АНДР
 
22.10.23
09:46
Огласите бюджет и характеристики помещения серверной.
2 shuhard
 
22.10.23
09:47
(1) ты хотел сказать Дата центра ?
3 vde69
 
22.10.23
09:58
типичный подход новой школы

новая школа - дайте мне супер инструмент тогда сделаю эту хрень

старая школа - у нас нет супер инструментов, значит изменим задачу так, что-бы текущим инструментом можно решить.


к сожалению старой школы все меньше и меньше....
4 Кирпич
 
22.10.23
10:44
(0) Так там же вроде проблема была в том, что какой то дятел засунул данные, по которым нужно чего то вычислять, в JSON.
Кассандра-массандра выбирается в зависимости от задачи. Какая задача - неизвестно. Может нужны текстовые файлы и компилятор, а может просто запрос в Postgresql надо правильно написать.
5 Волшебник
 
22.10.23
11:06
(0) Для скорейшего изменения есть колоночные СУБД, например, wiki:ClickHouse
Там нет транзакций и UPDATE только пакетный. Зато всё быстро
6 GANR
 
22.10.23
12:36
(5) Спасибо! Беру на заметку.
(1) Предположим, если 1Тб SSD и 200Гб ОЗУ раздобыть что это даст?
7 shuhard
 
22.10.23
12:40
(6) [1Тб SSD] если у тебя до сих пор HDD, то SSD решит проблему "узких" мест
8 ansh15
 
22.10.23
12:41
GT.M или аналог https://platforms.su/platform/5261
Если не страшно окунаться в MUMPS.. :)
А так - grep, sed, awk, еще что-нибудь. Для структурированног о текста 18-20 млн. строк вполне должно хватить, комп только поприличней.
9 GANR
 
22.10.23
12:45
(8) [grep, sed, awk] хотите сказать, сунуть файлы ЕГРЮЛа на диск, а потом просто работать с ними обычными файловыми операциями без всяких СУБД?
10 H A D G E H O G s
 
22.10.23
13:37
(0) Автор, что не так с отдельными колонками поиска? Которые один раз надо заполнить из json и потом искать уже по ним?
11 ansh15
 
22.10.23
13:39
(9) Почему нет? Попробовать же можно. Причем, каждый файл можно обрабатывать в отдельном процессе, по числу высокоэффективных ядер, если файлы большие.
12 Djelf
 
гуру
22.10.23
15:08
(10) Они давал ссылку в (0) что "По одному ОГРН возможно несколько записей.".
Что мешает ему это выкинуть в отдельную таблицу SQL из JSON мне не ведомо.
Да и работает он на достаточно древнем PostrgreSQL 12.6, в более новых версиях, работа с индексами JSON значительно расширена, насколько могу это заметить.
13 Chai Nic
 
22.10.23
17:50
(3) нет, старая школа это "у нас нет инструментов для решения задачи, значит будем делать инструменты, а задача потом"
14 Chai Nic
 
22.10.23
18:01
JSON, равно как и XML, несовместимы с производительностью. Для производительности структуру БД надо приводить к нормальной форме согласно теории реляционных баз данных. Не должно быть никаких подлежащих парсингу блобов в полях.
15 NorthWind
 
22.10.23
18:35
Хм... Ну хорошо, найдете вы средство для расшива узких мест. Но вам ведь придется сначала влить 18 лямов записей в это средство, потом вернуть измененное назад в Postgres. Вы думаете, это будет лучше, чем в имеющемся Postgres перейти от JSON к колоночному представлению, например?
16 GANR
 
22.10.23
19:11
(14) Это точно - поля по которым идет поиск надо выносить из блобов. Я надеялся, что индекс сохранит значения этих полей и постгрес будет искать инфу в индексе, однако поделав простые селекты я понял, что это так не работает - все равно СУБД лезет в эту блобину.
17 dmrjan
 
23.10.23
08:12
А как насчет того, чтобы поставить задачу в компанию Постгрес Профессионал. Кстати - у Вас какая версия - стандарт или enterprise?
18 Chai Nic
 
23.10.23
08:25
(16) Надо данные хранить нормализованно без блобов, а для выдачи в пользовательское АПИ c json формировать view. Тогда будет быстро и правильно.
19 Garikk
 
23.10.23
09:59
(18) не всегда надо прям вообще все данные хранить нормализовано, иначе будет очень большие накладные расходы на их извлечение
20 Garikk
 
23.10.23
09:59
если они не учавтсвуют в поиске, то иногда правильнее хранить их в блобе
21 Valdis2007
 
23.10.23
10:09
(0) На слуху такие вещи как Kassandra, графовая БД, Elastic Search, тарантул ...тогда еще Redis добавь
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший