|
Подскажите быструю утилиту для XSLT
|
|||
---|---|---|---|
#18+
Подскажите, можно ли решить задачу XSL преобразования большого файла. ОС - Windows Server 2008 R2 x64 Необходимо преобразовать XML файл (нужно для упрощения импорта в MSSQL, файл сложной структуры, а нужно вытянуть не все данные, а небольшое подмножество) Сделал xsl файлик, всё прекрасно преобразовывает, получается простой результатирующий XML. Использовал для преобразования XML Task в SSIS из MS SQL Server Проверил на маленьком файлике (60 мб), работает 3 секунды. Запустил на нормальном файле (3 гб) - ждал 20 минут, результата не дождался :-( Процессор не загружен, памяти съело 3.2 гига. Попробовал утилиту MSXSL.EXE, отработала быстро, результат: Error occurred while loading document ... Code: 0x8007000e Not enough storage is available to complete this operation. Кто нибуть знает нормальную быструю утилиту, которая не пытается загрузить файл в память и распарсить, а преобразовывает потоком (если такое вообще возможно)? Зараннее спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 12:14 |
|
Подскажите быструю утилиту для XSLT
|
|||
---|---|---|---|
#18+
Запустил на нормальном файле (3 гб)Тот, кто делает такие xml, — даун, так ему и передайте. xml не предназначен для таких объемов. если такое вообще возможноСомневаюсь. Связанные между собой данные могу находиться в разных концах документа, "потоком" их не достанешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 21:02 |
|
Подскажите быструю утилиту для XSLT
|
|||
---|---|---|---|
#18+
alexeyvg, Saxon. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 22:25 |
|
Подскажите быструю утилиту для XSLT
|
|||
---|---|---|---|
#18+
AntonariyЗапустил на нормальном файле (3 гб)Тот, кто делает такие xml, — даун, так ему и передайте. xml не предназначен для таких объемов.Компания Ericsson делает, предоставляет параметры оборудования сотовой сети :-) Наворотили они там сильно... Насчёт "не предназначен" - не согласен. Нормальный формат для слабоструктурированных данных, я бы свой формат лучше, удобнее не придумал... Antonariyесли такое вообще возможноСомневаюсь. Связанные между собой данные могу находиться в разных концах документа, "потоком" их не достанешь.Ясно, спасибо :-( Читал что-то про новую версию XSLT, что то там с потоковой обработкой, но это, как я понимаю, дело будущего... MasterZivalexeyvg, Saxon.Спасибо! Да, уже встретилось это слово в одном месте (например, в http://clubs.ya.ru/xslt/replies.xml?item_no=1587 ), буду смотреть. Пока нашёл выход - сделал xsd, полностью разбираю файл и импортирую нужные данные без упрощения через XSLT, файл 3 гб парсится и импортится за 2 минуты. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 17:25 |
|
Подскажите быструю утилиту для XSLT
|
|||
---|---|---|---|
#18+
alexeyvgНасчёт "не предназначен" - не согласен. Нормальный формат для слабоструктурированных данныхНе предназначен для объемов , а не слабой структуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 18:41 |
|
Подскажите быструю утилиту для XSLT
|
|||
---|---|---|---|
#18+
AntonariyalexeyvgНасчёт "не предназначен" - не согласен. Нормальный формат для слабоструктурированных данныхНе предназначен для объемов , а не слабой структуры.Это какое-то неформальное определение :-) Никогда не слышал про такие требования, ИМХО можно использовать XML для любых объёмов, неважно, мегабайты или петабайты. С точки зрения чистой теории, разумеется. Вот классический XSLT действительно не очень подходит, так как для преобразования нужно его прочитать и построить модель в памяти. Хотя это не ограничения на размер есть просто неоправданная требовательность к ресурсом и несовершеноство конкретного кода - непонятно, с чего это MSXML не может обработать 3-х гиговый XML на 64-х разрядном процессоре и на 64 гб памяти. Но если посмотреть на новые расширения ( http://www.w3.org/TR/xslt-21/#streaming , сегодня прочитал :-) ), то там таких ограничений нет, на любом хоть микроконтроллере можно будет обработать файл любого размера. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 19:13 |
|
Подскажите быструю утилиту для XSLT
|
|||
---|---|---|---|
#18+
AntonariyalexeyvgНасчёт "не предназначен" - не согласен. Нормальный формат для слабоструктурированных данныхНе предназначен для объемов , а не слабой структуры.А, ещё забыл сказать. Независимо от "предназначения" XML по факту разные компании используют его для обмена информацией, и приходится решать задачу по получению и обработке таких файлов, так что если я даже соглашусь в Вами, то это приведёт только к тому, что эту задачу буду решать не я :-) Импорт этого файлика -это вспомогательная задача, а основной импорт (тоже из XML) - намного большего объёма, там сотни гигабайт в день, как большими, так и маленькими файлами. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 19:21 |
|
Подскажите быструю утилиту для XSLT
|
|||
---|---|---|---|
#18+
>_< ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 20:38 |
|
Подскажите быструю утилиту для XSLT
|
|||
---|---|---|---|
#18+
Решение одно - написать свой код, см. класс XmlReader. Читаем файл не весь, а только интересующие атрибуты. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2012, 14:54 |
|
Подскажите быструю утилиту для XSLT
|
|||
---|---|---|---|
#18+
МСУРешение одно - написать свой код, см. класс XmlReader. Читаем файл не весь, а только интересующие атрибуты.В принципе да, можно использовать XmlReader... Но раз уж просто читать, то я просто быстро прочитал файл, используя xsd схему, с помощью XMLBulkLoad... Так ИМХО проще, чем свой преобразователь писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2012, 19:18 |
|
|
start [/forum/topic.php?fid=14&fpage=20&tid=1332642]: |
0ms |
get settings: |
14ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
33ms |
get forum data: |
3ms |
get page messages: |
140ms |
get tp. blocked users: |
2ms |
others: | 247ms |
total: | 512ms |
0 / 0 |