Size: a a a

pgsql – PostgreSQL

2020 May 25

AM

Almas Maratov in pgsql – PostgreSQL
у меня просто такая ошибка выскакивает при миграции pq: ошибка синтаксиса (примерное положение: "\"))
источник

AM

Almas Maratov in pgsql – PostgreSQL
ему походу не нравится вот это ` COPY public.currencies (currency_id, date_time, name, rate, active) FROM stdin;
\. ` вот тут символ "\"
источник

AY

Alex Yu in pgsql – PostgreSQL
Михаил Шурутов
В постгресе нет UNCOMMITTED READ. Просто нет.
Да, это у меня "вредные привычки" остались
источник

LH

Ling Halph in pgsql – PostgreSQL
в чем разница
value is null
и
value = null
?
источник

П

Павел П. in pgsql – PostgreSQL
второе всегда нул :)
источник

VS

Vitaliy S in pgsql – PostgreSQL
Ling Halph
в чем разница
value is null
и
value = null
?
источник

LH

Ling Halph in pgsql – PostgreSQL
благодарю
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Yaroslav Schekin
Формально — есть, просто есть. ;)
Потому что уровни изоляции — это о допустимых аномалиях, а не о гарантируемых.
Формально - может быть. А вот что говорит документация:
В PostgreSQL вы можете запросить любой из четырёх уровней изоляции транзакций, однако внутри реализованы только три различных уровня, то есть режим Read Uncommitted в PostgreSQL действует как Read Committed. Причина этого в том, что только так можно сопоставить стандартные уровни изоляции с реализованной в PostgreSQL архитектурой многоверсионного управления конкурентным доступом.
https://postgrespro.ru/docs/postgresql/11/transaction-iso
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Ling Halph
в чем разница
value is null
и
value = null
?
https://postgrespro.ru/docs/postgresql/11/functions-comparison
Заметьте, что проверка выражение = NULL не будет работать, так как NULL считается не «равным» NULL. (Значение NULL представляет неопределённость, и равны ли две неопределённости, тоже не определено.)
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Михаил Шурутов
Формально - может быть. А вот что говорит документация:
В PostgreSQL вы можете запросить любой из четырёх уровней изоляции транзакций, однако внутри реализованы только три различных уровня, то есть режим Read Uncommitted в PostgreSQL действует как Read Committed. Причина этого в том, что только так можно сопоставить стандартные уровни изоляции с реализованной в PostgreSQL архитектурой многоверсионного управления конкурентным доступом.
https://postgrespro.ru/docs/postgresql/11/transaction-iso
Она говорит то же самое, что я написал, по сути. Там описывается поведение конкретно PostgreSQL на RU.
Кстати, оттуда же:

The other three levels are defined in terms of phenomena, resulting from interaction between concurrent transactions, which must not occur at each level.

И именно то, что я написал по-русски, написано и там:

The table also shows that PostgreSQL's Repeatable Read implementation does not allow phantom reads. Stricter behavior is permitted by the SQL standard: the four isolation levels only define which phenomena must not happen, not which phenomena must happen.
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Almas Maratov
ну я про синтаксис postgresql вроде
Да нет. В PostgreSQL statements разделяются ";".

> ему походу не нравится вот это

"Вот это" будет правильно (ожидаемо) обработано psql, например.
А какие-то другие клиенты это понимать не обязаны, в принципе.
источник

IK

Ilya Kaznacheev in pgsql – PostgreSQL
Ок, с межконнектными сессиями вроде понятно (нет), сформулирую вопрос иначе
У нас есть сервис, которых хранит данные в постгресе
При этом есть многоступенчатые процессы создания данных, когда создается одна сущность, для нее другие и так далее, а если ошибка - то надо все откатывать (как, в общем то, и работает транзакция)

Распределенные транзакции (вроде saga) решили не делать, потому что у нас только у одного сервиса есть БД, а вот процесс создания может из разных мест приходить.

В итоге решили реализовать в рамках постгреса транзакции, но пока не понятно, как именно. Есть два варианта

1. использовать встроенные в постргес транзакции, но как-то держать их персистентно. То есть условно создается транзакция через begin, дальше некий ее ID передается через все запросы, и запрос в бд приурочивается к транзакции. Потом она завершается через коммит или роллбек, тоже по ID. При этом сами запросы в бд с этим ID транзакции могут выполнять разные реплики приложения, поэтому вариант хранить все это время коннект открытым не вариант. (могут быть разные коннекты)

2. если первый вариант реализовать не получится, то буду тоже самое делать руками, то есть писать в некую таблицу все события по созданию/изменению данных, а при роллбеке руками их откатывать
источник

MD

Memory Doctor in pgsql – PostgreSQL
Ilya Kaznacheev
Ок, с межконнектными сессиями вроде понятно (нет), сформулирую вопрос иначе
У нас есть сервис, которых хранит данные в постгресе
При этом есть многоступенчатые процессы создания данных, когда создается одна сущность, для нее другие и так далее, а если ошибка - то надо все откатывать (как, в общем то, и работает транзакция)

Распределенные транзакции (вроде saga) решили не делать, потому что у нас только у одного сервиса есть БД, а вот процесс создания может из разных мест приходить.

В итоге решили реализовать в рамках постгреса транзакции, но пока не понятно, как именно. Есть два варианта

1. использовать встроенные в постргес транзакции, но как-то держать их персистентно. То есть условно создается транзакция через begin, дальше некий ее ID передается через все запросы, и запрос в бд приурочивается к транзакции. Потом она завершается через коммит или роллбек, тоже по ID. При этом сами запросы в бд с этим ID транзакции могут выполнять разные реплики приложения, поэтому вариант хранить все это время коннект открытым не вариант. (могут быть разные коннекты)

2. если первый вариант реализовать не получится, то буду тоже самое делать руками, то есть писать в некую таблицу все события по созданию/изменению данных, а при роллбеке руками их откатывать
а просто сущность по статусам проводить не рассматривали?
источник

L

Les in pgsql – PostgreSQL
#вакансия #wildberries #dba
Позиция:  Middle DBA
Локация: Москва
Условия: fulltime/ удалёнка, 120-150 т.р. на руки

Чем предстоит заниматься:
- Администрированием кластеров: Greenplum, Postgres
- Обеспечением отказоустойчивости
- Резервным копированием и восстановлением
- Оптимизацией SQL запросов и производительности БД

Что для нас важно:
- Уверенный опыт работы с Postgres
- Опыт администрирования PostgreSQL (от 1 года)
- Опыт работы с высоконагруженными БД 24х7
- Навыки bash
- Понимание принципов кластеризации, высокой доступности и отказоустойчивости
- Умение и желание решать технические проблемы
- Способность к системному мышлению и перспективному планированию
- Желание совершенствовать свои навыки и способности
- Понимание важности документирования проделанной работы

Что кроме зарплаты:
- Бесплатное безлимитное питание в офисе (контейнеры, фрукты, кофе машины, автоматы)
- Большие скидки на продукцию компании + кэшбек ~20% - 30%
- Возможность отложенной покупки
- Поездки команд в Европу и по России - "отдохнуть и поработать" (последние локации были Кипр и Сочи)
- Спортивные мероприятия (футбол, волейбол, йога)
- Скидки на английский (онлайн и с преподавателем в офисе) и в фитнес-клубы рядом с офисом
- Широкий пакет плюшек для детей сотрудников: подарки на праздники, детские корпоративы в офисе, курсы для детей по ИТи т.д.)
- Скидка на паркинг 30% (в районе 5300 получается со скидкой)
- Железо на выбор (Mac, iMaс, PC)

Контакты:
Телеграм - @avelestat почта -  kim.lestat@wildberries.ru
источник

VL

Vanya Leyn in pgsql – PostgreSQL
Ребят, а не подскажите тулзу с помощью которой можно сделать ЕРД а потом из нее сгенерить скл?
источник

SG

Sergey Gr in pgsql – PostgreSQL
Oracle SQL Developer вместе с Modeler
источник

LH

Ling Halph in pgsql – PostgreSQL
понимаю что наглость, но вдруг кому не жалко подсказать.
нужно заменить значение столбца значением из другой таблицы, соответствие искать по первичным ключам обоих таблиц
написал запрос вида
UPDATE table1 SET value=(SELECT value FROM table2 WHERE id=table1.id)

выполняется уже 4 часа(по 350тыс записей в каждой таблице)
вохможно ли написать более быстрый запрос?
источник

KK

Konstantin K in pgsql – PostgreSQL
merge into ... using ...
источник

LH

Ling Halph in pgsql – PostgreSQL
Konstantin K
merge into ... using ...
благодарю
источник

IK

Ilya Kaznacheev in pgsql – PostgreSQL
Memory Doctor
а просто сущность по статусам проводить не рассматривали?
Это не статусы, а просто создание композитной сущности
Про статусы думали, но это не то. Нужно же еще созданные артифакты откатить, если процесс где-то по пути сфейлился
источник