Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
По поводу XML и Viper... Пример из жизни - а-ля Invoice (telecom industry), на тему: почему это (Viper/XML) нужно Invoice Несоздается руками, его генерит система Нужно чтобы все данные на тот момент когда делался Invoice были сохранены standalone в самом Invoice (читай history) Можно было городить таблицы c огромным количеством полей, связями и т.д. (делать доку ко всему и т.д., чтобы все поняли что "эдесь" будет храниться invoice), но был выбран следующий путь: - одна таблица. типа INVOICE (ID,DOCDATE,DOCSUM,CURR,DOCXML,ID_CUST DOCXML - CLOB в котором хранился Invoice типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Делало все 3 программера (как врочем и разные системы это): 1-ий - саму генерацию этого XML'a из источников, 2-ой - GUI (native/web) типа посмотреть список Invoices, 3-ий - трансформация XML => PDF,Excel,CSV,HTML (а-ля XSLT и т.д.) С момента реализации, делались добавления в Invoice, эти изменения коснулись только 1-ого и 3-его программера (XML) В баэе ничего неменялось. Данные тоже. Так же, отсталось версионность Invoice'в и их трансформеры.... Так зачем все-таки нужен Viper, когда все и так работает? Пользоватили попросили сделать выборку всех Invoice по определенным параметрам... И что, вытаскивать мегабайтные CLOB парсить их в XML ? Был бы Viper, создали бы index и все. А так пришлось делать вспомогательные таблицы, разбирать XML. B дальнейшем это все было убрано (вспом.таблицы) и реализовано в другом аспекте.... Ах да, еще этот Invoice xml нужно было потом "предоставить" для другой системы, но немного в другой форме. Ограничились написанием простого web service + xsl на этот Invoice xml и все. И где тут трудоемкоть? Программеры делали "задачу", а не заморачивались работой с таблицами-помойками И написанием почти-аналогичного кода для подготовки user-friendly invoice Про поддержку одной таблицы вместо 5-10 - молчу (тихо говоря: типа наверно только у настоящих пацанов должно быть 10000 таблиц с 1000 полей в каждой ) Где тут "пониженая" производительность? Документ уже сделан и его оставалось передать или видоизменить Ненадо делать "бессмысленные" запросы к базе... Все это можно было сделать и традиционным способом. Никто и не спорет. Решения бывают разные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 10:36 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
2 ggv Для pilota, думаю все-таки это не самый лучший вариант, т.к. пример охватывает только маленькую и конкретную часть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 10:39 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
Не понял. Вам было лень раскидывать по табличкам и вы вставили в блобы в определённой структуре. Но раскидав по табличкам вы получили бы скорость поиска, например на какую сумму наделали Customer'ы Invoice'ов за такой-то период. А здесь как? В любом случае придётся по этим блобам лазить и выковыривать эти данны, будь они хоть в хмл хоть в тексте разделённом таблуляцией. Будет это делать сам сервер выполняя XQuery запрос или самописная процедура. Насколько я знаю все парсеры на пару порядков проигрывают по скорости нормальным скл-серверам. Как с производительностью? Никак? Или вам такие запросы не нужны? Тогда зачем совать это в БД? Пусть в файловой системе лежит. И не в хмл а сразу в пдф. Открыл, распечатал без всяких преобразований ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 10:59 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
Игрался с Viper'ом. Ощущения что работает быстрее чем 8.2.... Очень шутренько работает оказался Control Center... Что в принципе не удивительно теперь его пишут в Канаде... Удобный Range partitioning и Self tuning memory... Прикольно посмотреть на систему у которой убрал нужный индекс скорость запроса возрасла раз в 5 после 20 минут работы скорость за счет автоматического рапределения памяти понизилась раза в 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 11:10 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
1024 - прошу вас, давайте не сваливаться в флейм. Herr Developer - замечательно все сазали, и описали, и мне близко - я из всего бизнеса телеком только и знаю (почти). Вы упустили маленький но важный момент. Пользоватили попросили сделать выборку всех Invoice по определенным параметрам... Вот огтсюда - по-побробнее. Это же основное, суть вещей. Зачем поиск, что за поиск, по каким параметрам. А скорострельность можно и потом обсудить - как много какого размера как часто форммируются дркументы, как часто какого рода поиск, и прочее, и оценить производительность XML решения vs реляционное решение. Будем посмотреть и на геммор сопровождения, и на производительность. По личному опыту могу сказать, что производительность доступа к Invoices "фигня, по сравнению с мировой революцией" и работой с , как они там, billing events. Я к тому, что производительность в случае доступа к Invoices может и не быть решающим фактором. Вывод - если Herr Developer расколется по существу заданных вопросов, то я с удовольствием добавлю и случай телекома первым пунктом - мне оно роднее, и данные есть, и знания, и приложения, и так далее. Вот на основе VoIP и замутим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 11:10 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
Флейма нет. С моей стороны по крайней мере. Одно из правил нормализации - атомарность данных в каждом столбце. Его практический смысл: при поиске по этим данным не нужно будет вычленять отдельные сегменты информации что увеличит производительность. Например ФИО - можно хранить как Иванов Иван Иванович но если нужно выбрать всех Иванов (например с именинами поздравлять работников/клиентов) то лучше хранить отдельно имя/фамилия/отчество. Но если поиска не предпологается то можно всё валить в кучу, как правило в любом документе есть поле комментариев где лежит что-то неструктурированное. Так пусть Herr Developer объяснит - производительностью пожертвовали в угоду скорости разработки? Или просто заказами занимается другой отдел и как у них бухгалтеры будут статистику по заказам считать ему не важно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 11:19 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
кстати. МОжет, сформировать рабочую группу по отраслям народного хозяйства, которые займутся пилотами по своим направлениям? Вооруженные Viper'ом и знаниями задач своей отрасли.... Вот gardenman - страховой бизнес, я с (пардон, не удержался :) Хером Девелопером за телеком. Кто на банковскую сферу? Еще эксперты по перечисленным отраслям? И стоит ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 11:35 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
2 1024 1. Основная инфа (типа дата,сумма,кому-откого) присуствует в "доступном виде". 2. Ненадо было лазить по clobам и сейчас ненадо. В случае с Viper - был бы сделан index и один XQuery запрос с xml - и все Сейчас все делается до того, как XML данные поподут в базу 3. С производительностью все ок 4. Это документ и он должен храниться в базе. Как он может выглядить как PDF, как Excel, как CSV, как другой XML, как HTML - это уже view этого документа Потребителями этого invoice xml может являються разные системы и люди... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 11:35 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
1024 Одно из правил нормализации - атомарность данных в каждом столбце. 2 1024 Пусть у нас имеется таблица Код: plaintext 1. 2. 3. 4. 5. 6. 7. Рассмотрим другую структуру: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. И, теперь рассмотрим последний вариант для Viper: Person( PersonID int , PersonData XML ) [/src]Где будут созданы соответствующие индексы по элементам. Пока что Viper у меня нет, но честно говоря как только появится, я хочу протестировать производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 11:44 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
Осталось задачу построения алфавитного списка вписать в бизнес задачу. Кому когда и для чего. Ну мы же "прибыль" получаем, а не диссертацию защищаем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 11:57 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
ну так осветите преимущества/недостатки а.хранить в нормализованом виде б.хранить в блобах в виде хмл определённой структуры а то у вас получается 1. Основная инфа (типа дата,сумма,кому-откого) присуствует в "доступном виде". - она так же доступна если хранится в обычных табличках. Или у нас какие-то разные критерии доступности (мои - если можно данные взять то они доступны, если для этого нужен один запрос то они доступней если для этого нужно два запроса например) 2. Ненадо было лазить по clobам и сейчас ненадо. В случае с Viper - был бы сделан index и один XQuery запрос с xml - и все Сейчас все делается до того, как XML данные поподут в базу - не понял. Не руками ж лазют, я имел ввиду что непосредственно выборку хмл кто-то должен делать, встроенный движок сервера или самописная процедура 3. С производительностью все ок - были тесты? Ок это в 5 раз медленнее или в 50? 4. Это документ и он должен храниться в базе. Как он может выглядить как PDF, как Excel, как CSV, как другой XML, как HTML - это уже view этого документа - зачем? Если он не обрабатывается а просто хранится? А если он обрабатывается то мож он должен храниться в виде удобном для обработки? Потребителями этого invoice xml может являються разные системы и люди... - потребителями данных в обычных табличках так же обычно являются разные системы и люди ============= тема не раскрыта. Пока вижу только возможность не возиться со структурой малозначимых данных и отложить проблемы с произодительность и валидностью данных на потом. Проблемы которые возникнут потом: 1.производительность - из моего опыта работы с хмл. Ниже чем в нормальных бд примерно на два порядка. 2.валидность - данные вставляются в блобы в виде хмл. Как проверять что они правильные? При вставке сверять со схемой? Такие возможности есть у сервера или надо писать? А если поменяется схема (например станет обязательным указание даты перечисления денег) что делать со старыми документами? Перепроверять? Кто будет это делать? Так же если схема представления поменяется (например тег Customer будет в новых документах называться TL2)? 2gardenman авторPerson( PersonID int , Surname smallint , -- длина фамилии Name smallint , -- дина имени Patronimic smallint, -- длина отчества FullName char(60), -- полное имя Birthday date ) =8O а кто будет это Surname smallint высчитывать? Пользователь когда вводит фамилию? По-моему это пример наживания себе геморроя. Вместо того чтоб просто хранить имя и фамилию вводить это в одну строку с указанием длины имени. А когда имя нужно поменять (ошибочно ввели Владлен вместо Владелен) то пересчитать длину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 12:00 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
2 ggv Ну invoice может выставляться так как "захотят" хот каждую неделю, хоть раз в месяц, хот каждые 10 дней... Ладно это так, к слову. Основное назначение поиска в invoice data - это его проверка! Типа у каких выставленых сегодня invoice rate = 0 или в каких invoices присуствуют special tariff plans/rates... Сейчас это реализовано,за неименеем Viper ;) , по принципу: invoice generator -> некий checker ( c неким billing user's informatorои ) -> invoice database в этот checker добавляется все rules, которые нужны billing user'am. По мере работы системы, добавляются новые rules, так как business растет, видоизменяется и т.д. В таком духе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 12:03 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
:-) Объяснить зачем это нужно? Алфавитный список? Ответ - нафиг не нужен. А нужен доступ по алфавиту для быстрого поиска. Когда в CRM системе количество клиенто переаливает за миллион, то для реализации нечеткого поиска (нажимаешь букавки фамилии - перескакиваешь на нужную) если тащить на клиента слишком много, особенно при большом количестве соединений - ресурсы сервака тратятся слишком бездарно, впустую. А так - юзеру вытаскиваются тока те данные, которые вмещаются в экран чтобы показать. И тогда хоть в таблице десять миллионов записей - все равно все работает мгновенно. А сервер - не загружен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 12:07 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
1024 а кто будет это Surname smallint высчитывать? Пользователь когда вводит фамилию? По-моему это пример наживания себе геморроя. Вместо того чтоб просто хранить имя и фамилию вводить это в одну строку с указанием длины имени. А когда имя нужно поменять (ошибочно ввели Владлен вместо Владелен) то пересчитать длину. Все оч просто. Делается View, с простыми полями и пишется триггер INSTED OF. Все считается автоматически. Юзер может даже не знать как всё устроено внутри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 12:13 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
Ну как Invoice выставляются, я, как бы, в курсе :) А вот если я не ошибаюсь, все остальное вписывается в понятие metadata. Нет? Честно говоря, пока с никак не вижу потребность. Может, чуть детализировать? Для тугодумов типа меня. Можно по почте, чтоб тут флейм не разводить Почту могу смело дать в IRC (irc.freenode.net, #db2) или IM типа jabber (ggv@jabber.org, ggv@jabber.ru) gardenma - еще раз, для тех, кто в бронетехнике, про нужность сортировки по алфавиту. Давай по мылу. Туплю. Да и 8-мартовская горячка уже наступила :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 12:14 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
2 ggv. Я те завтра примерчик вышлю. Сгенеришь данных 2-3 миллиона строк и поползаешь по таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 12:18 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
О! Фсе бы так :) Gardenman rules! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 12:28 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
2 1024 Вы невнимательно читаете то что было уже написано раньше либо у Вас какие-то другие цели... :) или как-то не понятно я пишу >> ну так осветите преимущества/недостатки освещал смоей стороны >> 1. Основная инфа (типа дата,сумма,кому-откого) присуствует в "доступном виде". Имелось ввиду - в табличной форме >> - не понял. Не руками ж лазют, я имел ввиду что непосредственно выборку >> хмл кто-то должен делать, встроенный движок сервера или самописная >> процедура Сейчас никто (в плане native xml). Будет Viper ´тогда да... Сейчас работа идет как просто с CLOB >> 3. С производительностью все ок >> - были тесты? Ок это в 5 раз медленнее или в 50? Чтобы сделать тесты, нужно было реализовывать 2 системы Проблем с производительностью нет - система работает уже как года 3... >> - зачем? Если он не обрабатывается а просто хранится? А если он >> обрабатывается то мож он должен храниться в виде удобном для обработки? Удобный - в данном случае XML >> - потребителями данных в обычных табличках так же обычно являются разные >> системы и люди В этом и "проблема". Я оперирую документом, вы табличками. >>1.производительность - из моего опыта работы с хмл. Ниже чем в нормальных >> бд примерно на два порядка. Про это уже говорилось >> 2.валидность - данные вставляются в блобы в виде хмл. Как проверять что Про версионность документов уже было написано. Все работает прекрасно. Про вставку - тот кто вставляет тот и проверяет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 12:44 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
ggv А вот если я не ошибаюсь, все остальное вписывается в понятие metadata. Нет? Честно говоря, пока с никак не вижу потребность. Может, чуть детализировать? Т.е.? Что именно? Не совсем пойму что детализировать? P.S. Отключаюсь до вечера... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 12:51 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
ну да, проблемы видно. Преимуществ не видно В этом и "проблема". Я оперирую документом, вы табличками. ----------------------------- вобщем-то я оперирую данными в разных формах а не табличками или документами. Можно в хмл, можно в документах, можно в табличках. 2gardenman -- количество клиенто переаливает за миллион, то для реализации нечеткого поиска (нажимаешь букавки фамилии - перескакиваешь на нужную) если тащить на клиента слишком много, особенно при -- да вроде никакое использование хмл нечёткий поиск не улучшит. Если вы об этом Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 12:52 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
Herr Developer - да вот rate, присутсвие в invoice различных тарифных планов - это метаданные? Или нет? Если да - то их можно в реляционную составляющею invoice, а сам инвойс хоть бы в чем - все равно не искать по нему. Если нет, и есть вероятность поиска, запросами, не известными на этапе проектирования, которые появляются/исчезают (запросы), по заранее неизвестным критериям - ну смысл ясен, мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 13:54 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
Herr Developer, а пользователи не должны искать по инвойсам, они должны искать по данным, из которых этот инвойс был сгенерирован, только и всего. Nikolay Kulikov: а когда будет публичная бета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 15:01 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
ну данные, из которых сгенерированы invoices, имеют свойство устаревать. Те же price-lists меняются. Тогда надо предусматривать дополнительные телодвижения, для возможности работы по старым данным. Может статься, что это будет накладнее, чем рыться в invoices. Хотя сам подход имеет право на жизнь, да чё там - я сам так и делал. Вопрос ведть в чём - может, сейчас, с появлением Viper, уже лучше по invoices в XML рыться, а не по сложно составленному SQL выражению доступа к истории pricelists Мне представляется, что случай поиска по invoices это больше исключение, чем правило. Ну в смысле, что другая биллинговая активность происходит несоизмеримо чаще, чем поиск по invoices. И вот с этой точки зрения, может быть, действительно удобнее искать по invoices. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 15:12 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
Пока не ясно я думаю в конце месяца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 15:40 |
|
||
|
XML and Viper - а нафига собственно????
|
|||
|---|---|---|---|
|
#18+
ggv, дык в тех биллинговых системах, с которыми мне довелось поработать и с которыми я работаю сейчас - данные обычно не обновляются на месте, а завершается существование старой версии и открывается новая. Так что не вижу проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2006, 15:44 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=33583468&tid=1603766]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 361ms |

| 0 / 0 |
