
Ilya
12.09.2018
15:44:09
Можно фильтроват и пересобирать другой json

Fike
12.09.2018
15:44:30
давайте я еще раз спрошу: что будет, когда туда набьется несколько тысяч комментариев по килобайту каждый?

Dmitry
12.09.2018
15:45:19
Конечно будет плохо. Для этого такое использовать не стоит

Google

Ilya
12.09.2018
15:45:24

Dmitry
12.09.2018
15:45:44
Но если это write only данные, например логи, то такой проблемы не стоит

Ilya
12.09.2018
15:46:12

Dmitry
12.09.2018
15:46:39
У меня есть такие данные которые просто приходят и их надо считать. Они никогда не меняются. Согласен что с postgress можно это тоже сделать

Ilya
12.09.2018
15:46:50
Конешн оптимизировать-секционировать приходится, но зато работает быстро.

Fike
12.09.2018
15:46:56
и строить индекс по айди или по другому полю - функциональной разницы нет (кроме шардирования)

Ilya
12.09.2018
15:47:48
Или это не ответ на твой ответ? :)

Dmitry
12.09.2018
15:49:44
Давайте так. Если данные нужно только собирать и считать - до можно и в JSON и это удобнее и проще. Если же данные нужно модифицировать и проверять структуру - то JSON не подходит - нужна реляционная структура. Согласны?

Fike
12.09.2018
15:50:58
Работать будет.
то есть тебе ок хранить записи по несколько мегабайт и вытаскивать все комментарии для условной рсс?

Google

Ilya
12.09.2018
15:52:24
Ты не хочешь вытаскиватьт все комментсы?
Или хочешь чтобы они отдельно хранились?
Никто тебя не заставляет всё сразу выдавать, выдавай ток то что нужно, не гоняй по сети лищние мегабайты.

Fike
12.09.2018
15:55:05

Ilya
12.09.2018
15:55:06
И можно модифицировать, почему ж нельзя.

Fike
12.09.2018
15:55:26

Ilya
12.09.2018
15:55:47

Fike
12.09.2018
15:55:51
ага
ну, из джсона - если это не было понятно из контекста

Ilya
12.09.2018
15:56:04

Al
12.09.2018
15:56:25

Ilya
12.09.2018
15:56:32

Fike
12.09.2018
15:56:43
хотя в принципе весь SQL и так строковый, так что тут даже без джсона было бы примерно так же, он в любом случае сначала бы строку со скалярами находил и вытаскивал

Ilya
12.09.2018
15:56:53

Fike
12.09.2018
15:56:57

Al
12.09.2018
15:57:19

Ilya
12.09.2018
15:57:28
jsonb - распарсен.

Google

Ilya
12.09.2018
15:59:07
Ребят, я понимаю что вам кажется что никто кроме монги не додумался ни до чего, но в реальности практическки всё уже давно в постгресине есть.

Fike
12.09.2018
15:59:35
бинарный небинарный формат
это что-то вроде синхронной репликации?

Ilya
12.09.2018
15:59:49
https://postgrespro.ru/docs/postgrespro/10/datatype-json

Dmitry
12.09.2018
16:01:05

Fike
12.09.2018
16:01:08
бгггг сам иди читай
> Данные JSON, как и данные любых других типов, хранящиеся в таблицах, находятся под контролем механизма параллельного доступа. Хотя хранить большие документы вполне возможно, не забывайте, что при любом изменении устанавливается блокировка всей строки (на уровне строки). Поэтому для оптимизации блокировок транзакций, изменяющих данные, стоит ограничить размер документов JSON разумными пределами. В идеале каждый документ JSON должен собой представлять атомарный информационный блок, который, согласно бизнес-логике, нельзя разделить на меньшие, индивидуально изменяемые блоки.


Ilya
12.09.2018
16:01:51
бгггг сам иди читай
> Данные JSON, как и данные любых других типов, хранящиеся в таблицах, находятся под контролем механизма параллельного доступа. Хотя хранить большие документы вполне возможно, не забывайте, что при любом изменении устанавливается блокировка всей строки (на уровне строки). Поэтому для оптимизации блокировок транзакций, изменяющих данные, стоит ограничить размер документов JSON разумными пределами. В идеале каждый документ JSON должен собой представлять атомарный информационный блок, который, согласно бизнес-логике, нельзя разделить на меньшие, индивидуально изменяемые блоки.
Ага, а что тебя смущает? :)

Fike
12.09.2018
16:02:06
стоит ограничить размер документов JSON разумными пределами.

Ilya
12.09.2018
16:02:08
Ты хочешь хранить весь форум в одной строчке? :)

Fike
12.09.2018
16:02:18
это ты предлагаешь все комментарии к посту сохранять
а я тебя все пытаюсть наставить на путь истинный

Ilya
12.09.2018
16:03:03


Dmitry
12.09.2018
16:03:16
бгггг сам иди читай
> Данные JSON, как и данные любых других типов, хранящиеся в таблицах, находятся под контролем механизма параллельного доступа. Хотя хранить большие документы вполне возможно, не забывайте, что при любом изменении устанавливается блокировка всей строки (на уровне строки). Поэтому для оптимизации блокировок транзакций, изменяющих данные, стоит ограничить размер документов JSON разумными пределами. В идеале каждый документ JSON должен собой представлять атомарный информационный блок, который, согласно бизнес-логике, нельзя разделить на меньшие, индивидуально изменяемые блоки.
Это не проблема. Обычно JSON хранилище нужно для таких задач. Есть данные, они постоянно приходят. Но что с ними делать еще не знаем. Когда узнаем - прикрутим индекс. Поэтому такие данные обычно неизменяемые.
Если же хранить текущий баланс клиента в JSON - то да, это плохое решение

Ilya
12.09.2018
16:03:17
Тобишь тот запрос - сферический запрос в вакууме.

Al
12.09.2018
16:03:45

Fike
12.09.2018
16:04:09
то есть тебе ок хранить записи по несколько мегабайт и вытаскивать все комментарии для условной рсс?

Ilya
12.09.2018
16:05:15

Fike
12.09.2018
16:06:06
Никто тебя не заставляет всё сразу выдавать, выдавай ток то что нужно, не гоняй по сети лищние мегабайты.

Google

Ilya
12.09.2018
16:06:29

Dmitry
12.09.2018
16:06:34

Fike
12.09.2018
16:07:58
Я бы начал с того, что посмотрел что вообще в time series сейчас есть, вместо того, чтобы прикручивать базу с MVCC к неизменяемым данным

Dmitry
12.09.2018
16:08:48

Ilia
12.09.2018
16:09:07

Fike
12.09.2018
16:10:44
если у вас редкие аналитические запросы и нет проблем с пробелами в каких-то данных в случае крэша - да хоть в файл кидать и раз в сутки в облако кидать, и то дешевле получится

Dmitry
12.09.2018
16:12:52
Ну тут разные данные. Данные клиентов терять нельзя, поэтому что-то меганадежное нужно. А свой мониторинг за день можно и потерять если что-то большое сломается

Admin
ERROR: S client not available

Ilya
12.09.2018
16:13:04

Fike
12.09.2018
16:13:41
в общем тащить типовое хранилище под append-only нагрузку это прям скажем так себе идея

Al
12.09.2018
16:15:22

Dmitry
12.09.2018
16:15:51

Ilya
12.09.2018
16:17:22

Al
12.09.2018
16:17:34

Ilya
12.09.2018
16:18:05

Al
12.09.2018
16:18:26
Мой процесс поместился в чуть больше 1к строк на жабе

Fike
12.09.2018
16:19:00

Dmitry
12.09.2018
16:19:09
Нет таких процессов.
Да ладно. Клиент отчет за год попросит отчет с разрезом по месяцам и пошла база складывать миллион записей

Google

Al
12.09.2018
16:19:44

Dmitry
12.09.2018
16:19:47
эм, дорого что?
Сеть, CPU процесса, память процесса. Да и задержка большая - отдать млн строк

Al
12.09.2018
16:20:09

Dmitry
12.09.2018
16:20:49
А json причем
Это был ответ на эту цитату
» Агрегация это функция приложения а не базы

Al
12.09.2018
16:21:12

Dmitry
12.09.2018
16:22:39
Ладно, Объясни что ты имел ввиду под фразой "Агрегация это функция приложения а не базы"? Почему это должен делать серверный процесс, а не база?

Fike
12.09.2018
16:24:01

Al
12.09.2018
16:24:28

Dmitry
12.09.2018
16:25:26
Имеешь ввиду предварительно агрегировать на более большие сегменты?

Al
12.09.2018
16:27:27
Вариантов вагон

Ilya
12.09.2018
16:31:17

Al
12.09.2018
16:32:15

Ilya
12.09.2018
16:32:47

Fike
12.09.2018
16:34:47

Al
12.09.2018
16:34:54

Ilya
12.09.2018
16:35:10
Кассандра? Отлично!