|
|
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Знаю, что тема поднималась, но всё ж спрошу. Есть адресный классификатор ФИАС в xml-формате. Файл с информацией о домах весит 20 гигов. Писец. Чем его реально парсить с приемлемой скоростью? Попробовал NativeXML. Всё грустно. Или уже не париться и взять dbf-версию ФИАС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 08:17:44 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
ExterisЗнаю, что тема поднималась, но всё ж спрошу. Есть адресный классификатор ФИАС в xml-формате. Файл с информацией о домах весит 20 гигов. Писец. Чем его реально парсить с приемлемой скоростью? Попробовал NativeXML. Всё грустно. Или уже не париться и взять dbf-версию ФИАС? Любым SAX-парсером, по идее, DOM не годится для таких объёмов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 08:45:14 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
+1. Он же очень регулярный. Тут проще всего TStreamReader использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 09:01:32 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
В ветке mssql есть целая ветка посвященная этой теме, я как раз ФИАС в mssql грузил через xmlbulkload. За пару часов фиас полностью обновляется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 09:20:48 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
есть стандартный SAX парсер XmlLite, во всех Windows А еще лучше взять dbf версию, в ней хоть ошибок меньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 09:22:15 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
СюзаннаА еще лучше взять dbf версию, в ней хоть ошибок меньше ЕМНИП, на офсайте налоговой заявлено, что в скором времени от дбф должны отойти. Так что, это отсрочка решения проблемы. А вот SAX for Pascal кто-нибудь юзал? Увы, его прекратили развивать в 2003г, последняя заявленная поддержка для Д7. Зато внутри архива демки и дока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 09:27:58 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Exteris, DBF распарсится быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 09:36:01 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Прикладываю счемы для импорта, адаптируете под себя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 09:36:35 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Код: sql 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. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 09:37:08 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Сразу предупреждаю что никаких заливок сразу в рабочие таблицы, сначала в промежуточные, а уже из них переносишь в рабочие. меня минут 20 переносилось кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 09:38:56 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
А, да, в этом году мы отказались от использования своего ФИАС, используем сервис https://dadata.ru/ Работает хорошо, и больше никакой головной боли об адресах и обновлении фиас у себя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 09:53:24 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUExteris, DBF распарсится быстрее Я вот тоже так думаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 10:03:06 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
СюзаннаА еще лучше взять dbf версию, в ней хоть ошибок меньше Они разве не идентичны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 10:11:07 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Сюзаннаесть стандартный SAX парсер XmlLite, во всех Windows XmlLite - не SAX-парсер, а pull-парсер. Он тоже "лёгкий", но у него совсем противоположная логика работы. SAX-парсер входит в состав MSXML6, наряду с DOM-парсером Оба MSXML6 и XMLLite появились то ль в XP SP3 то ли даже в XP SP2 Есть так же сторонняя реализация XMlLite под Линукс, но насколько быстрая и надежная - хз, в глаза ее не видел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 13:21:30 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
ДокЕМНИП, на офсайте налоговой заявлено, что в скором времени от дбф должны отойти. Так что, это отсрочка решения проблемы. А где вы такое прочитали?, я что то не нашел. Отказ от KLADR v4 - да, а что ФИАСа не будет в DBF? не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 14:03:27 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
В относительно новой библиотеке от гуру xml -- oxml -- есть куча различных парсеров/интерфейсов к ним, в т.ч. и поточные (SAX). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 17:45:52 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Распарсивал как-то xml от ФИАС, там были иногда неверные длины полей, плюнул, скачал dbf версию И быстрее и проще извлекать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 20:21:19 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
А какой профит от пул-парсеров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2017, 21:00:27 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
BaliОтказ от KLADR v4 - да, а что ФИАСа не будет в DBF? не нашел сорьки, это я что-то недопонял, когда бегло читал. Действительно, ДБФки останутся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 01:40:50 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
А теперь расскажите сколько у Вас эти dbf-ки в БД заливаются, особенно если не через bc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 12:44:40 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Внезапно dbf это БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 13:46:47 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
eeeу, Так они всёравно не индексированные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 14:41:54 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, а xml индексирован, угу. Файл 20 гигов, а dbf для 1 области примерно 0,2 гига, т.е. в 100 раз меньше и что проще индексировать? xml не для хранения информации предназначен, по любому нужно распарсивать и хранить в БД. а dbf уже в формате БД, не нравится формат легко конвертируется в другой. И сравните размеры файлов xml и dbf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 16:49:01 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
эндиА теперь расскажите сколько у Вас эти dbf-ки в БД заливаются, особенно если не через bc А зачем их целиком закачивать? Там по каждому объекту вся история изменений, с момента попадания объекта в ФИАС, а реально нужны только актуальные данные. Да и в структуре записи полно ненужной информации одних GUIDов 5 штук. В MSSql Express ее и не запихнешь. Закачивают кому что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 17:01:37 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Вот на моменте легко конвертируется, остановимся поподробнее. Представим себе абстрактного программера которому надо написать конвертилку в MSSQL. Он садится и пишет построчное копирование через insert в таблицы sql сервера. Сколько часов у него будет происходить это порно? Сам dbf для хранения тоже не ахти как удобен, хранимку не написать, план запроса с оптимизацией не посмотреть и только на секундочку представим что ФИАС посути древовидная бд. И то что я сделаю обычным запросом в любом адекватном sql сервере, на базе dbf превратится в банальное извращение. imho что фиас в dbf, что в xml сделан исключительно для трансфера информации и никак не для использования именно в этих форматах. Да и какой больной человек будет таскать с собой для локальной аппликухи базу весом в несколько сотен мегабайт для решения задачи хранения адреса? Если у вас локальное приложение дергайте веб-сервис, хотите свой, хотите чужой, не суть. Суть в том что за этим вебсервисом будет не dbf, а нормальный sql сервер. А если у вас клиент/сервер то тем более весь этот фиас будет в нем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 17:09:31 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
энди, Мне база ФИАС нужна была один раз для заполнения своих таблиц для ГИС ЖКХ И в формате dbf, где для каждой области - своя dbf подошла лучше, оттуда легче было извлечь, чем из общего 20 ГБ xml на всю Россию Из dbf в MSSQL есть штатное средство, никаких конвертилок не надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2017, 19:01:39 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Однократное конвертирование не имеет смысла, мы конвертнули один раз, а через год многие люди из новостроек уже не могли найти своего адреса. Так что однократный конверт это утопия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2017, 10:10:47 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
и в этот момент мы возвращаемся к исходной цели - dadata.ru ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2017, 09:42:55 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Exteris, Вроде бы DiXML https://www.yunqa.de/delphi/products/xml/index умеет работать с огромными файлами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2017, 10:17:03 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
https://www.yunqa.de/delphi/wiki/xml/index Q: Can DIXml read in very large XML files? I have files that are over 900+ MB - that other components cannot parse due to their size. They give Out of Memory errors. A: Yes, DIXml can parse XML files of virtually any size with no memory constraints. This is true of the SAX, SAX2, and XmlReader interfaces. The XmlReader interface is recommended because it is more flexible and user friendly. Be careful, however, if you build a DOM tree: This will cause DIXml to load the entire document into memory and may result in memory errors if it exceeds the available RAM. On the other hand, DOM is only needed for XML tree manipulation. For just parsing and extracting data, the XmlReader is much faster and uses a minimum of resources only, including memory. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2017, 10:18:26 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
X11Exteris, Вроде бы DiXML https://www.yunqa.de/delphi/products/xml/index умеет работать с огромными файлами Спасибо, учту на будущее. Пока решил, что буду работать с dbf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 07:47:14 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
тогда уж лучше с Firebird ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 12:45:56 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
X11тогда уж лучше с Firebird тему не читал? :) Увы, налоговая не знает про птицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 13:17:55 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Кстати, на хабре на днях интересная статья вышла про ФИАС, КЛАДР и их наследники: ФИАС умер, да здравствует… да здравствует… да не понятно что пока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2017, 13:22:36 |
|
||
|
Парсер больших xml-файлов
|
|||
|---|---|---|---|
|
#18+
Использовать XML там, где структура данных постоянна, - глупость! К примеру, банк-клиенты работают много лет с текстовыми файлами и не парятся понапрасну. PS XML в системе адресов - неуместен и говорит о компетентности соответствующих структур. имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2017, 08:51:07 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041989]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 484ms |

| 0 / 0 |
