@pgsql

Страница 1016 из 1062
Darafei
03.10.2018
18:42:48
А давайте про базы данных

У кого 11 уже в проде?

Ilya
03.10.2018
18:44:30
Но не совсем в проде, пока ещё без нагрузки.

Google
Darafei
03.10.2018
18:45:11
У меня 10
Но ведь 10 уже год

Ilya
03.10.2018
18:45:25
Верно...

Dmitry
03.10.2018
18:46:06
100500 субд. можно же на файлах все хранить
Нет. С выходом PostgreSQL 11 "вам не нужна никакая другая СУБД" (С).

Ilya
03.10.2018
18:46:07
Переносим нашу базу с оракла на постгрес.

Mike Chuguniy
03.10.2018
18:47:00
У кого 11 уже в проде?
А если в ПГ критичные данные, которые нельзя превращать в тыкву? И даунтайм на восстановление не предусмотрен?

Stanislav
03.10.2018
18:47:22
Нет. С выходом PostgreSQL 11 "вам не нужна никакая другая СУБД" (С).
тогда надо предупредить мусикель мсскуэль оракл и десятки форков

Dmitry
03.10.2018
18:47:35
А давайте про базы данных
Так а как она будет в проде, если она ещё в бете? ?

Ilya
03.10.2018
18:47:51
Но ведь 10 уже год
Да и 10-ку мне тоже пришлось оправдывать, дескать зачем нам нововведения непроверенные.

Ilya
03.10.2018
18:48:55
А много осталось переносить?
4к таблиц, ещё кучу всякого

Что-то обрежем, что-то перепишем, что-то вынесем из БД

Dmitry
03.10.2018
18:49:57
Google
Ilya
03.10.2018
18:50:27
4k таблиц?! Ого.
Да, тяжелое наследие. К тому же там куча блоб и клоб в оракле.

Dmitry
03.10.2018
18:50:57
Да, тяжелое наследие. К тому же там куча блоб и клоб в оракле.
А есть такой человек в вашей организации, который удерживает в голове схему такой БД?

Ilya
03.10.2018
18:51:58
А есть такой человек в вашей организации, который удерживает в голове схему такой БД?
Конечно есть. Там специфично всё разбито по схемам, много схем с повторяющейся структурой.

Dmitry
03.10.2018
18:53:51
Dmitry
03.10.2018
18:56:36
Приходится, что поделать.
Рефакторить ? У вас сейчас шанс есть что-то улучшить. Или там шансов нет? ?

Ilya
03.10.2018
18:57:08
Рефакторить ? У вас сейчас шанс есть что-то улучшить. Или там шансов нет? ?
Ну вот как раз при переходе хотят многое упростить.

Bogdan
03.10.2018
21:45:40
Пдскажите, в постгре можно как-то логировать запросы, котоыре выполнялись на сервер за последнее время? В MSSQL точно такое можно было сделать, точнее там можно было вытянуть их из кеша планов, AFAIK В постгре как я понял нету ничего встроенного, может какой-то плагин есть?

Bogdan
03.10.2018
21:50:44
Yaroslav
03.10.2018
21:52:12
спасибо)
Хмм... а может, Вы что-то типа https://www.postgresql.org/docs/current/static/pgstatstatements.html имели в виду? В общем, посмотрите, что из этого Вам было нужно. :)

Bogdan
03.10.2018
21:52:14
жаль что оно будет в текстовом файле. ан е в табилчке))

ERROR: pg_stat_statements must be loaded via shared_preload_libraries

Yaroslav
03.10.2018
21:55:55
жаль что оно будет в текстовом файле. ан е в табилчке))
Кто "оно"? Логи — да (хотя можно сделать их csv, и читать с помощью соответствующего FDW — всё это есть в документации). А pg_stat_statements создаёт view. > ERROR: pg_stat_statements must be loaded via shared_preload_libraries Да, действительно, должен быть загружен именно так. ;)

Bogdan
03.10.2018
22:02:04
Кто "оно"? Логи — да (хотя можно сделать их csv, и читать с помощью соответствующего FDW — всё это есть в документации). А pg_stat_statements создаёт view. > ERROR: pg_stat_statements must be loaded via shared_preload_libraries Да, действительно, должен быть загружен именно так. ;)
Спасбо вам! Этот екстеншен, то что надо, пожалуй оставлю его включенным, пока. Надеюсь не сильно заимпактит на скорсть. P.S. про FDW знаю, но как-то про них не подумал)

Bogdan
03.10.2018
22:08:26
как предусмотрительно с их стороны ?

Demuz
04.10.2018
06:01:32
Доброго времени суток! https://blogs.sungeek.net/unixwiz/2018/09/02/centos-7-postgresql-10-patroni/ В этой статье пишут всего об одном haproxy и etcd, скажите, а что будет, если сам haproxy упадет? Тогда коннекты к бд ни через что не будут "ходить"? Как в таком случае делают? haproxy + corosync?

Terminator
04.10.2018
07:01:49
@a114x будет жить. Поприветствуем!

Google
F
04.10.2018
07:35:44
Почему?
встроенные возможности nosql

Dmitry
04.10.2018
07:44:46
Почему?
Это уже было ясно с внедрением JSON в ядро. А внедрению JSON в ядро предшествовала возможность внедрения в ядро Hstore, с котором уже тогда было понятно, что в Postgres есть полноценный, индексируемый движок ключ/значение. Зачем что-то ещё?

Alexey
04.10.2018
07:50:06
memory storage key-value? undo log для апдейтов в таблице?

Alexey
04.10.2018
07:54:59
hstore в memory или на диске?

Dmitry
04.10.2018
07:55:02
JSON оправдан в случае полуструктурированных данных.

Когда у разных объектов может быть разный набор свойств.

hstore в memory или на диске?
Это решается директивой TABLESPACE.

Yaroslav
04.10.2018
07:59:19
JSON оправдан в случае полуструктурированных данных.
Толко если Вам от него нужны те же гарантии, что от нормализованной модели, придётся помучаться...

Alexey
04.10.2018
07:59:21
JSON оправдан в случае полуструктурированных данных.
Можно всё-таки примерчик, а то я как-то не понимаю. Т.е. не можешь определиться, массив у тебя или строка? Не понятно вообщем.

Dmitry
04.10.2018
08:00:10
Dmitry
04.10.2018
08:08:32
Можно всё-таки примерчик, а то я как-то не понимаю. Т.е. не можешь определиться, массив у тебя или строка? Не понятно вообщем.
Любой класс объектов, например, человек, может описываться великим множеством свойств. В случае использования полуструктурированных типов не обязательно знать эти свойства в момент проектирования БД. Свойства человека описываются одним единственным столбцом типа JSON.

Alexey
04.10.2018
08:09:21
Вы можете эти свойства тоже не описывать в postgresql и сделать всё нормализованно.

Если вдруг нужна денормализация (ну допустим ооочень удобно) => matview. Миша и Костя из avito рассказывали про это.

Dmitry
04.10.2018
08:11:44
Вы можете эти свойства тоже не описывать в postgresql и сделать всё нормализованно.
Представте себе парсер, который извлекает данные и складывает их в виде ключ/значение. Что ему делать, если он встретил данные с ключом, который не предусмотрен схемой БД? ALTER TABLE на лету?

Alexey
04.10.2018
08:13:29
Проектируйте схему изначально так, чтобы это было нормой: create table human_characteristics (name text, values text). Складывайте эти характеристики сюда.

Google
Alexey
04.10.2018
08:14:40
Ещё раз, это не всегда возможно.
Я просил хороший примерчик. Пока не вижу, к сожалению.

Anton [Mgn, az09@osm]
04.10.2018
08:16:31
Я просил хороший примерчик. Пока не вижу, к сожалению.
Т.е. здоровая денормализация абсолютно не допустима вообще? (вот с самого начала понял что тема холиварная, чего лезу)))

Dmitry
04.10.2018
08:16:55
Я просил хороший примерчик. Пока не вижу, к сожалению.
У вас может быть и тип объекта неизвестен. И human_characterisic уже превратиться в object_characteric и пошло поехало усложнение системы. А можно просто взять JSON.

А потом приходят к БД с 4к таблиц ?

Dmitry
04.10.2018
08:18:05
Выдать ошибку, скорее всего? Ну или ALTER TABLE (и другой DDL) "на лету", если очень хочется... хотя это странно.
Это дорого (DDL на лету). Ошибка тут вообще не причём - парсер свою работу выполнил, данные извлёк, ключ определил, данные определил.

Yaroslav
04.10.2018
08:18:37
У вас может быть и тип объекта неизвестен. И human_characterisic уже превратиться в object_characteric и пошло поехало усложнение системы. А можно просто взять JSON.
А можно просто взять MySQL постарее (или вовсе sqlite), что бы можно было хранить всякий мусор без этих никому не нужных проверок. ;) Нет, ну в самом деле... Вы сравниваете яблоки с апельсинами.

Dmitry
04.10.2018
08:20:30
Хех. Тут даже думать не надо, чтобы понять, что ALTER TABLE + INSERT гораздо дороже INSERT в любом случае.

Yaroslav
04.10.2018
08:20:51
Чем?
Да Вы лучше конкретизируйте модель, а то вдруг я не так понял...

Yaroslav
04.10.2018
08:22:02
Хех. Тут даже думать не надо, чтобы понять, что ALTER TABLE + INSERT гораздо дороже INSERT в любом случае.
Сколько $ стоит INSERT, а сколько ALTER TABLE? (Меня вообще шокируют такие аргументы, если честно.) Да мне ровным счётом плевать на производительность того, что не решает мою задачу!

F
04.10.2018
08:22:46
JSON оправдан в случае полуструктурированных данных.
да? и почему тогда есть операции сравнения?

Dmitry
04.10.2018
08:23:12
Сколько $ стоит INSERT, а сколько ALTER TABLE? (Меня вообще шокируют такие аргументы, если честно.) Да мне ровным счётом плевать на производительность того, что не решает мою задачу!
Ну а меня шокирует целосообразность ALTER TABLE из под приложения вместо банального INSERT в поле с JSON по его прямому назначению.

F
04.10.2018
08:23:37
https://www.postgresql.org/docs/9.4/static/functions-json.html

Dmitry
04.10.2018
08:24:03
F
04.10.2018
08:24:25
спасибо, кеп

Google
Dmitry
04.10.2018
08:24:48
спасибо, кеп
Ну серьёзно.

Yaroslav
04.10.2018
08:25:47
Мне не понятно о чём Вы.
О том, что описываемая Вами задача это "запихнуть в базу любой мусор, неважно, что там". Указанные СУБД очень помогают в её решении. Но структурированные данные, обычно, совсем не мусор. И если что-то пытается вставить то, что база запрещает (чего нет в схеме) — это ошибка вставляющего.

Terminator
04.10.2018
08:26:56
@Irina_shv будет жить. Поприветствуем!

Alexey
04.10.2018
08:26:56
Я изначально предполагал, что все характеристику будут текстовые, числовые (иногда тоже можно в виде текста представить). Ну а далее вставлеете insert into table h_c ('расса', 'афроамериканец'), ('длинный', '1'), ('съел апельсинов', '10'), ('вес', '55.123'), ('массив', 'element1'), ('массив', 'element2'). В примере типы: строка, булево значение, число, не целое число, массив. UPDATE. Вероятно придётся колонку с типом ещё добавить.

Dmitry
04.10.2018
08:27:06
Alexey
04.10.2018
08:29:26
Yaroslav
04.10.2018
08:29:39
Ну а меня шокирует целосообразность ALTER TABLE из под приложения вместо банального INSERT в поле с JSON по его прямому назначению.
Просто это другая задача. Если кому-то надо хранить какие-то данные, о структуре которых СУБД не нужно заботиться... для этого давно есть BLOB-ы.

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