@pgsql

Страница 684 из 1062
Pavel
19.02.2018
21:10:25
Всем привет. Если куму нужна json_table (Oracle like) - я написал такую https://github.com/Pavel-II/plpgsql-json-table реализацию функции. Есть аналог NESTED PATH. Пока патч https://www.postgresql.org/message-id/132f26c4-dfc6-f8fd-4764-2cbf455a3aec%40postgrespro.ru не приняли или на старых версиях будет актуально. Реализация стандарту SQL/JSON не соответствует и писалась в спешке. Буду благодарен за фидбек.

Denis
19.02.2018
21:31:58
почему это не то же самое, что делает jsonb_to_recordset?

Alex
20.02.2018
02:57:01
Есть проблема с подключением к БД на удвленном сервере. Ограничитель ip и прочее в правилах безопасности. Хочу сделать двойной ssh тунель. С компа на промежуточный локальный сервер, с него на сервер с БД. Есть примеры такого?

Victor
20.02.2018
03:14:31
Это называется jump host можно стандартными средствами ssh portforwarding сделать

Google
Victor
20.02.2018
03:15:14
Доберусь до работы - скину

Andrey
20.02.2018
03:40:43
Добрый день!

Не знаю как сюда задавать вопросы, но у меня такая проблема: https://www.linux.org.ru/forum/admin/14034511

Yaroslav
20.02.2018
07:01:06
Pavel
20.02.2018
07:22:52
почему это не то же самое, что делает jsonb_to_recordset?
@livinbelievin нет. Было бы тоже самое pgpro не писали бы свой патч

Alex
20.02.2018
07:36:16
Погугли ssh -L 5432:localhost:5432 host
Спасибо, нашел подходящую статью на хабр

Dmitry
20.02.2018
07:40:24
а так патч про который тут упоминали: https://www.postgresql.org/message-id/flat/7b7f3e98-9753-3fa9-aaa4-b6f8a766c251%40postgrespro.ru#7b7f3e98-9753-3fa9-aaa4-b6f8a766c251@postgrespro.ru

Mike Chuguniy
20.02.2018
07:56:45
Нет --help -h -help и тд варианты не срабатывают
Нехорошо старших обманывать:

[mshurutov@pgbench ~]$ /usr/pgsql-10/bin/postgresql-10-setup --help Usage: /usr/pgsql-10/bin/postgresql-10-setup {initdb|upgrade} [SERVICE_NAME] Script is aimed to help sysadmin with basic database cluster administration.

и дальше:

Google
Mike Chuguniy
20.02.2018
07:57:40
Environment: PGSETUP_INITDB_OPTIONS Options carried by this variable are passed to subsequent call of `initdb` binary (see man initdb(1)). This variable is used also during 'upgrade' mode because the new cluster is actually re-initialized from the old one.

Т.е. вам надо в переменной окружения PGSETUP_INITDB_OPTIONS определить ключ и значение для каталога, что-то типа:

PGSETUP_INITDB_OPTIONS="-D /opt/pg_data/10/data"

Dmitry
20.02.2018
07:59:46
хмм по пробую спс

Andrey
20.02.2018
08:12:42
Danil
20.02.2018
08:33:27
Привет всем, проблемка есть! Конфигурация не самая обычная - 9.6.7 + Win10 или WinServer2016R2 (трабл на обоих ОС). Проблема такая - попытался настроить доступ по локальной сети, поправил postgresql.conf и pg_hba.conf, рестартанул сервер - не работает. Может что забыл?



нетстат для 5432 вот что выдает



это кусок pg_hba

ну а в postgresql.conf -



crux
20.02.2018
08:36:48
iptables ?

а, винда

ну файрволл

Danil
20.02.2018
08:38:23
нет его, админы говорят.

Dmitry
20.02.2018
08:38:58
crux
20.02.2018
08:39:02
с клиентской машины telnet servername 5432 попробуйте для начала

Danil
20.02.2018
08:39:16
пробовал с клиентской, не проходит

Dmitry
20.02.2018
08:39:32
покажи это админу

Google
Dmitry
20.02.2018
08:39:37
что телнет не работает

crux
20.02.2018
08:39:50
телнет? ну значит точно на транспорте где-то режется, пусть админы глаза растопырят

Dmitry
20.02.2018
08:39:51
как повод того что стоит файр, так как слушается на машине 0.0.0.0

crux
20.02.2018
08:40:24
а клиентская в той же подсети?

Danil
20.02.2018
08:40:33
да, подсеть та же

телнет на рдпшный порт с клиентской заходит на ура, а не 5432 таймаут

*на

crux
20.02.2018
08:41:13
а локально с сервера подключается?

по внешнему айпи

не на локалхост

Danil
20.02.2018
08:42:29
да, по внешнему с самого сервера ок

crux
20.02.2018
08:42:41
ну админы врут скорее всего

Danil
20.02.2018
08:42:46
nc <IP> 5432 -zvvv -w 1
это на сервере или на клиенте нужно?

Dmitry
20.02.2018
08:42:54
на сервере еще что-то сетевое доступно? типа покажи: nc <IP> 22 -zvvv -w 1 (или telnet) ssh должен быть доступен

и покажи что 5432 не доступен + скрин листена

crux
20.02.2018
08:44:04
у него винда ж, на клиенте тоже скорее всего, откуда там nc

Dmitry
20.02.2018
08:44:12
а блин туплю.

Danil
20.02.2018
08:44:42
да, я телнетом пробивал

спасибо за помощь

Google
crux
20.02.2018
08:45:54
грамотная винда )

Danil
20.02.2018
08:51:56
ну, здесь на клиенте нет)

Alexandr
20.02.2018
09:54:16
всем привет, подскажите пожалуйста, как можно из двух запросов вида SELECT sum(quantity) as volume, mat.sellerid as userid, buyerid from table.trades mat GROUP BY sellerid; SELECT sum(quantity) as volume, buyerid from table.trades mat GROUP BY buyerid; сделать одно суммирование где buyerid = sellerid

Mike Chuguniy
20.02.2018
09:56:45
У вас второй запрос должен отвалиться с ошибкой.

Victor
20.02.2018
09:58:04
не совсем понял, не то?: SELECT sum(quantity) as volume, mat.sellerid as userid, buyerid from table.trades mat where buyerid=sellerid GROUP BY sellerid;

Mike Chuguniy
20.02.2018
10:00:14
@vitek_ru @LychanginAV GROUP BY хочет, чтобы в нём были перечислены все столбцы, не участвующие в агрегировании. Т.е. будет что-то вроде: SELECT sum(quantity) as volume, mat.sellerid as userid, buyerid from table.trades mat where buyerid=sellerid GROUP BY sellerid, buyerid;

Mike Chuguniy
20.02.2018
10:06:26
А вы посмотрите, сколько у вас пар, где buyerid = sellerid

Alexandr
20.02.2018
10:10:16
А вы посмотрите, сколько у вас пар, где buyerid = sellerid
я неправильно выразился, надо просуммировать buyerid пользователся с его sellerid, при этом в одной колонке buyerid != sellerid

Antony
20.02.2018
10:27:17


Добрый день, товарищи! Заранее прошу прощения за нубский вопрос. Пытаюсь грамотно настроить права в Постгреce (версия 9.6) и вот такие места https://dba.stackexchange.com/a/33960 сбивают с толку. В смысле REVOKE из схемы public. Может кто-нибудь подсказать как правильно реализовать схему прав как на диаграмме ☝️?

Dmitry
20.02.2018
11:17:48
я так до сих пор и не понимаю зачем нужны кластер из db. есть хоть какой-то профит?

Darafei
20.02.2018
11:23:56
когда у тебя 1980, компьютер один, а терминалов много

Игорь
20.02.2018
11:36:18
я так до сих пор и не понимаю зачем нужны кластер из db. есть хоть какой-то профит?
Если все не автоматизировано по самые помидоры, то это сильно облегчает администрирование. Например, если селить db==cluster, то это кубурнетис. Ибо сносить пачки кластеров с физического сервера не из веселых занятие

Google
Dmitry
20.02.2018
11:56:10
какой кластер из db?
ну в смысле кучка из db которые прикидываются что друг друга не замечают

Anton [Mgn, az09@osm]
20.02.2018
11:59:16
ну в смысле кучка из db которые прикидываются что друг друга не замечают
и каждая из них зачем-то требует раз за разом установки одних и тех же экстеншонов

Dmitry
20.02.2018
12:02:53
и каждая из них зачем-то требует раз за разом установки одних и тех же экстеншонов
ну ок, вот то что экстенешены общие на базу и базы можно в этом контексте изолировать - это возможно и плюс, например из соображения безопасности. но проще отдельный инстанс с db поднять.

если pg не умеет лимитировать IO, CPU то отдельным инстансам можно хотябы в разные cgroups загнать

Maksim
20.02.2018
12:05:55
и каждая из них зачем-то требует раз за разом установки одних и тех же экстеншонов
бинарник ставится один, определяются функции, таблицы и пр., определённые в эстеншне, которые в силу логической изоляции должны ставиться на каждой базе

Mike Chuguniy
20.02.2018
12:06:46
Dmitry
20.02.2018
12:08:09
кто мешает в темплейт все нужные екстеншны засунуть? ;)
я хз конечно, но базу по 100500 раз создавать удалять нужно только на стейдже или в тесте

Maksim
20.02.2018
12:08:16
если pg не умеет лимитировать IO, CPU то отдельным инстансам можно хотябы в разные cgroups загнать
в смысле, в cgroups загонять бекэнды, работающие с разными базами?

Dmitry
20.02.2018
12:08:48
в смысле, в cgroups загонять бекэнды, работающие с разными базами?
помоему перенести из одной группы в другую запущеный процесс не получиться

точно будет работать запуск отдельного инстанса в своей группе

Mike Chuguniy
20.02.2018
12:09:20
я хз конечно, но базу по 100500 раз создавать удалять нужно только на стейдже или в тесте
Я с тобой сильно не соглашусь, ибо по 100500 - это разработка. Тесты - только если отрабатывается процедура создания/удаления БД.

Anton [Mgn, az09@osm]
20.02.2018
12:09:53
Mike Chuguniy
20.02.2018
12:10:13
Исаев! Хоть ты не издевайся! (с)

:)))

Roman
20.02.2018
13:15:41
Как эффективнее копировать большой объем данных ?Пока вижу решени в лоб INSERT INTO A(x, y, z) SELECT x, y, z FROM A WHERE...

Sergey
20.02.2018
13:17:24
create table table_name as select

Roman
20.02.2018
13:18:21
т.е. через временную таблицу ?

Страница 684 из 1062