powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / XML and Viper - а нафига собственно????
25 сообщений из 103, страница 3 из 5
XML and Viper - а нафига собственно????
    #33583339
Herr Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу 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.
    
    <Invoice version="1.3" id="1212121">
         <Period from="2006-1-1" to="2006-1-5">
         <Customer id="12">
               <Name>Roga & Kopita</Name>
               <Address>
                    <Street>
                    <City>
 	           ......
               </Address>
               ....
        </Customer>
        <Process id="12121" started="2006-1-5T10:10:10.000" finished=".../>
        <DataSource id="ASGDHGD"/>
        ..........
        <Products>
          <Product id="22">
              <Name>Premium</Name>
              <Destinations>
                   <Destination>
                           <Name>Derevnja Petushki</Name>
                           <Codes>7294234923,7294934224</Codes>
		   <Periods>
			<Period from="2006- 1 - 1 " to="2006- 1 - 2 ">
	                           <Duration... 
			  <Rate ....
		………..
		 ...........
	       </Destination>
                   <Destination>
                           <Name>Mobil'niki Derevnji Petushki</Name>
                           <Codes>729423492223</Codes>
		   <Period from="2006- 1 - 5 " to="2006- 1 - 5 "/>
		 ..........
	       </Destination>
	       ...........................
               </Destinations>
           </Product> 
           <Product id="23">
              <Name>Premium special</Name>
                  .......
                 ...
        </Products>
   .........
   .......
В таком духе вообщем (для примера)

Делало все 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 полей в каждой )

Где тут "пониженая" производительность?
Документ уже сделан и его оставалось передать или видоизменить
Ненадо делать "бессмысленные" запросы к базе...


Все это можно было сделать и традиционным способом.
Никто и не спорет. Решения бывают разные
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583349
Herr Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ggv
Для pilota, думаю все-таки это не самый лучший вариант, т.к. пример охватывает только маленькую и конкретную часть...
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583407
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял. Вам было лень раскидывать по табличкам и вы вставили в блобы в определённой структуре. Но раскидав по табличкам вы получили бы скорость поиска, например на какую сумму наделали Customer'ы Invoice'ов за такой-то период.

А здесь как? В любом случае придётся по этим блобам лазить и выковыривать эти данны, будь они хоть в хмл хоть в тексте разделённом таблуляцией. Будет это делать сам сервер выполняя XQuery запрос или самописная процедура.

Насколько я знаю все парсеры на пару порядков проигрывают по скорости нормальным скл-серверам. Как с производительностью? Никак? Или вам такие запросы не нужны?

Тогда зачем совать это в БД? Пусть в файловой системе лежит. И не в хмл а сразу в пдф. Открыл, распечатал без всяких преобразований
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583440
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игрался с Viper'ом. Ощущения что работает быстрее чем 8.2....
Очень шутренько работает оказался Control Center... Что в принципе не удивительно теперь его пишут в Канаде...

Удобный Range partitioning и Self tuning memory... Прикольно посмотреть на систему у которой убрал нужный индекс скорость запроса возрасла раз в 5 после 20 минут работы скорость за счет автоматического рапределения памяти понизилась раза в 2.
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583445
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
1024 - прошу вас, давайте не сваливаться в флейм.

Herr Developer - замечательно все сазали, и описали, и мне близко - я из всего бизнеса телеком только и знаю (почти).
Вы упустили маленький но важный момент.
Пользоватили попросили сделать выборку всех Invoice по определенным параметрам...
Вот огтсюда - по-побробнее. Это же основное, суть вещей.
Зачем поиск, что за поиск, по каким параметрам.
А скорострельность можно и потом обсудить - как много какого размера как часто форммируются дркументы, как часто какого рода поиск, и прочее, и оценить производительность XML решения vs реляционное решение. Будем посмотреть и на геммор сопровождения, и на производительность. По личному опыту могу сказать, что производительность доступа к Invoices "фигня, по сравнению с мировой революцией" и работой с , как они там, billing events. Я к тому, что производительность в случае доступа к Invoices может и не быть решающим фактором.
Вывод - если Herr Developer расколется по существу заданных вопросов, то я с удовольствием добавлю и случай телекома первым пунктом - мне оно роднее, и данные есть, и знания, и приложения, и так далее. Вот на основе VoIP и замутим.
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583468
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Флейма нет. С моей стороны по крайней мере.

Одно из правил нормализации - атомарность данных в каждом столбце.

Его практический смысл: при поиске по этим данным не нужно будет вычленять отдельные сегменты информации что увеличит производительность. Например ФИО - можно хранить как Иванов Иван Иванович но если нужно выбрать всех Иванов (например с именинами поздравлять работников/клиентов) то лучше хранить отдельно имя/фамилия/отчество. Но если поиска не предпологается то можно всё валить в кучу, как правило в любом документе есть поле комментариев где лежит что-то неструктурированное.

Так пусть Herr Developer объяснит - производительностью пожертвовали в угоду скорости разработки? Или просто заказами занимается другой отдел и как у них бухгалтеры будут статистику по заказам считать ему не важно?
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583527
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
кстати.
МОжет, сформировать рабочую группу по отраслям народного хозяйства, которые займутся пилотами по своим направлениям? Вооруженные Viper'ом и знаниями задач своей отрасли....
Вот gardenman - страховой бизнес, я с (пардон, не удержался :) Хером Девелопером за телеком.
Кто на банковскую сферу? Еще эксперты по перечисленным отраслям?
И стоит ли?
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583528
Herr Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 1024

1. Основная инфа (типа дата,сумма,кому-откого) присуствует в "доступном виде".
2. Ненадо было лазить по clobам и сейчас ненадо.
В случае с Viper - был бы сделан index и один XQuery запрос с xml - и все
Сейчас все делается до того, как XML данные поподут в базу
3. С производительностью все ок
4. Это документ и он должен храниться в базе. Как он может выглядить как PDF, как Excel, как CSV, как другой XML, как HTML - это уже view этого документа
Потребителями этого invoice xml может являються разные системы и люди...
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583561
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024
Одно из правил нормализации - атомарность данных в каждом столбце.


2 1024

Пусть у нас имеется таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Person(
   PersonID int ,
   Surname char( 30 ) ,
   Name char ( 30 ) ,
   Patronimic char ( 30 ),
   Birthday date
)
Задача - Имеется человек, Иванов Иван Иванович. Выбрать предыдущего ему по алфавиту человека и следующего за ним по алфавиту человека. Т.е. для организации алфавитного списка. Так вот - эта задача не решается в данной структуре, хотя 1НФ здесь очевидна.

Рассмотрим другую структуру:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Person(
   PersonID int ,
   Surname smallint , -- длина фамилии
   Name smallint ,  -- дина имени
   Patronimic smallint, -- длина отчества
   FullName char( 60 ), -- полное имя
   Birthday date
)
В этой структуре данная задача решается запросто, если создан индех по FullName. Однако ответить однозначно что эта таблица в 1НФ я не могу.

И, теперь рассмотрим последний вариант для Viper:
Person(
PersonID int ,
PersonData XML
)
[/src]Где будут созданы соответствующие индексы по элементам.
Пока что Viper у меня нет, но честно говоря как только появится, я хочу протестировать производительность.
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583601
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Осталось задачу построения алфавитного списка вписать в бизнес задачу.
Кому когда и для чего. Ну мы же "прибыль" получаем, а не диссертацию защищаем :)
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583611
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так осветите преимущества/недостатки

а.хранить в нормализованом виде
б.хранить в блобах в виде хмл определённой структуры

а то у вас получается

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 высчитывать? Пользователь когда вводит фамилию? По-моему это пример наживания себе геморроя. Вместо того чтоб просто хранить имя и фамилию вводить это в одну строку с указанием длины имени. А когда имя нужно поменять (ошибочно ввели Владлен вместо Владелен) то пересчитать длину.
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583633
Herr Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 растет, видоизменяется и т.д.

В таком духе.
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583647
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:-) Объяснить зачем это нужно? Алфавитный список?
Ответ - нафиг не нужен. А нужен доступ по алфавиту для быстрого поиска. Когда в CRM системе количество клиенто переаливает за миллион, то для реализации нечеткого поиска (нажимаешь букавки фамилии - перескакиваешь на нужную) если тащить на клиента слишком много, особенно при большом количестве соединений - ресурсы сервака тратятся слишком бездарно, впустую. А так - юзеру вытаскиваются тока те данные, которые вмещаются в экран чтобы показать. И тогда хоть в таблице десять миллионов записей - все равно все работает мгновенно. А сервер - не загружен.
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583676
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024
а кто будет это Surname smallint высчитывать? Пользователь когда вводит фамилию? По-моему это пример наживания себе геморроя. Вместо того чтоб просто хранить имя и фамилию вводить это в одну строку с указанием длины имени. А когда имя нужно поменять (ошибочно ввели Владлен вместо Владелен) то пересчитать длину.


Все оч просто. Делается View, с простыми полями и пишется триггер INSTED OF. Все считается автоматически. Юзер может даже не знать как всё устроено внутри.
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583687
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Ну как Invoice выставляются, я, как бы, в курсе :)
А вот если я не ошибаюсь, все остальное вписывается в понятие metadata.
Нет?
Честно говоря, пока с никак не вижу потребность.
Может, чуть детализировать? Для тугодумов типа меня.
Можно по почте, чтоб тут флейм не разводить
Почту могу смело дать в IRC (irc.freenode.net, #db2) или IM типа jabber (ggv@jabber.org, ggv@jabber.ru)

gardenma - еще раз, для тех, кто в бронетехнике, про нужность сортировки по алфавиту.
Давай по мылу. Туплю.
Да и 8-мартовская горячка уже наступила :)
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583706
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ggv.
Я те завтра примерчик вышлю. Сгенеришь данных 2-3 миллиона строк и поползаешь по таблице.
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583745
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
О!
Фсе бы так :)
Gardenman rules!
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583799
Herr Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 1024

Вы невнимательно читаете то что было уже написано раньше либо у Вас какие-то другие цели... :) или как-то не понятно я пишу

>> ну так осветите преимущества/недостатки
освещал смоей стороны

>> 1. Основная инфа (типа дата,сумма,кому-откого) присуствует в "доступном виде".
Имелось ввиду - в табличной форме

>> - не понял. Не руками ж лазют, я имел ввиду что непосредственно выборку
>> хмл кто-то должен делать, встроенный движок сервера или самописная
>> процедура
Сейчас никто (в плане native xml). Будет Viper ´тогда да...
Сейчас работа идет как просто с CLOB

>> 3. С производительностью все ок
>> - были тесты? Ок это в 5 раз медленнее или в 50?
Чтобы сделать тесты, нужно было реализовывать 2 системы
Проблем с производительностью нет - система работает уже как года 3...

>> - зачем? Если он не обрабатывается а просто хранится? А если он
>> обрабатывается то мож он должен храниться в виде удобном для обработки?
Удобный - в данном случае XML

>> - потребителями данных в обычных табличках так же обычно являются разные
>> системы и люди
В этом и "проблема". Я оперирую документом, вы табличками.


>>1.производительность - из моего опыта работы с хмл. Ниже чем в нормальных
>> бд примерно на два порядка.
Про это уже говорилось

>> 2.валидность - данные вставляются в блобы в виде хмл. Как проверять что
Про версионность документов уже было написано. Все работает прекрасно.
Про вставку - тот кто вставляет тот и проверяет...
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583821
Herr Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggv
А вот если я не ошибаюсь, все остальное вписывается в понятие metadata.
Нет?
Честно говоря, пока с никак не вижу потребность.
Может, чуть детализировать?

Т.е.?
Что именно?
Не совсем пойму что детализировать?


P.S.
Отключаюсь до вечера...
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33583825
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, проблемы видно. Преимуществ не видно




В этом и "проблема". Я оперирую документом, вы табличками.
-----------------------------
вобщем-то я оперирую данными в разных формах а не табличками или
документами. Можно в хмл, можно в документах, можно в табличках.


2gardenman
--
количество клиенто переаливает за миллион, то для реализации нечеткого
поиска (нажимаешь букавки фамилии - перескакиваешь на нужную) если тащить на
клиента слишком много, особенно при
--

да вроде никакое использование хмл нечёткий поиск не улучшит. Если вы об
этом


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33584093
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Herr Developer - да вот rate, присутсвие в invoice различных тарифных планов - это метаданные? Или нет?
Если да - то их можно в реляционную составляющею invoice, а сам инвойс хоть бы в чем - все равно не искать по нему.
Если нет, и есть вероятность поиска, запросами, не известными на этапе проектирования, которые появляются/исчезают (запросы), по заранее неизвестным критериям - ну смысл ясен, мне кажется.
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33584364
kmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Herr Developer, а пользователи не должны искать по инвойсам, они должны искать по данным, из которых этот инвойс был сгенерирован, только и всего.

Nikolay Kulikov: а когда будет публичная бета?
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33584414
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну данные, из которых сгенерированы invoices, имеют свойство устаревать.
Те же price-lists меняются.
Тогда надо предусматривать дополнительные телодвижения, для возможности работы по старым данным. Может статься, что это будет накладнее, чем рыться в invoices.
Хотя сам подход имеет право на жизнь, да чё там - я сам так и делал.
Вопрос ведть в чём - может, сейчас, с появлением Viper, уже лучше по invoices в XML рыться, а не по сложно составленному SQL выражению доступа к истории pricelists
Мне представляется, что случай поиска по invoices это больше исключение, чем правило.
Ну в смысле, что другая биллинговая активность происходит несоизмеримо чаще, чем поиск по invoices. И вот с этой точки зрения, может быть, действительно удобнее искать по invoices.
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33584499
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока не ясно я думаю в конце месяца.
...
Рейтинг: 0 / 0
XML and Viper - а нафига собственно????
    #33584516
kmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ggv, дык в тех биллинговых системах, с которыми мне довелось поработать и с которыми я работаю сейчас - данные обычно не обновляются на месте, а завершается существование старой версии и открывается новая. Так что не вижу проблемы.
...
Рейтинг: 0 / 0
25 сообщений из 103, страница 3 из 5
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / XML and Viper - а нафига собственно????
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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