|
|
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
ChAsphinx_mv...Мне жаль, что Ваша воинствующая глупость была ошибочно принята мною всего лишь за заблуждение.Это Вы так завуалировано именуете Вашу неспособность вменяемо излагать свои мысли? А Вы точно уверены, что хоть какие-то мысли у Вас были? ChAК отсутствию у Вас упомянутых ранее положительных качеств добавились сугубо отрицательные, как-то активное враньёО, как! И это я, оказываеся, с враньем тут засветился... А цитатку не слабо? ChA и безудержная, высосанная из пальца, чушь.Ваша? Факт! Вы ее придумали. Вы ее приписали оппоненту. Вы начали с пеной ее опровергать. Справшивается: кто кому ССЗБ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2014, 18:49 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
sphinx_mv По самым скромным оценкам, примерно полей, этак на 100... И большая часть из из этих полей - "строки".И чем вас это напрягает? sphinx_mv список словарей одних только вендорских атрибутов, которые поддерживает небезызвестный freeradius, приближается к двум сотням штук...Опять не вижу проблемы. По мне что иметь две сотни "логических" объектов, что две сотни физических таблиц разница небольшая. То есть задача вполне себе легко решается и без EAV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2014, 19:10 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
Господа удавы, не стоит переходить на личности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2014, 19:12 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
long live sql я бы не стал совсем отбрасывать вариант "blob+xml" Такой подход (запечатаную пачку принял/выдал) отлично работает когда данные обрабатываются одним приложением. Но если данные представляют какую либо ценность вне программы, то рано или поздно пачку придется распечатывать (создавать xml индекс например), то есть серверу придется делать двойную работу (скупой платит дважды). Радует только то что этот фунционал берет на себя СУБД. long live sql при переконфигурации проблематично удалять и переименовывать атрибутыИ если накосячишь, СУБД ругаться не будет, ругаться будет пользователь. long live sql ладно хоть добавлять нетрудноА типа в реляционную субд добавлять атрибуты трудно. long live sql но и плюсы есть (например, скорость)А в реляционной субд одна строка по ай-ди долго достается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2014, 19:33 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
SERG1257sphinx_mv По самым скромным оценкам, примерно полей, этак на 100... И большая часть из из этих полей - "строки".И чем вас это напрягает?Гигабайтами выделенного для хранения места. Особенно с учетом того, что "плоские" таблицы получатся весьма разряжеными. Ну, и потом периодически появляются новые типы оборудования, появляются новые типы обрабатываемых пакетов и услуг, появляется необходимость обслуживания дополнительных атрибутов, в которых сначала не было необходимости, и они игнорировались... Таблицы будем расширять? Ну, а куда деваться! Вот только физическое ограничение на размер записи в MSSQL - 8 килобайт. Аналогичные ограничения есть и для серверов других производителей. Так что упереться в "предел" можно легко и непринужденно - при таких типах данных и при таком ожидаемом количестве полей. SERG1257sphinx_mv список словарей одних только вендорских атрибутов, которые поддерживает небезызвестный freeradius, приближается к двум сотням штук...Опять не вижу проблемы. Когда используются банальные запрос на вставку записи на 100 полей - в принципе это не проблема, хотя и не очень удобно. Но значимые атрибуты могут повторяться (с другими значениями) - это уже одной "плоской" таблицей не обойтись. SERG1257По мне что иметь две сотни "логических" объектов, что две сотни физических таблиц разница небольшая.Логические объекты проще поддерживать, чем такое же количество физических - для внесения изменения в схему, как минимум, нет необходимости физически перестраивать структуру таблиц. А так как спроектировать "хорошо", "сразу" и "надолго" вряд ли получится, то изменять структуру таблиц придется. К тому же... Принимать решение о вставке данных в одну из множества физических таблиц будем? А то! И займется этим radius-сервер - больше некому/нечему. Вот только условия анализа могут быть весьма "ветвистыми" - а этот анализ занимать лишнее время и отжирать ресурсы сервера, а из-за особенностей протокола (используется UDP однако) это может привести к потерям данных. Проще просто залить данные по атрибутам "как есть" - "без долгих раздумий". А обслуживание логической модели вполне можно вынести в отдельное приложение - прозрачно и незаметно для radius-сервера. SERG1257То есть задача вполне себе легко решается и без EAV.Решается. Вот только решение "не на атрибутах" получается, мягко говоря, "странным" и "хрупким". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2014, 21:23 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
sphinx_mv Гигабайтами выделенного для хранения места. Особенно с учетом того, что "плоские" таблицы получатся весьма разряжеными.Насколько я знаю null поля места не занимают. Так что место расходуется ровно столько же как и для EAV. sphinx_mvТаблицы будем расширять? Ну, а куда деваться!Например сделать таблицу наследник со связью 1:1 с основной. Так что деваться есть куда. sphinx_mv Но значимые атрибуты могут повторяться (с другими значениями) - это уже одной "плоской" таблицей не обойтись.Это вообще непонятно. Имя - Вася Имя - Петя Сохранить это можно, но как потом с этим дальше жить. sphinx_mv А так как спроектировать "хорошо", "сразу" и "надолго" вряд ли получится, то изменять структуру таблиц придется.Если в таблице данных нет, то кроить несложно. Если данные есть, то лучше пусть меня остановит движок СУБД, чем я найду мусор в данных. sphinx_mvПроще просто залить данные по атрибутам "как есть" - "без долгих раздумий".Еще проще залить все сообщение целиком. Вы как то обходите стороной запросы к вашей EAV базе. Если этим будет заниматся другое приложение, а может и на другом сервере - так пусть оно и парсит и думает куда что записать, чтобы удобно было читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2014, 21:47 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
SERG1257sphinx_mv Гигабайтами выделенного для хранения места. Особенно с учетом того, что "плоские" таблицы получатся весьма разряжеными.Насколько я знаю null поля места не занимают. Так что место расходуется ровно столько же как и для EAV.Для ЛЮБОЙ базы данных? И это гарантированно ни когда не изменится при переходе на другую версию? Зуб дадите? ;) SERG1257sphinx_mvТаблицы будем расширять? Ну, а куда деваться!Например сделать таблицу наследник со связью 1:1 с основной. Так что деваться есть куда.Чего уж там: по одной таблице-наследнику со связью 1:1 к основной под каждый атрибут. А потом (сугубо потому что держать 100500 физических таблиц в базе не по фэншую) просто собираем все эти отдельно взятые таблицы в одну "супер-таблицу" (с добавлением поля-идентификатора атрибута) и наслаждаемся вариациями EAV... :) Какой смысл огород городить? SERG1257sphinx_mv Но значимые атрибуты могут повторяться (с другими значениями) - это уже одной "плоской" таблицей не обойтись.Это вообще непонятно. Имя - Вася Имя - Петя Сохранить это можно, но как потом с этим дальше жить.Конкретно вот с этим? Возможно, что никак. Хотя даже тут могут быть варианты: в некоторых задачах бывает важен не порядок следования, а сам факт наличия и сколько раз встречается... SERG1257sphinx_mv А так как спроектировать "хорошо", "сразу" и "надолго" вряд ли получится, то изменять структуру таблиц придется.Если в таблице данных нет, то кроить несложно. Если данные есть, то лучше пусть меня остановит движок СУБД, чем я найду мусор в данных.Немеряное и практически неуправляемое количество пустых значений в полях записи - это уже само по себе мусор в данных... SERG1257sphinx_mvПроще просто залить данные по атрибутам "как есть" - "без долгих раздумий".Еще проще залить все сообщение целиком.Зачем?! Чтобы потом ОПЯТЬ парсить для обработки?! RADIUS-сервер все УЖЕ распарсил на список пар "атрибут-значение", когда получил пакет... sphinx_mvВы как то обходите стороной запросы к вашей EAV базе. Если этим будет заниматся другое приложение, а может и на другом сервере - так пусть оно и парсит и думает куда что записать, чтобы удобно было читать.База данных - ОБЩАЯ. И хранится в ней уже распарсеные наборы данных, на основании которых по простой и очень гибкой логической модели можно выполнять любые обработки. Вот Вы меня в чем убеждаете? Что, уже имея вполне нормализованные данные, нужно сначала применить героические усилия, чтобы их денормализовать, а после этого где-нибудь и когда-нибудь "на стороне" опять с не менее героическими усилиями начать заниматься "нормализацией", но уже под какую-то "другую" задачу?! Не смешно! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2014, 23:52 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
sphinx_mv Вот Вы меня в чем убеждаете? Я вас ни в чем не убеждаю. Вы сказали, что задача идеально подходит под EAV и я пытаюсь понять как оно работает и как бы я это реализовал я. Что имеем - есть сервис занятый важным и нужным делом. Вы настраиваете сервис писать лог в СУБД. Больше сервис в СУБД не ходок, он делом занят. Затем другая программа (отчет) идет в эту базу и делает по ней отчет или гибкую обработку. Я правильно понял? Как бы это стал делать я - заставил бы сервер скидывать данные (отпарсенные) в текстовый файл (это быстро, дешево, надежно), который бы тащил на другую машину (нечего у сервиса ресурсы отбирать) там обрабатывал и заносил в структуру удобную для отчетов, ибо делать отчеты по EAV базе неудобно и медленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2014, 00:18 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
SERG1257Вы сказали, что задача идеально подходит под EAV и я пытаюсь понять как оно работает и как бы я это реализовал я. Что имеем - есть сервис занятый важным и нужным делом. Вы настраиваете сервис писать лог в СУБД. Больше сервис в СУБД не ходок, он делом занят. Затем другая программа (отчет) идет в эту базу и делает по ней отчет или гибкую обработку. Я правильно понял?В общих чертах... Но это мы пока только с логами разобрались... Но логи - это еще не все. Это даже не бОльшая часть реализуемого функционала. Сервис не только пишет лог, но и по запросам от коммуникационного оборудования проверяет (по базе!) пользователей, определяет статус и параметры их услуг, настраивает параметры сессии - и еще много чего "интересного"... И в зависимости от результатов проверки отдает (в виде все того же пресловутого списка "атрибут-значение") на инициировавшее запрос коммуникационное оборудование некоторые данные... SERG1257Как бы это стал делать я - заставил бы сервер скидывать данные (отпарсенные) в текстовый файл (это быстро, дешево, надежно), который бы тащил на другую машину (нечего у сервиса ресурсы отбирать) там обрабатывал и заносил в структуру удобную для отчетов, ибо делать отчеты по EAV базе неудобно и медленно.Кроме отчетов и прочих обработок по логам нужно обеспечивать поток данных в обратном направлении, чтобы выполнять управление ресурсами по предварительно сконфигурированным или динамически генерируемым профилям... Фактически, профиль - "enity", набор пар "атрибут-значение" говорит сам за себя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2014, 00:54 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
> Господа удавы, не стоит переходить на личности. Это не переход на личности, это оценка квалификации. Ваше право искать жемчуг в дерьме никто не оспаривает. Стратегически важно, чтобы потолок карьерного роста быдла был ограничен подметанием трамвайных путей. Нужно объяснять, почему это так, или вы самостоятельно воспользуетесь историческими параллелями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2014, 02:11 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
SERG1257А типа в реляционную субд добавлять атрибуты трудно. [...] А в реляционной субд одна строка по ай-ди долго достается?дык я же как раз про реляционную субд!! то есть, к примеру, 1 доп. табличка (id, blob) в той же sql базе вместо прилепленной сбоку nosql типа, еще 1 альтернатива eav есть же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2014, 11:52 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Господа удавы, не стоит переходить на личности. Это не переход на личности, это оценка квалификации. Ваше право искать жемчуг в дерьме никто не оспаривает. Стратегически важно, чтобы потолок карьерного роста быдла был ограничен подметанием трамвайных путей. Нужно объяснять, почему это так, или вы самостоятельно воспользуетесь историческими параллелями?Вашего потолка карьерногороста не хатит даже на помощника младшего золоторя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2014, 19:14 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovVetalСобственно, есть ли смысл еще в EAV поверх реляционной БД, раз есть NoSQL? Нет, нету. Все на Носиквел! Самое восхитительное на носиквеле это то, что никто, кто ушёл туда - ещё не вернулся чтобы рассказать об ощущениях. Видимо, умирают от экстаза. ну как же. Вот как раз вернулись одни http://habrahabr.ru/post/231213/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2014, 18:59 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
VetalА вот изжил ли Entity-Attribute-Value (EAV) с приходом NoSQL? Я не понял, кто кого должен изжить, но EAV -- это реализация идеи schemaless DB. NoSQL не означает автоматом schemaless DB, поэтому не понятно, почему оно должно "изжить" EAV. В принципе, NoSQL вообще ничего не означает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 14:29 |
|
||
|
Если нужна гибкая схема данных: Entity-Attribute-Value (EAV) или NoSQL?
|
|||
|---|---|---|---|
|
#18+
VetalСобственно, есть ли смысл еще в EAV поверх реляционной БД, раз есть NoSQL? В чем преимущества EAV перед NoSQL и когда его имеет смысл использовать? К тому же, я не знаю ни одной стоящей промышленной СУБД на базе идеи NoSQL, такой, чтобы была бы по уровню примерно как Oracle или MSSQLServer или что-то подобное. Я не очень конечно разбираюсь в NoSQL, но знаю достаточно, чтобы утверждать, что хотя бы одной такой СУБД нет в природе, есть огромное количество разных решений, одно другого лучшехуже для каких-то конкретных целей, но какого-то итога, какого-то доминирующего решения нет. Нет даже какого-то одного формата данных для хранения, модели данных. А EAV может работать поверх обычной реляционной СУБД, в которой и модель данных, и репликации, и hot Standby, и кластеры, и много чего другого. Вот в этом и преимущество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2014, 14:38 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1540820]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 179ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...