Имя: Пароль:
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 добавь
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн