
Сергей
24.08.2018
16:23:30
скорей всего да
то есть по одной строке в 200 таблиц?

Yukari
24.08.2018
16:30:22
Можете не успеть, если высока транзакционная нагруженность

Google

Yukari
24.08.2018
16:30:49
Какое время коммита операции записи на вашей среде?
Какая скорость ответа диска?
Сгенерируйте в сессии операции инсерта, посмотрите, на что уходит больше всего времени
Для быстрой записи мелких объемов лучше использовать ин-мемори решения. Из них в свою очередь, вычитывать в субд
Транзакциями по-крупнее

another
24.08.2018
17:12:15
но тут как говорится нет волшебного метода.

Yukari
24.08.2018
17:57:52
Если нужно все и сразу...а что если ms SQL или oracle?
А то есть еще и сетевые задержки
Если это какие то крайне важные в своей последовательности данные, можно на счет очередей Kafka поразмыслить. Из него удобно забирать данные м порядком их прихода в очередь, и опять же, кафки можно наплодить и сделать отказоустлйчивыми

Alexandr
24.08.2018
18:04:57

Yukari
24.08.2018
18:07:41
Вот да. Все зависит от задачи.

Google

another
24.08.2018
18:14:14

Alexandr
24.08.2018
18:21:48
Почему 60 байт в 200 таблиц, а не 200 байт в 60? Что за задача такая?

MikaelBox
24.08.2018
18:38:34
Ребята срочняк! Надо нечто чем можно перенести, конвертировать из mssql в postgresql
Как показывает практика перенос в лоб базы с mssql на postgres не совсем целесообразен. Лучше провести переделку базы с учётом других типов данных и особенностей постгреса.
Но если уж очень надо сделать как было, то нет ничего проще: сделать выгрузку ddl базы с mssql и заменой в файле поменять типы данных на постгрессовские. Данные выжрать с помощью bcp, а грузить командой copy. Файлы после bcp желательное ещё мальца обработать, чтобы залетели данные в pg

Anton [Mgn, az09@osm]
24.08.2018
18:39:08
подскажите плиз как быстро "охладить" базу? т.е. вытолкнуть из кеша то что там сидит. база тестовая так что могу даже перезагрузить если это поможет )

Alex
24.08.2018
19:08:59

R
24.08.2018
19:55:55
Подскажите с запросом. Версия 9.4
Пытаюсь в поле pass_JSON типа jsonb(ключ serialNumber) записать значение из поля типа стринг serial_number.
При таком запросе запишется, конечно же просто строка
update passes
set "pass_JSON" = jsonb_update("pass_JSON", '{"serialNumber": "serial_number"}')
where id = 185
функция jsonb_update
jsonb_update (jsonb, jsonb)
SELECT json_object_agg(key, value)::jsonb
FROM (
WITH old_data AS (
SELECT * FROM jsonb_each(data)
), to_update AS (
SELECT * FROM jsonb_each(update_data)
WHERE key IN (SELECT key FROM old_data)
)
SELECT * FROM old_data
WHERE key NOT IN (SELECT key FROM to_update)
UNION ALL
SELECT * FROM to_update
) t;
Как мне во второй параметр передать '{"serialNumber": pass.serial_number}'?
При таком запросе выдает ошибку


another
24.08.2018
22:16:24
как динамически создават таблицы с помощью psycopg2 и executemany? он их оборачивает в кавычки
можно как-то обойти? потому что правда нужно
понимаю что он там заботится чтобы левых данных не накидали но всё же

Terminator
25.08.2018
04:02:13
@bontack будет жить. Поприветствуем!

Alexander
25.08.2018
07:42:52
Гугл плачет. Ссылочкой не подсобишь?
https://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#Microsoft_SQL_Server
и вот ещё - https://github.com/isapir/Migrate2Postgres

Terminator
25.08.2018
10:06:24
@halt7 будет жить. Поприветствуем!

Alex
25.08.2018
10:17:05
Парни, привет.
Задача следующая.. Есть таблица tariffs с 3-мя столбцами - prefix, name, price
в столбце prefix прописан префикс направления, например 7926 и т.д.
Как получить значение price используя полный номер (destination_number)
т.е. начало такое SELECT price FROM tariffs WHERE 79268502525........
Поскажите, пжлст, как вытянуть значение price?

Anton [Mgn, az09@osm]
25.08.2018
10:39:34

Alex
25.08.2018
10:40:42
префикс может быть с разным кол-вом знаков

Anton [Mgn, az09@osm]
25.08.2018
10:41:09
но он хотя бы текстовый?

Alex
25.08.2018
10:44:22
character varying

Anton
25.08.2018
10:48:50
where destination_name like prefix||’%’
Но не совсем все же понятно описание

elfiki
25.08.2018
10:51:45
видимо надо найти такую запись, где префикс будет максимально длинным для номера

Google

Alex
25.08.2018
10:57:39
да, естественно. например 7926 и 79260 это разные префиксы, нужен тот, который длиннее

another
25.08.2018
11:01:33
Привет, если я дропаю много таблиц, то они показываются предварительно , как подтвердить удаление?
через psql

Alex
25.08.2018
11:11:53
всё, разобрался
WHERE '89268502525' LIKE CONCAT(prefix,'%') ORDER BY CHAR_LENGTH(prefix) DESC LIMIT 1 OFFSET 0

Yukari
25.08.2018
11:21:01
Конкатенацию использовать?
Select prefix, || name, price
Запятую мог не там поставить
Иде под рукой нет
select prefix || name, price
Вот

Alex
25.08.2018
11:31:02
Спасибо. И так попробую

Yaroslav
25.08.2018
11:48:20

Anton
25.08.2018
11:53:40
Подскажите, а расширение trgm (кажется от pgpro) поддерживается еще? Где-нибудь можно посмотреть некий каталог расширений для pg?

Yaroslav
25.08.2018
12:00:39
> Подскажите, а расширение trgm (кажется от pgpro) поддерживается еще?
Если это действительно от них, это Вам нужно на их сайте смотреть, наверное...
А что это за расширение, кстати?
> Где-нибудь можно посмотреть некий каталог расширений для pg?
Например, https://pgxn.org

Darafei
25.08.2018
12:08:36

Anton
25.08.2018
12:09:47

another
25.08.2018
12:11:48

Yaroslav
25.08.2018
12:12:31

another
25.08.2018
12:13:58

Google

Anton
25.08.2018
12:24:10
Мы проектируем сейчас систему проверки на заимствования в текстах. Вот я и размышляю какие технологии лучше всего использовать для этого. Давно работали с trgm. Вот вспомнил про это. Размышляю.

Yaroslav
25.08.2018
12:30:50

Darafei
25.08.2018
12:31:23
С 8.3

Anton
25.08.2018
12:31:24

Darafei
25.08.2018
12:32:36
С февраля 2008

Anton
25.08.2018
12:36:57
С февраля 2008
Последнее время приходится работать с плохо документированными проектами. По привычке забываю, что у postgres отличная документация.
Спасибо, что на такие банальные вопросы не лень отвечать. Буду исправляться. :)

Fike
25.08.2018
12:43:32

Anton
25.08.2018
12:45:07
Точнее уровня бд пока за глаза будет. А потом уже над результатами более тонкие вещи применять
Включая даже нейросети. Но пока хочу грубо решить задачу

Konstantin
25.08.2018
17:21:44
Всем привет. Подскажите, что делать. Я в postgresql новичок. Суть проблемы - после правки конфига (перед правкой я сделал резервные копии этих файлов - postgresql.conf, pg_hba.conf) у меня перестало работать подключение к базе. Я вернул прежние версии конфигов, перезапустил сервер и все равно безрезультатно. Перезагрузил ubuntu, теперь вообще даже порт 5432 закрыт.
В postgresql.conf задано listen_addresses = '*' и port = 5432

Taras ?
25.08.2018
17:36:47
в pg_hba строчка начинается с host
что там пишет?
там кажись тоже можно только локалхост слушать, нет?
и можно не перезагружать а просто
sudo service postgresql restart

Konstantin
25.08.2018
17:46:26
конфиг был полностью рабочий, к базе подключался удаленно, но стоило мне его изменить и восстановить - все упало

Mike Chuguniy
25.08.2018
18:36:32
Konstantin я всё понимаю, админы баз данных вообще, и постгресовые в частности, владеют телепатией в той или иной мере, но вот стОит включение этого навыка явно не для кармана новичка. А посему, будьте любезны привести рабочие конфиги и изначальные. Желательно избавив вывод от описательных комментариев. Если вам действительно нужна помощь.

Google

Konstantin
25.08.2018
18:43:43
postgresql.conf - https://pastebin.com/XExbWr9U
pg_hba.conf - https://pastebin.com/bVEd2KVi
это конфиги, который я вернул, то есть изначальные

Mike Chuguniy
25.08.2018
18:46:39
порт не слушается. А вообще процессы постгресовые есть? что systemctl status postgresql<чего-нибудь там> выдаёт?

Konstantin
25.08.2018
18:47:55
ticket@ticketserver:~$ systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor prese
Active: active (exited) since Вс 2018-08-26 01:31:09 +07; 16min ago
Process: 8065 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 8065 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/postgresql.service
авг 26 01:31:09 ticketserver systemd[1]: Starting PostgreSQL RDBMS...
авг 26 01:31:09 ticketserver systemd[1]: Started PostgreSQL RDBMS.
процессов нет


Mike Chuguniy
25.08.2018
18:55:20
> active (exited)
у меня вот такая простынка:
user@desktop ~ $ systemctl status postgresql-10.service
● postgresql-10.service - PostgreSQL database server
Loaded: loaded (/lib/systemd/system/postgresql-10.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/postgresql-10.service.d
└─override.conf
Active: active (running) since Tue 2018-07-17 04:54:31 MSK; 1 months 9 days ago
Main PID: 3327 (postgres)
Memory: 16.7M
CGroup: /system.slice/postgresql-10.service
├─3327 /usr/lib64/postgresql-10/bin/postgres -p 5432 -D /var/lib/postgresql/10/data
├─3402 postgres: logger process
├─3836 postgres: checkpointer process
├─3837 postgres: writer process
├─3838 postgres: wal writer process
├─3839 postgres: autovacuum launcher process
├─3840 postgres: stats collector process
└─3841 postgres: bgworker: logical replication launcher
июл 17 04:35:26 desktop systemd[1]: Starting PostgreSQL database server...
июл 17 04:35:27 desktop postgres[3327]: 2018-07-17 04:35:27.079 MSK [3327] СООБЩ
ЕНИЕ: для приёма подключений по адресу IPv6 "::1" открыт порт 5432
июл 17 04:35:27 desktop postgres[3327]: 2018-07-17 04:35:27.080 MSK [3327] СООБЩ
ЕНИЕ: для приёма подключений по адресу IPv4 "127.0.0.1" открыт порт 5432
июл 17 04:35:27 desktop postgres[3327]: 2018-07-17 04:35:27.101 MSK [3327] СООБЩ
ЕНИЕ: для приёма подключений открыт сокет Unix "/run/postgresql/.s.PGSQL.5432"
июл 17 04:35:27 desktop postgres[3327]: 2018-07-17 04:35:27.252 MSK [3327] СООБЩ
ЕНИЕ: передача вывода в протокол процессу сбора протоколов
июл 17 04:35:27 desktop postgres[3327]: 2018-07-17 04:35:27.252 MSK [3327] ПОДСК
АЗКА: В дальнейшем протоколы будут выводиться в каталог "/var/log/postgres".
июл 17 04:54:31 desktop systemd[1]: Started PostgreSQL database server.
Как говорится, найдите разницу. Смотрите, что в логах


Konstantin
25.08.2018
19:00:47
в логах у меня повторяются 2 строчки
2018-08-26 01:31:08 +07 [7927-1] LOG: redirecting log output to logging collector process
2018-08-26 01:31:08 +07 [7927-2] HINT: Future log output will appear in directory "pg_log".
прошу прощения, нашел лог
2018-08-26 01:31:08 +07 [7927-3] LOG: could not open configuration file "/etc/postgresql/9.5/main/pg_hba.conf": Permission denied
2018-08-26 01:31:08 +07 [7927-4] FATAL: could not load pg_hba.conf

Anton [Mgn, az09@osm]
25.08.2018
19:09:32
>Permission denied
вот и ответ