1.1, Guest (??), 12:54, 26/11/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Кто в курсе, не возьму в толк, почему всё так сконцентрировалось вокруг баз с функционалом ключ/значение? Для чего они?
До сих пор имел дело только с реляционными.
| |
|
2.2, arisu (ok), 12:55, 26/11/2013 [^] [^^] [^^^] [ответить]
| +17 +/– |
> Для чего они?
для удобного хранения пар ключ/значение.
| |
|
3.36, qqqqq (?), 14:59, 27/11/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
а пара "SQL запрос" -> "результат" чем не пара ключ-значение. Видишь ли это просто другая форма мышления.
| |
|
4.41, arisu (ok), 01:50, 28/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> а пара «SQL запрос» -> «результат» чем не пара ключ-значение.
тем, что в этом случае вклинивается как минимум один промежуточный слой — sql vm (и парзер, если это не precompiled statement). а на самом деле — больше слоёв. и всё только для того, чтобы в конце концов добраться до какого-нибудь b+ дерева. «nosql» (не люблю этот термин, ну да ладно) как раз промежуточные слои исключают.
всё вышесказаное, конечно, не означает «выкидываем sql, он не нужен!» каждому инструменту — своя ниша и своё применение.
| |
4.43, badger (ok), 02:12, 28/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
а пара "SQL запрос" -> "результат" тем не пара ключ-значение, что в общем случае одному ключу соответствует много значений
| |
|
|
2.3, none_first (ok), 12:57, 26/11/2013 [^] [^^] [^^^] [ответить]
| –4 +/– |
большинство бизнес процессов сложно/невозможно (без допущений и костылей) вписать в реляционную схему...
переменное число характеристик порождает доп. сущности в РСУБД
для отчетов, РСУБД - самое оно
| |
|
3.9, NikolayV81 (ok), 13:51, 26/11/2013 [^] [^^] [^^^] [ответить]
| +4 +/– |
В ключ-значение "бизнес" процессы вообще с такими костылями ложатся, что почти никто не пытается, а вот во всяких личных страничках на сайтах ( большие соц. сети ), где за неверную ссылку голову никто не оторвёт, а время загрузки критично, можно хоть всю личную страницу пользователя в один отвязанный от окружающего мира объект запихивать, и загружать только его, а потом уже после отработки "показали клиенту его страничку" проверять валидность данных и их доступность по ссылкам.
| |
|
4.11, none_first (ok), 14:07, 26/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
одной из первых БД документооборота была Lotus Notes, кот. (вопщем) и является БД ключ/значение (при условии, что понятие "значение" несколько более расширено ;) )
и воркфло - прекрасно строится на этой платформе
попытка же ИБМ прикрутить DB2 (РСУБД) к домине, не увенчалась успехом и именно по причине костыльности реализации http://forum.codeby.net/topic22892.html?view=findpost&p=109606
т.е. реализовать-то можно - но это будет не реляционная схема;)
| |
|
5.12, NikolayV81 (ok), 14:57, 26/11/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> одной из первых БД документооборота была Lotus Notes, кот. (вопщем) и является
> БД ключ/значение (при условии, что понятие "значение" несколько более расширено ;)
> )
> и воркфло - прекрасно строится на этой платформе
> попытка же ИБМ прикрутить DB2 (РСУБД) к домине, не увенчалась успехом и
> именно по причине костыльности реализации http://forum.codeby.net/topic22892.html?view=findpost&p=109606
> т.е. реализовать-то можно - но это будет не реляционная схема;)
Логика была запихана в клиентский модуль. С зависимостями, актуальностью, достоверностью данных и атомарностью операций проблемы.
1C Тоже с dbf начинало и что?
По поводу ссылки, высосанная из пальца задача, данные которые не нужно обрабатывать, нет смысла хранить, если это результирующий отчёт, то его нужно формировать, и возможно фиксировать в те же blob поля (любой тип туда влазит, аналог не типизированного value).
| |
|
6.15, none_first (ok), 15:27, 26/11/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
>Логика была запихана в клиентский модуль. С зависимостями, актуальностью, достоверностью >данных и атомарностью операций проблемы.
>1C Тоже с dbf начинало и что?
и то - 1С не стала РСУБД (несмотря на использование "их" как подложки), у неё есть аппсервер, кот. и есть "костыль" к БД
атомарность в вокфло на каком уровне нужна и какими средствами, у сущ. в РСУБД, многозначные поля и разнотипные данные реализуются, в рамках одного документа?
и наборчик ёрпов:
САП - надстройка над РСУБД
Ахапта - тожсамое
...
"логика запихана в клиентский модуль";)
| |
|
7.16, NikolayV81 (ok), 15:55, 26/11/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
>[оверквотинг удален]
> и то - 1С не стала РСУБД (несмотря на использование "их" как
> подложки), у неё есть аппсервер, кот. и есть "костыль" к БД
> атомарность в вокфло на каком уровне нужна и какими средствами, у сущ.
> в РСУБД, многозначные поля и разнотипные данные реализуются, в рамках одного
> документа?
> и наборчик ёрпов:
> САП - надстройка над РСУБД
> Ахапта - тожсамое
> ...
> "логика запихана в клиентский модуль";)
"многозначные поля и разнотипные данные реализуются" это какие данные? про те которые не нужны для обработки - реализация blob, если с первого раза не понятно. Если данные надо обрабатывать, искать, сортировать ( выбирать подборку документов по вложениям, характеристикам, то это вполне себе данные с конкретными типами ).
А так выберете из универсального key-value в котором контракты, все те которые в ценах на 13 июля имели добавленную стоимость более n-руб, в разрезе удалённых филиалов и которые были заключены менеджерами нанятыми начиная с 2009 года.
Трёхзвенная архитектура нужна по причине необходимости синхронизации между процессами, т.к. РСУБД не для этого, если это не нужно достаточно двухзвенки, а вот реализовывать в каждом приложении ( конкретной епр-ке ) механизмы дублирующие функционал БД ( всё те же транзакции, каскадные зависимости данных, типизированные справочники ) ещё то извращение.
| |
|
|
|
|
3.19, Аноним (-), 17:51, 26/11/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> большинство бизнес процессов сложно/невозможно (без допущений и костылей) вписать в реляционную
> схему...
> переменное число характеристик порождает доп. сущности в РСУБД
> для отчетов, РСУБД - самое оно
Аффтар, ты в глаза видал такую книгу, как Ричард Баркер - "ER-modeling"?
У меня впечатление, что ты ни о бизнес-процессах, ни о реляционном моделировании ничего не слышал, ну, кроме названия, конечно.
| |
|
4.24, none_first (ok), 19:48, 26/11/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> большинство бизнес процессов сложно/невозможно (без допущений и костылей) вписать в реляционную
>> схему...
>> переменное число характеристик порождает доп. сущности в РСУБД
>> для отчетов, РСУБД - самое оно
> Аффтар, ты в глаза видал такую книгу, как Ричард Баркер - "ER-modeling"?
> У меня впечатление, что ты ни о бизнес-процессах, ни о реляционном моделировании
> ничего не слышал, ну, кроме названия, конечно.
а ты вживую видал документооборот (именно воркфло) в больших компаниях со сложной структурой, постоянно меняющейся?
я полагаю ты только и слышал о чем-то, но ничего реального не видел ;)
| |
|
3.38, vitalif (ok), 19:51, 27/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
Это кстати вот как раз какое-то стильно-модно-молодёжное предубеждение, скажу я вам)
Если свалить все поля ваших классов кучей в редис - там вообще чёрт ногу сломит...
| |
|
4.42, arisu (ok), 01:52, 28/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
есть ещё и такой секрет же (прямо тут о нём и писали, кажется): для key/value можно «сесть и кодить», не надо заморачиваться разработкой схемы хранения данных и взаимосвязей. ну и что, что оно потом так аукнется, что мало не покажется? это потом будет, а код рубить уже сейчас можно!
| |
|
|
2.5, Аноним (-), 13:17, 26/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
потому что хипсторы не осиливают теорию множеств и транзакции
| |
2.6, Аноним (-), 13:31, 26/11/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
Хыхы. Все написавшие выше не правы!
Ключ значение работает тупо на несколько порядков быстрее и хорошо маштабируется. Что сейчас очень востребовано.
Если бы реляционнки работали на уровне мемкеша, то ничего бы больше нужно бы небыло.
| |
|
3.10, arisu (ok), 13:55, 26/11/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Ключ значение работает тупо на несколько порядков быстрее
…чего? ну вперёд, велосипедь сложные структуры данных со связями. посмотрю, за сколько ты навелосипедишь rdbms поверх key/value, и насколько оно в итоге будет тормозить.
| |
|
4.25, edwin (??), 19:54, 26/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> Ключ значение работает тупо на несколько порядков быстрее
> …чего? ну вперёд, велосипедь сложные структуры данных со связями. посмотрю, за сколько
> ты навелосипедишь rdbms поверх key/value, и насколько оно в итоге будет
> тормозить.
Это не задача key store хранилищ.
Что касается обозначенной Вами задачи .... РСУБД хороший инструмент с наработанными шаблонами. Но не единственный - если выйти за рамки реляционной модели - много вкусных плюшек ждут Вас. К примеру работа со сложными структурами ....
Подобного рода задачи решаются другими инструментами - таким классом решений как документ ориентированные БД. К примеру - MongoDB. Там есть на что посмотреть ...
| |
|
3.28, metallica (ok), 23:17, 26/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Хыхы. Все написавшие выше не правы!
> Ключ значение работает тупо на несколько порядков быстрее и хорошо маштабируется. Что
> сейчас очень востребовано.
> Если бы реляционнки работали на уровне мемкеша, то ничего бы больше нужно
> бы небыло.
Эти ключ/значение базы для кеширования в памяти запросов к RDBMS backend обработчиками.
Чтоб не делать повторных запросов к sql базам.Если для какого-то представления
какой-то системы имеется модель данных в sql базе, и с разных клиентов поступают
запросы на получение этого представления, то бекенды его формируют, извлекая один и тот же
набор данных, относящиеся к соответствующей модели.Результат запроса к RDBMS сохраняется в
redis/memcached под каким-то ключом, а backend обработчик сначала проверяет
наличие данных той или иной модели в redis/memcached и только при их отстутствии лезет
в RDBMS. list=cache.get('MODEL_XXX','No')
if list=='No':
list = Model_XXX.objects.all()
| |
|
4.30, Аноним (-), 08:48, 27/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
КЭП? Интерактивные данные в кешить не вариант, тригерами будете их обновлять. Ваш вариан годится когда чтение сильно превышает запись и когда не важно время реального обновления данных у клиента.
| |
|
5.32, NikolayV81 (ok), 10:03, 27/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> КЭП? Интерактивные данные в кешить не вариант, тригерами будете их обновлять. Ваш
> вариан годится когда чтение сильно превышает запись и когда не важно
> время реального обновления данных у клиента.
Может имелось в виду типа App сервера что-то, если мы точно знаем что и где мы обновляем, ничто не мешает нам организовать кэш, правда такой же кэш может быть организован и в БД, так что геморрой с реализацией может перекрыть выигрыш во времени отклика.
| |
|
6.35, metallica (ok), 11:11, 27/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Может имелось в виду типа App сервера
Стандартное MVC с ORM на java/python/ruby
> что и где мы обновляем
Каждая модель имеет уникальный символьный идентификактор и в СУБД и в кеше.
> правда такой же кэш может быть организован и в БД,
Есть возможности в фреймворках делать кеши в БД, но сохранение и извлечение
данных организовано тоже по принципу ключ/значение.
> что геморрой с реализацией
Дополнительные н несколько строчек кода.
| |
|
5.34, metallica (ok), 11:03, 27/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
>когда чтение сильно превышает запись
Именно, когда читают куча клиентов, а пишут один два специализированных бекенда наполнителя
контента.
| |
|
6.37, Аноним (-), 16:59, 27/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
Хорошо, намажу толще.
В современном мире интерактива подход беспонтовый.
| |
|
|
|
|
2.8, Клыкастый (ok), 13:45, 26/11/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
а я вот часто имею дело с данными, которым на роду написано ключ/значение. И очень печально, когда разработчики запихивают это в sql.
| |
|
3.20, Аноним (-), 18:15, 26/11/2013 [^] [^^] [^^^] [ответить]
| –2 +/– |
Конкретные примеры, что у Вас отлично ложится в "ключ-значение"
| |
|
4.22, edwin (??), 19:34, 26/11/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Конкретные примеры, что у Вас отлично ложится в "ключ-значение"
Добрый день.
Зачем Вы так категоричны ? Вы ведь никогда не ездите в Камазе в магазин ?
Примеров - вагон. Для иллюстрации - хранение данных http сессий в key store хранилище.
РСУБД тут никаким боком не упала - не ее это уровень.
| |
4.33, Клыкастый (ok), 10:55, 27/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Конкретные примеры, что у Вас отлично ложится в "ключ-значение"
SIP сессии например
| |
|
|
2.26, Аноним (-), 19:56, 26/11/2013 [^] [^^] [^^^] [ответить]
| +/– |
> почему всё так сконцентрировалось вокруг баз с функционалом ключ/значение?
Потому что
1) Быстрые.
2) Большинство реализаций не боится Бобби Тэйблса.
| |
|
1.14, Аноним (-), 15:09, 26/11/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Опять споры уровня, что лучше: рубить лес лопатой или копать ямы топором.
| |
|
2.27, Аноним (-), 19:58, 26/11/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Опять споры уровня, что лучше: рубить лес лопатой или копать ямы топором.
Это опеннет, детка. Здесь любят летать на боинге в магазин и пытаться лететь на самокате через океан.
| |
|
1.21, edwin (??), 19:24, 26/11/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Sentinel - ИМХО один из ключевых моментов этой версии ... как по мне - стало стабильнее.
| |
|