Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Расперделить JSON поля по столбцам таблицы / 4 сообщений из 4, страница 1 из 1
02.07.2018, 15:13
    #39668392
Aleksey K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расперделить JSON поля по столбцам таблицы
Есть JSON документ типа:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
{
  object1: {
    filed1: value,
    filed2: value,
  },
  object2: {
    filed1: value,
    filed2: value,
  },
  ...
}


Я создал таблицу с полями:

Код: plaintext
object1.filed1, object1.filed2, object2.filed1...

и т.д. Как лучше организовать вставку значений из JSON-документа в таблицу динамически, чтобы можно было менять/добавлять пары источник->назначение? Хочу написать функцию типа:

Код: plaintext
insert_data(json_document::jsonb)

Можно документ пихать целиком в jsonb поле, но боюсь потом запросы к такой таблице будут идти медленнее, чем к обычной реляционной: http://clarkdave.net/2013/06/what-can-you-do-with-postgresql-and-json/ ? Или нет? Благодарю!

--
С уважением,
Алексей.
...
Рейтинг: 0 / 0
02.07.2018, 18:08
    #39668486
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расперделить JSON поля по столбцам таблицы
Aleksey K,

есть ещё ЕАВ (EAV)
у него есть клоники с партицированием Валуёв
обычно по типам.
или аж по атрибутам.
в Пж можно партицироваться динамически.
в момент прихода данного. (предок д.б. пуст, во избежание)

понятно что с большой базенкой нахлебаешься тормозов.
но гибкости изрядно.

если ядро выдрать в обычную реляционку а в еав свалить мусор -- может и со скоростью быть неплохо.
...
Рейтинг: 0 / 0
02.07.2018, 22:26
    #39668538
Aleksey K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расперделить JSON поля по столбцам таблицы
qwwqесть ещё ЕАВ (EAV)
у него есть клоники с партицированием Валуёв
обычно по типам.
или аж по атрибутам.
в Пж можно партицироваться динамически.
в момент прихода данного. (предок д.б. пуст, во избежание)

понятно что с большой базенкой нахлебаешься тормозов.
но гибкости изрядно.

если ядро выдрать в обычную реляционку а в еав свалить мусор -- может и со скоростью быть неплохо.
А можно подробнее по пунктам, пожалуйста, или ссылки для примера?
...
Рейтинг: 0 / 0
02.07.2018, 23:08
    #39668548
Aleksey K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расперделить JSON поля по столбцам таблицы
qwwq, в общем я понял, что ты имел в виду. Нечто подобное и мне в голову приходило, а EAV - это по науке. Однако посмотрел, что JSONB особенно с GIN jsonb_path_ops индексом иногда быстрее, или по крайней мере не намного медленнее: http://coussej.github.io/2016/01/14/Replacing-EAV-with-JSONB-in-PostgreSQL/. Решение иногда бысрее NoSQL баз данных: https://www.percona.com/live/e17/sites/default/files/slides/High Performance JSON - PostgreSQL vs. MongoDB - FileId - 115573.pdf А использовать лишь одно JSONB поле гораздо проще в реализации (по крайней мере вставка данных), чем куча мелких.

Остановлюсь на простом JSONB. Запросы к нему не сложные тем более, что структура JSON у меня в основном фиксированная.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Расперделить JSON поля по столбцам таблицы / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]