
Twelfth
09.08.2018
06:28:50
Вот что выдал describe

Ilya
09.08.2018
07:05:39
Подскажите, есть ли способ делать запросы в две идентичные таблицы (одна активная, другая архивная), как в одну большую. Копаю в сторону UNION, но есть ньюансы при джоинах и аггрегатных функциях.

Sergey
09.08.2018
07:07:54

Ilya
09.08.2018
07:08:09
https://www.db-fiddle.com/f/4md9Vy1fYG8xx1tPnJRMYN/0

Google

Ilya
09.08.2018
07:09:59
Сделалйте view через union над ними
Делал, и всплыла одна проблема при аггрегации. В примере выше требуемый запрос к отдельным таблицам (там всё хорошо) и к union-у (пока тоже всё хорошо). Но стоит добавить аггрегацию по characteristic - начинабтся проблемы.
Работает только так: https://www.db-fiddle.com/f/4md9Vy1fYG8xx1tPnJRMYN/2
Но перечислять все поля в GROUP BY как-то не очень.

Sergey
09.08.2018
07:19:15

Ilya
09.08.2018
07:20:12
Полагаю, что когда делаешь запрос в реальную таблицу с группировкой только по primary key, система понимает, что ничего аггрегировать не придётся.
А при запросе к представлению PK уже как-бы отсутствует.
Вместо
SELECT total_table.*,
...
GROUP BY id, some_field1, some_field2
ещё можно сделать
SELECT id, min(some_field1) as some_field1, min(some_field2) as some_field2
...
GROUP BY id
- что тоже работает. Но по мне, так это ещё большее извращение, чем первый вариант. Поэтому и спрашиваю, может кто знает более правильный вариант.


Yaroslav
09.08.2018
07:32:34
Вместо
SELECT total_table.*,
...
GROUP BY id, some_field1, some_field2
ещё можно сделать
SELECT id, min(some_field1) as some_field1, min(some_field2) as some_field2
...
GROUP BY id
- что тоже работает. Но по мне, так это ещё большее извращение, чем первый вариант. Поэтому и спрашиваю, может кто знает более правильный вариант.
Вы просто привыкли к хорошему. :)
Раньше (относительно недавно, кстати) functional dependencies даже в стандарте не было, и все перечисляли поля.

elfiki
09.08.2018
07:33:15
кстати, а с какой версии так можно делать стало?

Yaroslav
09.08.2018
07:40:36
Вместо
SELECT total_table.*,
...
GROUP BY id, some_field1, some_field2
ещё можно сделать
SELECT id, min(some_field1) as some_field1, min(some_field2) as some_field2
...
GROUP BY id
- что тоже работает. Но по мне, так это ещё большее извращение, чем первый вариант. Поэтому и спрашиваю, может кто знает более правильный вариант.
Например, если очень хочется, можно так:
CREATE TABLE some_data(id serial PRIMARY KEY, payload text NOT NULL);
CREATE TABLE some_historical_data() INHERITS (some_data);
INSERT INTO some_data(payload) VALUES ('parent');
INSERT INTO some_historical_data(payload) VALUES ('child');
SELECT *
FROM some_data
GROUP BY id;

Alexander
09.08.2018
08:23:14
Ребят. Юзаю постгрес 10, необходимо сделать синхронную репликацию. Данные в основном пишутся , нагркзка небольшая. В какую сторону лучше смотреть? Стабильна ли логическая?

Alexander
09.08.2018
08:27:29
Тебе всю базу полностью необходимо реплицировать, или только некоторые каталоги/страницы?

Let Eat
09.08.2018
08:29:25

Twelfth
09.08.2018
08:43:07

Google

Yaroslav
09.08.2018
08:53:35

Alexander
09.08.2018
08:54:50
Цель репликации какая?
Два цода. Клиент попадает на любой из них. Данные должны быть актуальны. В случае падения одной из баз приложение отправит на другой цод

Yaroslav
09.08.2018
08:56:58

Alexander
09.08.2018
08:57:51

Yaroslav
09.08.2018
08:58:53

Ilya
09.08.2018
09:00:28

Alexander
09.08.2018
09:00:45

Yaroslav
09.08.2018
09:01:53

Ilya
09.08.2018
09:05:15

Yaroslav
09.08.2018
09:07:24
Ну и вообще, почитайте про наследование и партиционирование.

Ilya
09.08.2018
09:09:12
Спасибо, уже начал.

artb1sh
09.08.2018
09:48:50
Мона не стопать базу мастера при переливке на слейв?

Sergey
09.08.2018
09:49:38
вилки нет
города нет

Baira
09.08.2018
09:50:08
Город Москва, зп от 180 до 220 на руки

Sergey
09.08.2018
09:50:55
в вакансию добавьте, мне то не за чем:)

Yaroslav
09.08.2018
09:52:15
А удалёнка есть?

Google

Alexander
09.08.2018
09:53:03
Мне кажется это вообще бот был

Baira
09.08.2018
09:53:28
Всем привет. Ищу разработчика PostgreSQL к нам в команду в Московский офис, в компанию Манго Телеком - лидер рынка виртуальных АТС, облачных сервисов и решений, которые помогают нашим клиентам правильно выстроить бизнес-коммуникации и процессы.
Задачи:
- написание, модификация и оптимизация бизнес-логики на уровне БД
- повышение производительности существующих программных модулей
От Вас мы ждём опыт работы программистом баз данных PostgreSQL или Oracle не менее 2-х лет, опыт написания хранимых процедур, функций, триггеров, участие в разработке высоконагруженных сервисов.
Условия : зп от 180 до 220
Дмс, английский, обучение за счёт компании
Печеньки, фрукты, завтраки
Офис в шаговой доступности от м. Калужская
За подробностями велкам в личку. Резюме присылайте на b.blinova@mangotele.com

artb1sh
09.08.2018
09:54:31

Baira
09.08.2018
09:54:32

Alexander
09.08.2018
09:55:04
Ну не нравится мне подобный спам, завидовать профессионалам начинаю

Yaroslav
09.08.2018
09:58:19
Да пофиг что, бекап с слева снимать
Да, конечно можно (если я правильно понял).
Я понял так, что есть primary, Вы хотите без его остановки сделать async streaming replica, с которой в дальнейшем будете снимать backups, верно?

artb1sh
09.08.2018
09:59:08

Yaroslav
09.08.2018
09:59:46
Да
https://hunleyd.github.io/posts/PostgreSQL-Streaming-Replication-In-10-Minutes/

artb1sh
09.08.2018
10:01:14
Wall level для бекапа какой лучше подойдет всмысле

Yaroslav
09.08.2018
10:02:41

artb1sh
09.08.2018
10:03:17
Какой лучше, для теста реплика щас

Yaroslav
09.08.2018
10:03:38

artb1sh
09.08.2018
10:03:51
10

Yaroslav
09.08.2018
10:04:03
10
Тогда replica (это, кстати, default).

artb1sh
09.08.2018
10:04:21
Спс
Ухх, я у мамы дба сегодня

Ilya
09.08.2018
10:39:25

Yaroslav
09.08.2018
10:47:25

Google

Heisenberg
09.08.2018
11:15:20
Всем привет. Такой вопрос: Как вернуть запись, чтобы одна колонка содержала массив данных из другой таблицы?
Пример: таблицы owner и cars. У овнера есть айдишник, и несколько машин. У машины есть номер и марка. Как вот вернуть селектом такие данные:
OwnerId | Car
1 | {"num": "NG1221GH", "model":"Ford"},{"num":"bla111bla", "model":"Ferrari"}
?
чтобы я потом смог этот ответ смаппить в объект Owner_And_Car, состоящий из int OwnerId и List<Car> Cars
как-то так

Admin
ERROR: S client not available

Ilia
09.08.2018
11:16:38

Heisenberg
09.08.2018
11:17:00
но мне нужно возвращать айдишник и список моделей в одной строке, чтобы я потом это на фронт отдавал

Ilia
09.08.2018
11:17:15

Heisenberg
09.08.2018
11:17:39
и у меня будет 5 записей с одинаковым айдишником и разными машинами, это не подходит

Ilia
09.08.2018
11:17:57

Heisenberg
09.08.2018
11:18:12
да проблема как это потом маппить в даппере

Ilia
09.08.2018
11:18:40

elfiki
09.08.2018
11:24:07

Ilia
09.08.2018
11:24:48
Ну если сами себе сложности хотите создавать -- как бы я вам не пастух.

Andrei
09.08.2018
11:46:24
Такие вещи отлично делаются через cte и фенкцию
На выходе которой jsonb
Мы на одном проекте для фронта многие такие чтения перевели на функции
Чтобы orm не насиловала базу
Особенно там, где пагинация по сложному набору данных

Google

Ilia
09.08.2018
11:48:44

Andrei
09.08.2018
11:50:55
Давайте смотреть на первостепенную задачу
Моя функция возвращает список собранных объектов гораздо быстрее, чем их собирает орм

Yaroslav
09.08.2018
12:02:06

Andrei
09.08.2018
12:02:53
я же не сказал, что не может
может
но перф-тесты говорят о том, что делает это медленнее
считаю спор исчерпанным, т.к. я представитель обители зла (все жизнь работаю сугубо с базами данных, последние 6 лет с высоконагруженными), а здесь большинство - представители back-end - поэтому про орм тут принято говорить или хорошо, или никак)


Dmitry
09.08.2018
12:55:05
Всем привет. Ищу разработчика PostgreSQL к нам в команду в Московский офис, в компанию Манго Телеком - лидер рынка виртуальных АТС, облачных сервисов и решений, которые помогают нашим клиентам правильно выстроить бизнес-коммуникации и процессы.
Задачи:
- написание, модификация и оптимизация бизнес-логики на уровне БД
- повышение производительности существующих программных модулей
От Вас мы ждём опыт работы программистом баз данных PostgreSQL или Oracle не менее 2-х лет, опыт написания хранимых процедур, функций, триггеров, участие в разработке высоконагруженных сервисов.
Условия : зп от 180 до 220
Дмс, английский, обучение за счёт компании
Печеньки, фрукты, завтраки
Офис в шаговой доступности от м. Калужская
За подробностями велкам в личку. Резюме присылайте на b.blinova@mangotele.com
Можем предложить аутсорсинг.


Baira
09.08.2018
13:03:57
Можем предложить аутсорсинг.
Дмитрий, спасибо, по некоторым проектам работаем по такому формату и хотим уйти, предпочтение человек в штат компании. Спасибо за предложение

Dmitry
09.08.2018
13:12:25

Baira
09.08.2018
13:58:33