@pgsql

Страница 1024 из 1062
Jack
07.10.2018
08:23:19
Вам нужны все теги?
мне нужно взять всех юзеров у кототырх есть определенные теги. например юзер дает список из 5, или 6 или 10, не важно, тега и мне надо взять всех юзеров у которых есть ВСЕ эти теги. Если тегов 5 и какой-то юзер имеет 4 тега, но не имеет последный тег, то он не будет выбран. собственно как я понял ваш пример это только для двух тегов так ?

Alexey
07.10.2018
08:23:46
А, ну тогда оператор @> используй

Google
Jack
07.10.2018
08:24:22
можете на первом примере модифицировать ? я попробую. если не сложно

Alexey
07.10.2018
08:25:47
select user from ( select user, array_agg(tag) as tags from t group by user ) as tmp where array['tag1', 'tag2'] <@ tags

Jack
07.10.2018
08:28:08
а это какой оператор ? у меня redshift вроде не понимает этого

Alexey
07.10.2018
08:29:14
Ничего не знаю про redshift.

Jack
07.10.2018
08:32:17
да вроде redshift это pgsql, но если я пойму как все делать, то там скорее всего будут свои методы и несложно будет

Yaroslav
07.10.2018
08:36:16
нет мне нужны users. админ из фронта дает на бэк список тегов и мне надо взять всех юзеров, тех у которых есть ВСЕ эти теги.
Понятно. В общем, это называется "реляционное деление", и вариантов масса. Какой лучше подходит, зависит от распределения данных и СУБД. Для примера: https://stackoverflow.com/questions/7364969/how-to-filter-sql-results-in-a-has-many-through-relation/7774879#7774879 > да вроде redshift это pgsql Нет. Это форк какой-то древней версии PostgreSQL, и с тех пор, похоже, его развивали, эээ... не лучшим образом. ;)

Terminator
07.10.2018
10:25:34
Alexander Moroz будет жить. Поприветствуем!

@x2bool будет жить. Поприветствуем!

@UDIN111 будет жить. Поприветствуем!

Mikhail
07.10.2018
17:57:20
@andrshmi > у меня проблема, третий день страдаю > нужен полнотекстовый поиск > в связке с гео задача "найти ближайшее место со словом ""пиво"?" или надо сравнивать расстояния между слвами в километрах? // всегда интересовали такие задачи

Google
Fike
07.10.2018
18:02:34
звучит как задача для эластиксерча ???

Andrei
07.10.2018
18:03:17
В функции есть лимит на результат плюс радиус поиска

В радиусе ищем по максимальной релевантности текста

elfiki
07.10.2018
18:04:12
пиво в километре и пивас в 500 метрах различаются?

Andrei
07.10.2018
18:04:24
Если лимит не набрался, то добираем максимально близкими по расстоянию

elfiki
07.10.2018
18:04:30
ну то есть что долно быть?

так-то всегда можно получить два параметра: расстояние до и релевантность поиска

Andrei
07.10.2018
18:05:59
Все что попадает в радиус поиска - сортируется по релевантности текста, что за пределами радиуса поиска - по растоянию

elfiki
07.10.2018
18:06:01
а вот как их сортировать уже не очень понятно

Andrei
07.10.2018
18:08:10
Да, но за пределами радиуса сортировка другая

Mikhail
07.10.2018
18:08:52
Какая?

Andrei
07.10.2018
18:09:05
По расстоянию

elfiki
07.10.2018
18:09:14
ну вроде все просто

Andrei
07.10.2018
18:09:19
Через cte решил

Mikhail
07.10.2018
18:09:25
И на сколько мелко масштаб побит?

elfiki
07.10.2018
18:09:27
пара дополнительных параметров по условию и сортировка по ним

Andrei
07.10.2018
18:09:31
Набирал по расстоянию лимит

А потом все, что в радиусе, пересортировывал

Mikhail
07.10.2018
18:10:17
Можно геокоды положить ключами в полнотекст : один из рабочих вариантов всегда

Google
AlexAnder
08.10.2018
03:41:07
есть ли разница в последовательности удаления триггера и функции для него? DROP FUNCTION IF EXISTS public."FN_users_update_something"() DROP TRIGGER IF EXISTS "TR_users_something" ON public.tablename

Andrey
08.10.2018
03:43:54
есть ли разница в последовательности удаления триггера и функции для него? DROP FUNCTION IF EXISTS public."FN_users_update_something"() DROP TRIGGER IF EXISTS "TR_users_something" ON public.tablename
Если он разрешит удалить функцию, которая исользуется в триггере и вы сделаете это в одной транзакции то по идее разницы никакой.

Михаил
08.10.2018
05:42:51
есть ли разница в последовательности удаления триггера и функции для него? DROP FUNCTION IF EXISTS public."FN_users_update_something"() DROP TRIGGER IF EXISTS "TR_users_something" ON public.tablename
Постгрес не должен разрешить удалить функцию вперед триггера. Можете написать drop function... cascade, тогда удалится всё разом

AlexAnder
08.10.2018
06:24:24
ok, ty

Andrey
08.10.2018
06:53:18
Вообще правильнее, конечно, сначала удалять сам триггер. Кроме того, одна и та же функция может использоваться в нескольких тригеррах.

Aleksander
08.10.2018
08:39:48
Привет, скажите, может ли wal_level = logical приводить к раздуванию wal? Все еще ищу причины странной проблемы, при логической репликации, wal сжирает все место, и не чистится, только после рестарта это происходит. Для сравнения, база 200 гб, вал вырастает до 200-300 гб

Yaroslav
08.10.2018
08:42:16
Привет, скажите, может ли wal_level = logical приводить к раздуванию wal? Все еще ищу причины странной проблемы, при логической репликации, wal сжирает все место, и не чистится, только после рестарта это происходит. Для сравнения, база 200 гб, вал вырастает до 200-300 гб
> может ли wal_level = logical приводить к раздуванию wal? Пишется туда побольше, но вот к этому: > Все еще ищу причины странной проблемы, при логической репликации, wal сжирает все место, и не чистится, только после рестарта это происходит. wal_level = logical почти наверняка не относится.

Aleksander
08.10.2018
08:44:02
Смотрите на слоты репликации. И логи ПГ на этот счёт.
Слот репликации 1, в логе никакой инфы, кроме когда заканчивается место и все падает

Mike Chuguniy
08.10.2018
08:45:45
Слот репликации 1, в логе никакой инфы, кроме когда заканчивается место и все падает
Вот и смотрите за состоянием реплики - как оно тянет данные (имеет смысл логи и на слейве посмотреть).

Konstantin
08.10.2018
08:48:44
если реплика не успевет проигрывать и отстаёт, то ес-но WAL будет пухнуть.

Aleksander
08.10.2018
08:51:14
если реплика не успевет проигрывать и отстаёт, то ес-но WAL будет пухнуть.
Вряд ли у нее может быть задержка, измеряемая десятками минут =)

мб, я что-то криво настроил, и она что-то не тянет из репликейшен слота

Konstantin
08.10.2018
08:51:58
Запросто - может и несколько часов достигать

Aleksander
08.10.2018
08:52:44
проблема в том, что она в лог вообще ничего не ишет, как будто все норм. (я про слейв)

о - есть такое на мастере

2018-10-08 11:47:02.541 MSK [271] LOG: checkpoints are occurring too frequently (29 seconds apart) 2018-10-08 11:47:02.541 MSK [271] HINT: Consider increasing the configuration parameter "max_wal_size". 2018-10-08 11:49:41.505 MSK [271] LOG: checkpoints are occurring too frequently (28 seconds apart) 2018-10-08 11:49:41.505 MSK [271] HINT: Consider increasing the configuration parameter "max_wal_size".

Aleksander
08.10.2018
08:55:29
00:00:00.369

Google
Aleksander
08.10.2018
08:57:49
еще там разные версии. Мастер 10 1, слейв 10 5

Maksim
08.10.2018
09:01:26
00:00:00.369
напишите в postgres-bugs или postgres-general

S
08.10.2018
09:04:12
00:00:00.369
это когда wal распухли такое отставание?

Konstantin
08.10.2018
09:05:40
А max_wal_size там какой?

Grigory
08.10.2018
09:06:44
00:00:00.369
пришлите результаты запросов: select * from pg_get_replication_slots(); select * from pg_stat_replication;

Aleksander
08.10.2018
09:07:24
postgres=# select * from pg_get_replication_slots(); slot_name | plugin | slot_type | datoid | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | confirmed_flush_lsn ------------+----------+-----------+--------+-----------+--------+------------+------+--------------+---------------+--------------------- divico_sub | pgoutput | logical | 16385 | f | t | 17147 | | 255670518 | 1B14/3F5CE7F0 | 1B1E/4FFFD058 (1 row)

pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend_xmin | state | sent_lsn | write_lsn | flush_lsn | replay_lsn | write_lag | flush_lag | replay_lag | sync_priority | sync_state -------+----------+----------+------------------+----------------+-----------------+-------------+-------------------------------+--------------+-----------+---------------+---------------+---------------+---------------+-----------+-----------+------------+---------------+------------ 17147 | 10 | postgres | divico_sub | 91.109.204.172 | | 44064 | 2018-10-08 08:40:33.722731+03 | | streaming | 1B1E/56FFEDC8 | 1B1E/56FFEDC8 | 1B1E/56FFEDC8 | 1B1E/56FFEDC8 | | | | 0 | async (1 row)

Grigory
08.10.2018
09:09:25
слот у вас логический, а реплика физическая

Aleksander
08.10.2018
09:09:51
Grigory
08.10.2018
09:10:04
slot_type - logical

реплика этот слот не использует

судя по всему, никто его не использует

Aleksander
08.10.2018
09:10:58
а как объяснить, то, что когда реплика стопается, active у слота в false переходит?

И наоборот

Настройку всю делал по этому видео https://www.youtube.com/watch?v=uy1E7y7kIOM&t=621s

Aleksander
08.10.2018
09:15:58
confirmed flush lsn - restart lsn = 41 гигабайт wal ?
Это после рестарта он такой, там были цифры и побольше

после рестарта - пишет так

Google
Aleksander
08.10.2018
09:17:12
2018-10-08 12:16:18.522 MSK [20313] postgres@divico LOG: starting logical decoding for slot "divico_sub" 2018-10-08 12:16:18.522 MSK [20313] postgres@divico DETAIL: streaming transactions committing after 1B1F/65ED4DE0, reading WAL from 1B1F/65ED4D38 2018-10-08 12:16:18.522 MSK [20313] postgres@divico LOG: logical decoding found consistent point at 1B1F/65ED4D38

и wal исчезает

Terminator
08.10.2018
09:26:04
Тимур Алиев будет жить. Поприветствуем!

Dmitry
08.10.2018
09:48:32
а pg_repack/compact table умеют строить индексы на одной новой таблице паралельно?

кто-нибудь в курсах?

Aleksander
08.10.2018
10:14:38
А могут ли мои проблемы с репликацией быть связаны с разной таймзоной на серверах?

Maxim ??
08.10.2018
10:45:29
Желательно что бы на мастере и реплике была одинаковая таймзона

Amir
08.10.2018
10:52:31
привет знатокам, подскажите плиз как создать сиквенс зависящий от группировки: есть дополнительное поле, в разрезе этого поля необходимо накручивать счетчик

это же возможно?

Сергей
08.10.2018
10:54:07
напрямую вроде как нет. есть идея в тригере дергать нужный сиквенс в зависимости от условия

Artyem
08.10.2018
10:55:53
теоретически можно напилить секционирование таблиц по этому полю и в каждой таблице указать свой сиквенс. но не настолько в этом разбираюсь, чтоб увидеть все подводные камни. и это врятли то что вам нужно.

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