@pgsql

Страница 998 из 1062
Tolya
23.09.2018
19:15:20
она не совсем для новичка

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

Yaroslav
23.09.2018
19:30:17
для новичка самое хорошее это читать документацию, по-моему
+1 А то можно нарваться на что-то типа "PostgreSQL Development Essentials", и так "освоить" PostgreSQL, что мало не покажется. ;(

Terminator
23.09.2018
19:53:49
@Risel будет жить. Поприветствуем!

Google
Айтуар
23.09.2018
20:06:13
Ребят подскажите пожалуйста, что посмотреть/почитать новичку про postgresql?
Быстрее всего тут. https://www.youtube.com/channel/UCawnwMqZ6JeoSiEhrS6X69A А потом уже по ситуации.

Dmitry
23.09.2018
20:08:01
она не совсем для новичка
Вы знаете, это зависит от способностей новичка ?

Darafei
23.09.2018
22:29:17
вышел PostGIS 2.5.0: http://postgis.net/2018/09/23/postgis-2.5.0/

Terminator
24.09.2018
07:04:01
Sergei будет жить. Поприветствуем!

Alex
24.09.2018
07:22:39
Доброго времени суток , настроил постгрес врапер где беру дату с ms sql , селект работает, но когда добовляю where фильтр он просто игнорируется , в чем может быть проблема ?

Mike Chuguniy
24.09.2018
07:27:17
Доброго времени суток , настроил постгрес врапер где беру дату с ms sql , селект работает, но когда добовляю where фильтр он просто игнорируется , в чем может быть проблема ?
Я таки читаю данное предложение следующим образом: я настроил postgres_fdw для доступа к MS SQL. Селект работает, а where фильтр игнорируется. Вы бы указали, что именно настроили, и как.

Ибо postgres_fdw предназначен для доступа к другому постгресу, а не к иным СУБД. К иным СУБД нужен иной враппер.

Alex
24.09.2018
07:29:04
tds-fdw с посгреса к view от ms sql.

сделал все по инструкции https://github.com/tds-fdw/tds_fdw

Yaroslav
24.09.2018
07:32:31
сделал все по инструкции https://github.com/tds-fdw/tds_fdw
Ну а логи смотрели? А на стороне MS SQL?

Alex
24.09.2018
07:33:11
Ну а логи смотрели? А на стороне MS SQL?
В логах ничего , ошибку ведь не выдает.

Yaroslav
24.09.2018
07:34:31
В логах ничего , ошибку ведь не выдает.
При чём тут ошибка? Логи — на максимум, и посмотреть, что выдаёт вообще. ;) Если ничего подозрительного, то посмотреть, что там со стороны MS SQL происходит.

Mykyta
24.09.2018
09:07:06
Привет всем. Стоит вопрос об использования uuid для pk, по причине распределенной архитектуры приложения. Столкнемся ли мы с проблемой фрагментации и медленными инсертами, даже если будем использовать uuid v1? Причем планируется частично uuid генерить на стороне базы, частично на стороне приложения в зависимости от ситуативных потребностей

Google
Yaroslav
24.09.2018
09:26:42
> Стоит вопрос об использования uuid для pk, по причине распределенной архитектуры приложения. Как одно (использование uuid для pk) с другим (распределенная архитектура) связано, в Вашем случае?

Mykyta
24.09.2018
09:28:24
https://blog.2ndquadrant.com/on-the-impact-of-full-page-writes/
Если абсолютно рандомный uuid то это ожидаемо. А вот если использовать uuid v1? Он не совсем рандомный же, а вначале использует timestamp когда он был сгенерирован и индентификатор генератора. Cможет ли постгрес воспользоваться для оптимизации индекса этой особенностью?

Yaroslav
24.09.2018
09:38:40
Если абсолютно рандомный uuid то это ожидаемо. А вот если использовать uuid v1? Он не совсем рандомный же, а вначале использует timestamp когда он был сгенерирован и индентификатор генератора. Cможет ли постгрес воспользоваться для оптимизации индекса этой особенностью?
Эээ... а как это поможет в случае "частично на стороне приложения"? Там же "involves the MAC address of the computer and a time stamp." Кстати, для random UUID, full page writes — не единственная пакость, которая Вас может ожидать (зависит от отношения размера индексов к RAM, впрочем). (Получаются фрагментированные индексы, которые не коррелированы с heap. Ещё и естественная корреляция момента вставки со значением PK и вероятностью использования исчезает, что тоже может быть нехорошо).

Mykyta
24.09.2018
09:42:51
А как ты предполагаешь должна происходить эта оптимизация?
Никак не предполагаю, как создается индекс я чисто поверхностно теоретически знаю.

Ilia
24.09.2018
09:43:11
Вот именно это я и пытаюсь обойти. А если генерировать uuid v1 исключительно в приложении, решит ли это проблему?
Ну, в общем-то фрагментация индексов, даже если она случится, такая себе проблема...

Yaroslav
24.09.2018
09:43:49
Вот именно это я и пытаюсь обойти. А если генерировать uuid v1 исключительно в приложении, решит ли это проблему?
Были же вроде какие-то ещё sequential UUIDs (не v1), не искали (я сам не пользовался, не подскажу)?

Ilia
24.09.2018
09:44:28
Никак не предполагаю, как создается индекс я чисто поверхностно теоретически знаю.
Сортируются данные. Укладываются в сбаллансированное дерево B+tree. (количество поднод на странице произвольное). Всё. Как тут поможет твой UUID?

Mykyta
24.09.2018
09:45:16
Были же вроде какие-то ещё sequential UUIDs (не v1), не искали (я сам не пользовался, не подскажу)?
Ладно, допустим, у меня уже есть seq uuids которые я генерю на стороне приложения. Поможет ли это постгресу не фрагментировать хранение индекса?

Yaroslav
24.09.2018
09:46:58
Сортируются данные. Укладываются в сбаллансированное дерево B+tree. (количество поднод на странице произвольное). Всё. Как тут поможет твой UUID?
Так, что вставки пойдут в последний лист, а не неведомо куда. > Ну, возможно, поможет слегка. Поможет очень прилично. Одну ссылку выше уже приводили.

Ilia
24.09.2018
09:47:23
Ладно, допустим, у меня уже есть seq uuids которые я генерю на стороне приложения. Поможет ли это постгресу не фрагментировать хранение индекса?
Ты зря про это вообще думаешь. Будет фрагментация уж такая сильная -- пересоздашь индекс и всё.

Yaroslav
24.09.2018
09:49:25
Ладно, допустим, у меня уже есть seq uuids которые я генерю на стороне приложения. Поможет ли это постгресу не фрагментировать хранение индекса?
Если они действительно sequential — поможет, да. Потому что v1 — только частично. Вот я сейчас два раза вызвал uuid_generate_v1(): "fcc1a5fe-bfde-11e8-b978-1f94b6d2c6f7" "0204a2dc-bfdf-11e8-b97c-df898960e444" Как-то не очень sequential. ;)

Yaroslav
24.09.2018
09:50:12
Ты зря про это вообще думаешь. Будет фрагментация уж такая сильная -- пересоздашь индекс и всё.
Так проблема при вставке от этого никуда не уйдёт. Так же как и проблема корреляции index/heap.

Mykyta
24.09.2018
09:52:06
Какая, конкретно?
я ошибся, у вас все правильно, я с uuid_generate_v1mc() перепутал

Google
Yaroslav
24.09.2018
09:56:23
Это и есть "плохо" — совсем не то, что sequential. В плане производительности это не сильно лучше random.

Mykyta
24.09.2018
10:00:35
Это и есть "плохо" — совсем не то, что sequential. В плане производительности это не сильно лучше random.
Но ведь начало же sequential, постгрес все равно будет такое фрагментировать?

Yaroslav
24.09.2018
10:03:07
Но ведь начало же sequential, постгрес все равно будет такое фрагментировать?
Так там всё равно будет wrap (это как если бы старший разряд в числе менялся). Т.е. на таблицах сколько-нибудь существенного размера — никакой разницы... если не хуже. ;)

Terminator
24.09.2018
10:30:49
@sqddy будет жить. Поприветствуем!

Ilia
24.09.2018
10:50:00
Но ведь начало же sequential, постгрес все равно будет такое фрагментировать?
Если только в PG будет специальный вид сотрировки под этот тип данных...

Yaroslav
24.09.2018
10:52:49
Если только в PG будет специальный вид сотрировки под этот тип данных...
Да вроде бы обычная / ожидаемая (как выводится, так и сортируется).

Terminator
24.09.2018
13:12:22
@Rusicko будет жить. Поприветствуем!

MikaelBox
24.09.2018
14:22:59
А что мешает сделать pk bigint? Выделить младший байт или пару на идентификатор сервера, а остальное - счётчик. Никогда не пересекутся, всегда известно откуда ключ. Не надо возиться с монструозного вида варчарами - база зазря не пухнет

MikaelBox
24.09.2018
14:29:44
Так им вроде нужно на клиенте генерировать.... А причём тут varchar?
Это не проблема. А что суть uuid как не варчар?

Yaroslav
24.09.2018
14:31:19
Это не проблема. А что суть uuid как не варчар?
> Это не проблема. Хмм... а по-моему, проблема. Уникальность-то нужно обеспечить? > А что суть uuid как не варчар? Тип такой, 16-байтный.

MikaelBox
24.09.2018
14:32:20
> Это не проблема. Хмм... а по-моему, проблема. Уникальность-то нужно обеспечить? > А что суть uuid как не варчар? Тип такой, 16-байтный.
Если сервера разные, то вы поди знаете на каком вы сейчас и маска его известна. А уж узнать последнее значение ключа совсем не проблема

Yaroslav
24.09.2018
14:33:37
> А уж узнать последнее значение ключа совсем не проблема Каким образом, без обращения к серверу (PostgreSQL) вообще?

MikaelBox
24.09.2018
14:34:20
В базу данные тоже без участия сервера будут попадать?

Yaroslav
24.09.2018
14:40:30
В базу данные тоже без участия сервера будут попадать?
Им нужно вставлять уже сгенерированный на клиенте уникальный идентификатор, я так понял. (Зачем конкретно / почему это критично, я так и не понял.) ;) Для чего и хотели использовать UUID...

Но ведь начало же sequential, постгрес все равно будет такое фрагментировать?
А почему Вам так важно, чтобы на клиенте, кстати? ;)

MikaelBox
24.09.2018
14:41:30
Так если вставлять куда бы то ни было в базу, то доступ к ней есть ))

Fike
24.09.2018
14:42:52
иногда необходимо обеспечить железную идемпотентность операции

Google
Aleksander
24.09.2018
14:44:53
Привет всем =) Можете ответить нубу, при логической репликации, данные, которые инсертятся напрямую в slave(ноду с subscription), не реплицируются обратно на мастер? И второе, можно ли этого добиться при логической реплике?

Fike
24.09.2018
14:45:42
вы хотите сделать мультимастер, но вряд ли вы захотите действительно иметь такую систему в проде

Aleksander
24.09.2018
14:47:33
Хотелось бы. По следующей причине: просто я не понимаю, как у моих прилаг разделить операции, чтения и записи, чтобы они ходили в разные ноды(конкретные)

Fike
24.09.2018
14:48:22
я намекаю на то, что у вас проблем только прибавится, причем скорее всего совершенно иного порядка

Aleksander
24.09.2018
14:49:20
Эээ... Вы два раза употребили слово "логической"... Вы точно это хотели спросить?
Наверное, да. Можно кратко написать мой вопрос так, можно ли в мастер-мастер при логической репликации? =)

я намекаю на то, что у вас проблем только прибавится, причем скорее всего совершенно иного порядка
Если это так -я могу оставить, как есть. Но я не понимаю, к сожалению, как балансировать нагрузку на мастер и реплику.

Mike Chuguniy
24.09.2018
14:50:39
Наверное, да. Можно кратко написать мой вопрос так, можно ли в мастер-мастер при логической репликации? =)
Можно всё, что угодно, даже гланды через анус автогеном удалять. Вопрос в другом: а оно надо?

Но во втором случае балансироваться будут только вызовы функций.

Aleksander
24.09.2018
14:51:59
Можно всё, что угодно, даже гланды через анус автогеном удалять. Вопрос в другом: а оно надо?
Как быстрое решение, оно было бы надо. Но если это звучит, как удаление гланд, через то самое - то я задумаюсь, стоит ли так делать =)

Yaroslav
24.09.2018
14:54:30
Наверное, да. Можно кратко написать мой вопрос так, можно ли в мастер-мастер при логической репликации? =)
Хмм... ну ладно. > не реплицируются обратно на мастер? Нет, не реплицируются. > И второе, можно ли этого добиться при логической реплике? Добиться бесконечного цикла обновлений? Не знаю, даже не пытался пробовать. :) > можно ли в мастер-мастер при логической репликации? =) Зачем?! Master-master — это не волшебный порошок, который Вам что-то там "улучшит". Будет совсем наоборот. Хотя... если на данные Вам, по большому счёту, пофиг, можно что-то "сварить", наверное... :(

Aleksander
24.09.2018
14:55:57
Ясно, я понял. Спасибо, за ответы =) Тогда сделаю следующее: переключу слейв в read only( пока не знаю как). И напишу у прилаг кастомный слой, который разделяет select и update операции.

Yaroslav
24.09.2018
15:03:14
Ясно, я понял. Спасибо, за ответы =) Тогда сделаю следующее: переключу слейв в read only( пока не знаю как). И напишу у прилаг кастомный слой, который разделяет select и update операции.
Вообще-то replication в PostgreSQL не full-ACID (неважно, синхронная или асинхронная, логическая или физическая). (Тут недавно давали ссылку на доклад, хотя это и так описано в документации). Зачем Вам вообще логическая репликация (а не физическая, например)?

Aleksander
24.09.2018
15:04:39
Хочу не все реплицировать. Да и попробовать =)

Konstantin
24.09.2018
15:08:42
Хочу не все реплицировать. Да и попробовать =)
разделять read/write запросы как-то умеет pgpool. Но действительно с репликацией много нюансов: если не прилагать специальных усилий то приложение может при таком подходе не увидеть собсвенные изменения.

Yaroslav
24.09.2018
15:09:31
Хочу не все реплицировать. Да и попробовать =)
> Хочу не все реплицировать. Тогда да, можно попробовать. Но DDL в таком случае становится Вашей проблемой. ;)

Aleksander
24.09.2018
15:09:45
разделять read/write запросы как-то умеет pgpool. Но действительно с репликацией много нюансов: если не прилагать специальных усилий то приложение может при таком подходе не увидеть собсвенные изменения.
Ну, можно использовать разные техники, если тебе критически прочитать данные самые актуальные, то читать их из мастера. А если нет - то и три кучи на то, что данные не совсем актуальные

> Хочу не все реплицировать. Тогда да, можно попробовать. Но DDL в таком случае становится Вашей проблемой. ;)
Это да, но у меня ликвибейз на прилагах, подумаю, как автоматом через них ddl применять.

Yaroslav
24.09.2018
15:14:32
Ну, можно использовать разные техники, если тебе критически прочитать данные самые актуальные, то читать их из мастера. А если нет - то и три кучи на то, что данные не совсем актуальные
В общем случае, 100% корректные данные можно прочитать только с master (актуальные или нет, неважно). Если это не очень важно, репликация подойдёт.

Google
abc
24.09.2018
15:14:38
подскажите почему pg_dump может зависать? запускаю из докер контейнера дамп базы. дамп доходит до размера 40 мб и все. сама pg_dump висит. убиваю pg_dump и запускаю снова. Дамп проходит до размера больше. И так до тех пор пока не сделается норм дамп и pg_dump не завершится ок. место на диске есть. база в момент дампа используется но не очень нагруженно.

abc
24.09.2018
15:21:28
сейчас перезапустил и дамп пока идет. в табличке статус active. как остановится снова посмотрю статус. не знал про эту табличку) спасибо

Lestat -
24.09.2018
15:47:35
коллеги, добрый вечер. Подскажите пожалуйста где должны лежать расширения ? хочу поставить smlar (https://railsware.com/blog/2012/05/10/effective-similarity-search-in-postgresql/)

CREATE EXTENSION smlar; ругается на отсутствие файла в extensions, складываю файлики туда, ругается на отсутствие папки smlar (а она там лежит)

Mike Chuguniy
24.09.2018
16:02:08
S
24.09.2018
17:08:07
вопрос где должны лежать расширения
там где вы указали их держать при компиляции postgres

Lestat -
24.09.2018
17:08:57
там где вы указали их держать при компиляции postgres
спасибо за ответ! Немного не понял про компиляцию postgres

S
24.09.2018
17:09:55
когда вы собираете postgres из исходного кода, вы указываете каталог в который его устанавливать, в том числе и каталог для расширений

например у меня: > create extension xxx; ERROR: could not open extension control file "/usr/share/postgresql-9.4/extension/xxx.control": Нет такого файла или каталога

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