@pgsql

Страница 1061 из 1062
Makkusu
26.10.2018
06:43:20
Ребят подскажите с запросом SELECT "Names".ru FROM "Names", "Departments" WHERE "Names".id = "Departments"."nameId" Правильно ли я оформляю запрос для выборки данных из отношения? Или нужно через join. Давно не работал с бд

Andrey
26.10.2018
06:50:39
ну я имею ввиду copy (select * from table ) stdout delimetr '|' создаст фаил?
Если через конвеер сразу будете напрявлять, то никакого файла, разумеется, создаваться не будет: psql -h 127.0.0.1 -p 9001 -U postgres -c "\copy test to stdout" | psql -h 127.0.0.1 -p 9001 -U postgres -c "\copy test2 from stdin"

Любопытно, но через stdout у меня получается быстрее, чем "INSERT .. SELECT" внутри базы. 7 секунд против 11.

Google
Aleksander
26.10.2018
06:54:05
то есть мне сделать вот так? psql -h 127.0.0.1 -p 9001 -U postgres -c "\copy (select * from table) to stdout" | psql -h 127.0.0.1 -p 9001 -U postgres -c "\copy (select * from table) from stdin"

Andrey
26.10.2018
06:55:38
то есть мне сделать вот так? psql -h 127.0.0.1 -p 9001 -U postgres -c "\copy (select * from table) to stdout" | psql -h 127.0.0.1 -p 9001 -U postgres -c "\copy (select * from table) from stdin"
Если структура таблиц одинакова и вы копируете все столбцы, то можно не писать (select * from table), можно просто написать \copy table to stdout.

Aleksander
26.10.2018
06:56:13
Если структура таблиц одинакова и вы копируете все столбцы, то можно не писать (select * from table), можно просто написать \copy table to stdout.
у меня нет таблицы у меня она пустая, я в пустую таблицу пытаюсь запросом сгенерить записи

Makkusu
26.10.2018
06:56:55
Join
SELECT "Names".fr FROM "Names" LEFT JOIN "Departments" ON "Names".id = "Departments"."nameId" Примерно так? А какой кстати в этом выйгрыш?

Andrey
26.10.2018
06:57:15
у меня нет таблицы у меня она пустая, я в пустую таблицу пытаюсь запросом сгенерить записи
Тогда только запрос. У вас всё в одной базе? Вам проще INSERT с SELECT'ом написать.

Makkusu
26.10.2018
07:00:14
Примерн
Ну выйгрыша по времени я здесь не вижу. У меня время исполнения например больше уходит. Так в чём смысл?

Zloy Dobriy
26.10.2018
07:01:15
Про выйгрыш я упустил видимо в начальном вопросе

Makkusu
26.10.2018
07:01:37
Про выйгрыш я упустил видимо в начальном вопросе
Ну мне наверное это не нужно, так как я забираю всего одно поле

Zloy Dobriy
26.10.2018
07:02:13
Ну темболее. Ноджойнить правильно

Makkusu
26.10.2018
07:02:44
Ну темболее. Ноджойнить правильно
хорошо спасибо так пожалуй и сделаю, будет проще для орм

Zloy Dobriy
26.10.2018
07:03:32
А орм тебе и сделает джой если у тебя в нем описаны релейшоны

Google
Makkusu
26.10.2018
07:04:29
А орм тебе и сделает джой если у тебя в нем описаны релейшоны
Всмысле автоматом? Даже жоин писать не нужно?

Это в sequelize такое есть?

Zloy Dobriy
26.10.2018
07:05:16
Это в sequelize такое есть?
Не юзал его, но обычно есть, да во всех нормальных орм

Makkusu
26.10.2018
07:08:47
Не юзал его, но обычно есть, да во всех нормальных орм
Нет ну я подумал без метода join даже)

типо select и всё)

Andrey
26.10.2018
07:18:35
Это вряд ли, перепроверяй
Ген, я потому и говорю, что любопытно. Перепроверял.

Makkusu
26.10.2018
07:26:21
Не юзал его, но обычно есть, да во всех нормальных орм
Всё, понял о чём вы говорили. Что то типо такого Post.find({ where: { ...}, include: [User]}) Просто когда работал с эктив рекорд там было по другому)

Михаил
26.10.2018
07:30:11
Про inner это я @kagemakkusu . А вот почему джойн правильнее, чем перечислить таблицы во from - это для меня открытый вопрос

Михаил
26.10.2018
07:34:42
SELECT "Names".fr FROM "Names" LEFT JOIN "Departments" ON "Names".id = "Departments"."nameId" Примерно так? А какой кстати в этом выйгрыш?
Этот запрос вернет названия, на которые не ссылается ни один департамент. Исходный запрос не вернет.

Makkusu
26.10.2018
07:36:03
Этот запрос вернет названия, на которые не ссылается ни один департамент. Исходный запрос не вернет.
? а мне как раз нужно чтобы вернул только по ключу. Орм вообще про джоин в документации не пишет

Ну или не могу найти. В примерах только приводят where и я пока думаю что это самый нужный вариант

Terminator
26.10.2018
07:41:18
Sedelnikov Grigoriy будет жить. Поприветствуем!

Sedelnikov
26.10.2018
07:45:48
Про inner это я @kagemakkusu . А вот почему джойн правильнее, чем перечислить таблицы во from - это для меня открытый вопрос
Для меня это просто дело стиля. ИХМО запрос легче читать, когда все в FROM. Я с Оракла начинал, тык там и LEFT JOIN можно через FROM, нужно только в условия добавлять (+)

Makkusu
26.10.2018
07:54:51
Этот запрос вернет названия, на которые не ссылается ни один департамент. Исходный запрос не вернет.
Ну ормка мне выдает LEFT OUTER JOIN. Еле как добился запрос и то селект почему то не верный Орм лучше меня знает ?

Google
Аггей
26.10.2018
07:59:50
Для меня это просто дело стиля. ИХМО запрос легче читать, когда все в FROM. Я с Оракла начинал, тык там и LEFT JOIN можно через FROM, нужно только в условия добавлять (+)
Вопрос стиля решается чтением стандарта ). Представьте, как оракловые left/right join (+) мигрировать на другую субд? А вот если написать стандартными left join - тот же pg скушает запрос без изменений.

Gennady
26.10.2018
08:00:00
Sedelnikov
26.10.2018
08:04:45
Вопрос стиля решается чтением стандарта ). Представьте, как оракловые left/right join (+) мигрировать на другую субд? А вот если написать стандартными left join - тот же pg скушает запрос без изменений.
СУБД слишком сильно отличаются писать все под SQL-92? иногда просто теряем перформанс. Если есть риски миграции, то сразу в сторону ORM смотреть.

Makkusu
26.10.2018
08:06:16
есть кто с секвалайзом работал? Как мне указать выборку поля по другой таблице? Пишу attributes: ["Name.ru"] и выбирает все поля из второй таблицы

Аггей
26.10.2018
08:07:58
Ну вот у нас есть одна система, которая живёт себе на oracle (и никто не думал её мигрировать на другую бд), но новые продажи её уже не сделать - оракл теперь идеологически неверно. Есть ощущение, что её проще переписать с 0, чем мигрировать имеющийся код

Sedelnikov
26.10.2018
08:12:19
Иногда даже переход с одной версии СУБД на другую вызывает "страх и ужас"...

Makkusu
26.10.2018
08:13:06
А постгрес сам что ли все слова может в plural форму заводить? То есть если назвали базу в singular он сам её меняет в plural форму

Terminator
26.10.2018
08:36:21
@mtsygankov будет жить. Поприветствуем!

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

Alexey
26.10.2018
09:59:15
Ребят, а Рostgres же ведь шифрует данные, которые передаются с сервера баз данных на сервер приложения, правильно?

Alex
26.10.2018
10:01:05
Если ссл включен шифрует

Sab0
26.10.2018
10:10:10
Mikhail
26.10.2018
10:11:59
уже сказали) спасибо
Сорри, с вечера не смотрел треды.)

Artem
26.10.2018
11:25:42
psycopg2.OperationalError: index row size 7408 exceeds maximum 2712 for index "payments_bill_receipt_35b04b45_uniq" HINT: Values larger than 1/3 of a buffer page cannot be indexed. Consider a function index of an MD5 hash of the value, or use full text indexing. Ребят, привет, подскажите что можно красиво тут применить?

Поле text

Konstantin
26.10.2018
11:33:54
Ну там же все альернативы перечислены: md5 или full text search.

Anton [Mgn, az09@osm]
26.10.2018
11:43:21
коллеги, может кто помочь разобраться с обрывом соединения между osm2pgsql и postgres под управлением stolon? кусок журнала stolon-keeper на соответствующий момент времени: https://pastebin.com/iE1ZUcsK
Как успехи? Я не знаю что такое stolon но знаю что osm2pgsql параллелится чуть более чем никак. Зато imposm3 в этом хорош Но пусть свое слово скажет @Komzpa )

Google
Mikhail
26.10.2018
11:44:54
Как успехи? Я не знаю что такое stolon но знаю что osm2pgsql параллелится чуть более чем никак. Зато imposm3 в этом хорош Но пусть свое слово скажет @Komzpa )
пока никак. обрыв стабильно идёт в одном и том же месте. пробовал и свежую локальную сборку на 0.96.0, и стабильную версию из дистриба дебиана

пытался грузить срезы за вторник и среду. поведение одно и то же

сам osm2pgsql запускаю на узле 16-32-200SSD

сейчас планирую поднять стандалон десятку с постгис 2.4 и оставить так на время

DiJey (Pavel)
26.10.2018
11:50:40
Две базы с разных серверов что бы сравнить нужен какой-то экстеншн?

Terminator
26.10.2018
11:59:52
@maloletka98 будет жить. Поприветствуем!

Alex
26.10.2018
12:07:39
Yaroslav, мы вообщем склоняемся к тому, что будет вести свой аналог WAL'а, повесить на изменяемых таблицах тригеры, которые будут сбрасывать все операции в таблицу, тем самым получим историю изменения конкретной машины, и при переключении просто сравнивать эту историю, и если есть изменения, то сначала накатить их на слейв, а потом подключить этот слейв в слот но тут возник такой вопрос, как нам убедиться в том, что между получением диффа мастера-слейв (который мы накатим на слейв), и созданием слота на мастере - в эту самую таблицу не попадут еще какие-то данные? можно ли получить этот дифф и создать слот в одной "транзакции"?

Slava
26.10.2018
12:20:04
парни, привет. Никто не знает когда подвезут deb пакеты для 11 версии?

Terminator
26.10.2018
12:21:02
@Hwudgf будет жить. Поприветствуем!

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

Anton [Mgn, az09@osm]
26.10.2018
12:51:54
сам osm2pgsql запускаю на узле 16-32-200SSD
С таким железом часов за 5 кажется вся планета без всяких столонов влетает. Или я путаю с импосм как раз (и тогда 12 часов)

Mikhail
26.10.2018
13:02:19
С таким железом часов за 5 кажется вся планета без всяких столонов влетает. Или я путаю с импосм как раз (и тогда 12 часов)
загрузка нод из PBF - 2-3 часа. дальше всё ломается. варианта задампить SQL запросы и выполнить их через psql я пока не нашёл

Darafei
26.10.2018
13:08:20
Anton [Mgn, az09@osm]
26.10.2018
13:08:28
загрузка нод из PBF - 2-3 часа. дальше всё ломается. варианта задампить SQL запросы и выполнить их через psql я пока не нашёл
Там си и всё сложно, да) Но кажется дело не в столоне а в ворк_мем. Симптомы уж очень схожи

Gennady
26.10.2018
13:57:30
Ген, я потому и говорю, что любопытно. Перепроверял.
Проверил, если таблица узкая (1 колонка int), то copy|copy (format binary) оказался быстрее insert..select в 2.7 раза. Но если таблица широкая (10 колонок int), то copy|copy (format binary) проигрывает в 1.17 раз выражению insert..select При этом сам copy (и \copy) становится медленнее в 1.5 раз, если не использовать with(format binary).

Slava
26.10.2018
14:32:23
Так завезли.
действительно, забыли обновить доку на оф сайте

Terminator
26.10.2018
14:57:31
Gleb будет жить. Поприветствуем!

Google
Gleb
26.10.2018
14:57:55
Всем ку.

Ребят, подскажите пожалуйста как сделать: Есть таблица 'table' c полем extra jsonb -> {status:'new'} на ней висит тригер на onupdate и oninsert, который должен поменять значение поля в таблице 'table1' собственно на этот status. Поле которое нужно заменить, типа varchar. Не могу придумать как это сделать. Подскажите плз. Спасибо.

Yaroslav
26.10.2018
15:06:37
Yaroslav, мы вообщем склоняемся к тому, что будет вести свой аналог WAL'а, повесить на изменяемых таблицах тригеры, которые будут сбрасывать все операции в таблицу, тем самым получим историю изменения конкретной машины, и при переключении просто сравнивать эту историю, и если есть изменения, то сначала накатить их на слейв, а потом подключить этот слейв в слот но тут возник такой вопрос, как нам убедиться в том, что между получением диффа мастера-слейв (который мы накатим на слейв), и созданием слота на мастере - в эту самую таблицу не попадут еще какие-то данные? можно ли получить этот дифф и создать слот в одной "транзакции"?
Я, если честно, забыл (или ещё тогда полностью не понял) Вашу задачу... но, мне помнится, Вам в принципе подходила physical streaming replication отдельного instance, нет? И Вы всерьёз думаете заменить это простое (пусть и несколько неудобное) решение на то, что Вы сейчас описали?! ;)

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