Исследование зависимости времени извлечения данных из XML-файлов от объема выборки файлов в условиях избыточности данных
Исследование и сравнительный анализ различных методов синтаксического анализа информации, хранящейся в XML-файлах. Анализ результатов тестирования методов парсинга на различных контрольных выборках документов, при разном объеме извлекаемых данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 17.02.2021 |
Размер файла | 219,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Самарский национальный исследовательский университет им. академика С.П. Королева
ИССЛЕДОВАНИЕ ЗАВИСИМОСТИ ВРЕМЕНИ ИЗВЛЕЧЕНИЯ ДАННЫХ ИЗ XML-ФАЙЛОВ ОТ ОБЪЕМА ВЫБОРКИ ФАЙЛОВ В УСЛОВИЯХ ИЗБЫТОЧНОСТИ ДАННЫХ
Кочетков В.С., Логанова Л.В.
Самара
Аннотация
синтаксический информация файл парсинг
В данной работе произведено исследование и сравнение двух различных методов синтаксического анализа информации, хранящейся в XML-файлах: DOMm SAX. Выполнен анализ результатов тестирования методов парсинга на различных контрольных выборках документов, при разном объеме извлекаемых данных. В результате выполнения работы было сформулированы рекомендации по выбору оптимального метода парсинга данных.
Введение
В наши дни обсуждение XML зачастую проходит в контексте Web-сервисов, преобразований Java объектов в XML и обратно, и даже использования баз данных XML вместо реляционных или объектно-ориентированных.[1] Формат очень широко используется в информационных технология, рекомендован Консорциумом Всемирной паутины ^3С).Примером применения технологии XML могут служить открытые данные информационной системы zakupki.gov.ru, доступные на соответствующем ftp: объём ежедневных обновлений - десятки и сотни тысяч XML файлов объемом в гигабайты или десятки гигабайт, в среднем раз в несколько недель выходит новая версия схемы данных.
При необходимости обработки больших массивов файлов, когда количество файлов исчисляется тысячами, даже незначительная экономия времени на обработке одного файла, дает ощутимую экономию времени, потраченного на обработку всех файлов. Все это обуславливает актуальность исследования методов анализа XML-файлов.
В случае с ftp-сервером государственных закупок структура данных следует за требованиями законодательства. В связи с этим информация об извещениях о проведении государственных закупок представлена более чем десятком типов документов fcsNotification* в зависимости от типа закупки (электронный аукцион fcsNotificationEF, запрос котировок fcsNotificationZK, закупка у единственного поставщика fcsNotificationEP и т. п.). Все эти документы основаны на одном базовом типе извещения, но отличаются в деталях, и это требуется учитывать при импорте и анализе данных. [2]
На сайте существует ограничение в количестве результатов. Поиск выдает не более, чем 500 строк, и скачивание данных о конкурсах (в виде таблицы.csv формата) средствами сайта невозможно. При этом потребность иметь регулярно обновляемые сведения о проходящих конкурсах, попадающих под определенные критерии, возникает у каждой организации, участвующей в государственных закупках.[3]
В условиях постоянного изменения структуры данных, и их избыточности, получение данных подразумевает парсинг XML-файлов. При этом, поскольку каждый XML файл содержит всю информацию о закупке, которая зачастую является излишней при решении прикладной задачи, в рамках статьи проведено исследование времени получения атрибутовограниченного набора тегов документа путем обработки файлов с помощью основных методов синтаксического анализа XML: DOM и SAX.
DOM-парсер.
DOM (Document Object Model - объектная модель документов - платформенно-независимый программный интерфейс, позволяющий программными скриптами управлять содержимым документов HTML и XML, а также изменять их структуру и оформление. Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого содержит элемент, атрибут, текстовый, графический или любой другой объект. Узлы связаны между собой отношениями родитель-потомок.
Способ доступа через DOM удобен, когда структура документа должна (или может) быть доступна в целом и легко модифицироваться - например так, как это происходит в документе Word или при формировании страницы DHTML.
Средства парсинга, у которых каждый анализируемый веб-документ хранится в памяти в виде иерархии его элементов (узлов), при повторном обращении к различным частям документа затрачивают меньшее время на обработку веб-документа, поскольку не нужно заново загружать и строить дерево. Такие средства предоставляют наиболее удобный способ доступа к элементам веб-документа с помощью запросов (CSS и XPath) и подходят для любых задач многократной выборки информации из веб-документа. [4]
Анализ документов методом DOMпутем парсинга XML-файла предполагает создание DocumentBuilderFactory, с помощью которой создается DocumentBuilder, который, в свою очередь, выполняет разбор XML документа для создания объекта Document и последующего извлечения информации путем прохода по всем узлам(nodes)объекта для нахождения искомых атрибутов.
Рисунок 1 Условие извлечения тега в DOM
Поскольку DOM-парсер реализует объектную модель документа, его полезно использовать там, где требуется работать с документом целиком, как с деревом. Представление всего документа будет занимать в памяти значительный объем, поэтому DOM резонно считается моделью, очень требовательной к ресурсам.
SAX-парсер
SAX (Simple API for XML) базируется на модели последовательной одноразовой обработки и не создает внутренних деревьев. При прохождении по XML вызывает соответствующие методы у классов, реализующих интерфейсы, предоставляемые SAX-парсером.
SAX-разбор происходит асинхронно, то есть программа не должна ждать завершающего тега для отработки уже полученных. Последнее может пригодиться, например, для отображения записей SQLзапроса еще до того, как все они будут получены. Другое применение - обрыв сеанса, допустим при нахождении одной нужной записи из миллиона.
Недостаток SAX - необходимость хранения состояния в процессе разбора XML-потока, то есть в случае со сложной и/или недетерминированной структурой придется частично реконструировать узловую модель для отслеживания уровней вложения.
Средства парсинга с потоковой обработкой применимы в задачах, где повторное обращение не нужно. В таком случае происходит последовательный перебор узлов до нужного и поочередная загрузка в память только текущего узла. Данные средства могут анализировать очень большие документы и подходят для таких задач, как индексация или преобразование в другие форматы (например, замена дескрипторов XML на дескрипторы HTML). [4]
SAX-парсер реализует интерфейс DefaultHandler, который использует функции обратного вызова, для извлечение данных по набору условий вида:
Рисунок 2 Условие извлечения тега в SAX
В первую очередь обрабатывается событие startDocumentKo^a синтаксический анализатор SAX разбирает XML и встречает запуск тега (например, <something>), он запускает событие tagStarted (фaктическoе название события может отличаться). Аналогично, когда конец тега встречается во время разбора (<something>), он запускаетtagEnded. Использование анализатора SAX подразумевает, что вам необходимо обрабатывать эти события и понимать данные, возвращаемые с каждым событием. Если в элементе есть содержимое, будут вызываться такие события, как characters для дополнительного текста, startElement и endElement для дочерних элементов и т.п. Заканчивается работа парсера событием endDocument.
Сравнение методов, экспериментальные исследования
В рамках работы проведены исследования реализации методов синтаксического анализа информации, а также влияния на время выполнения парсинга количества документов в контрольной выборке и набор извлекаемых тегов.
Для сравнения времени, затрачиваемого на извлечение и обработку информации из ХМL файлов с ftp-сервера zakupki.gov.ru был выгружена и размещена на локальном компьютере контрольная выборка документов, чтобы минимизировать влияние на время обработки файлов факторов, не относящихся к теме исследования. В качестве средства реализации был выбран язык Тауа, на котором были написаны классы, реализующие описанные ранее методы обработки слабоструктурированной информации, а также классы сущностей (Simple API for XML) различными наборами атрибутов, для параллельного исследованию времени обработки различного количества файлов, исследования влияния количества извлекаемых тегов на время выполнения обработки файлов.
Эксперименты проводились для контрольных выборок документов размера N = 1000, N = 5000, N = 10000. Такие размеры был выбраны для сравнения полученных результатов с целью выявления зависимости между числом обрабатываемых документов и общим временем их обработки, и дальнейшего прогнозирования времени парсинга фиксированного набора документов.
Набор тегов, прописанных в условиях парсера, по которым производился поиск данных также варьировался от 4 до 16. Для обнаружения корреляции между временем выполнения парсинга файлов и количеством извлекаемой информации.
И в случае работы SAX-парсера, и в случае работы DOM-парсера, набор тегов передается конструктору объекта Notification для последующей записи объекта в репозиторий.
Полученные значения времени извлечения информации при использовании8АХ-парсера отражены в таблице 1, при использовании DOM - в таблице 2.
Таблица 1
Зависимость времени выполнения парсинга XMLфайлов методом SAX от количества файлов в выборке и набора извлекаемых тегов
Количество файлов |
Число извлекаемых тегов |
Время выполнения преобразования, мс |
||||||
1 |
2 |
3 |
4 |
5 |
среднее |
|||
1000 |
4 |
4083 |
3615 |
3933 |
4083 |
4480 |
4038,8 |
|
1000 |
8 |
4924 |
4606 |
5055 |
4232 |
4925 |
4748,4 |
|
1000 |
16 |
4020 |
5144 |
5117 |
4624 |
5445 |
4870 |
|
5000 |
4 |
8214 |
9298 |
9268 |
9296 |
8417 |
8898,6 |
|
5000 |
8 |
9266 |
9658 |
9528 |
9733 |
9775 |
9592 |
|
5000 |
16 |
13822 |
14204 |
14122 |
14574 |
14301 |
14204,6 |
|
10000 |
4 |
12887 |
12983 |
13428 |
12826 |
13021 |
13029 |
|
10000 |
8 |
14140 |
18152 |
13285 |
14274 |
13492 |
14668,6 |
|
10000 |
16 |
14699 |
15397 |
19319 |
16685 |
14688 |
16157,6 |
Следует отметить, что на время выполнения обработки существенное влияние оказывает набор извлекаемой информации. В случае использования метода SAX, и в случае использования метода DOM добавление условий для извлечения дополнительных наборов тегов значительно влияет на время обработки файлов. На рисунке 3 представлены диаграммы времени обработки контрольных наборов файлов методами DOM и SAX
Рисунок 3 Диаграмма времени обработки контрольных выборок документов методом DOM и SAX при различном наборе извлекаемых тегов (на вертикальной оси показано время в миллисекундах, на горизонтальной три группы столбцов для выборок размером N=1000, 5000, 10000 соответственно)
Использование метода SAX позволяет в среднем до 1,5 раз уменьшить время, затрачиваемое на обработку XML-файлов с целью извлечения данных по сравнению с аналогичными операциями, производимыми над тем же набором файлов, но при использовании метода DOM.
В случае SAX-парсера увеличение количества тегов в 4 раза дало прирост времени обработки файлов в 1,33 раза.
SAX и DOM подходы иногда сочетают между собой. Так, веб-браузер отображает элементы в процессе получения методом SAX, но после получения документа строит его DOM-модель для DHTML-доступа в терминах иерархии объектов. [5]
Сравнение методов, экспериментальные исследования
В рамках работы проведены исследования реализации методов синтаксического анализа информации, а также влияния на время выполнения парсинга количества документов в контрольной выборке и набор извлекаемых тегов.
Для сравнения времени, затрачиваемого на извлечение и обработку информации из ХМL-файловс ftp-сервераzakupki.gov.ru был выгружена и размещена на локальном компьютере контрольная выборка документов, чтобы минимизировать влияние на время обработки файлов факторов,не относящихся к теме исследования. В качестве средства реализации был выбран языкТауа, на которомбыли написаныклассы, реализующие описанные ранее методы обработки слабоструктурированной информации, а также классы сущностей ИоШюайопс различными наборами атрибутов, для параллельного исследованию времени обработки различногоколичества файлов, исследования влияния количества извлекаемых тегов на время выполнения обработки файлов.
Эксперименты проводились для контрольных выборок документов размера N = 1000, N = 5000, N = 10000. Такие размеры был выбраны для сравнения полученных результатов с целью выявления зависимости между числом обрабатываемых документов и общим временем их обработки, идальнейшего прогнозирования времени парсинга фиксированного набора документов.
Набор тегов, прописанных в условиях парсера, по которым производился поиск данных также варьировался от 4 до 16. Для обнаружения корреляции между временем выполнения парсинга файлов и количеством извлекаемой информации.
И в случае работы SAX-парсера, и в случае работы DOM-парсера, набор тегов передается конструктору объекта Notification для последующей записи объекта в репозиторий.
Полученные значения времени извлечения информации при использовании8АХ-парсера отражены в таблице 1, при использовании DOM - в таблице 2.
Таблица 2
Зависимость времени выполнения парсинга XMLфайлов методом DOM от количества файлов в выборке и набора извлекаемых тегов
Количество файлов |
Число извлекаемых тегов |
Время выполнения преобразования, мс |
||||||
1 |
2 |
3 |
4 |
5 |
среднее |
|||
1000 |
4 |
5416 |
4995 |
6167 |
5996 |
4764 |
5467,6 |
|
1000 |
8 |
6177 |
5419 |
5931 |
5829 |
6295 |
5930,2 |
|
1000 |
16 |
6653 |
5075 |
7175 |
6176 |
6195 |
6254,8 |
|
5000 |
4 |
12468 |
12816 |
13952 |
13684 |
12746 |
13133,2 |
|
5000 |
8 |
14678 |
13574 |
15488 |
15584 |
15406 |
14946 |
|
5000 |
16 |
20476 |
20862 |
20429 |
21064 |
20274 |
20621 |
|
100000 |
4 |
18294 |
20536 |
17833 |
17962 |
18015 |
18528 |
|
100000 |
8 |
20402 |
20107 |
20259 |
21359 |
19793 |
20384 |
|
100000 |
16 |
25478 |
27485 |
22263 |
22557 |
21995 |
23955,6 |
Заключение
В результате данной работы было выявлено, что для целей извлечения данных из XMLдокументов рационально использовать метод SAX, поскольку в общем случае время, затрачиваемое на обработку файла методом DOM может превышать в 1,5 раза время обработки файла методом SAX для получения содержимого аналогичного набора тегов.
Стоит учитывать, что метод SAX подходит только для извлечения информации, и в случае необходимости модификации данных неприменим, в отличие от DOM. Однако в случае решения задачи получения данных, этой особенностью можно пренебречь.
На основании полученных данных с ftp возможно проводить дальнейшие исследования, позволяющие формировать рекомендации для поставщиков и заказчиков. Например, выявление оптимального расположения оптовых баз, или оптимальной начальной цены контракта для обеспечения конкуренции.
Литература
1. Бретт Маклахлин. Java и XML, 2-е издание, Символ-Плюс, 2016. 544 страницы.
2. Интеграция XML данных -- другой путь
3. Выгрузка условий конкурсов с zakupki.gov.ru // [habrahabr.ru]. 2015.
4. Чеботарев, А. XML: свобода, ограниченная только фантазией// Компьютеры Программы. 2003. №5. С. 52-55.
5. Лыгина, Н.И., Пудич, А.С.. Исследование правильности и эффективности средств парсинга информации на веб-ресурсах// Инновационная наука, №. 3-1, 2017, С. 59-67.
Размещено на Allbest.ru
...Подобные документы
Перспективные направления анализа данных: анализ текстовой информации, интеллектуальный анализ данных. Анализ структурированной информации, хранящейся в базах данных. Процесс анализа текстовых документов. Особенности предварительной обработки данных.
реферат [443,2 K], добавлен 13.02.2014Понятие информационных систем и принципы их проектирования. Изучение различных методов извлечения знаний, построение оптимальной информационной системы Data Mining, позволяющей разбивать набор данных, представленных реляционными базами данных на кластеры.
аттестационная работа [4,7 M], добавлен 14.06.2010Изучение существующих методов и программного обеспечения для извлечения числовых данных из графической информации. Программное обеспечение "graphtrace", его структура и методы обработки данных. Использование этой системы для данных различного типа.
дипломная работа [3,9 M], добавлен 06.03.2013Проектирование структуры и архитектуры программного продукта. Реализация программы конвертера файлов баз данных. Описание пользовательского интерфейса. Выбор порядка конвертации dbf файлов. Создание и исполнение шаблонов. Расчет себестоимости продукта.
дипломная работа [2,2 M], добавлен 21.06.2013Реализация алгоритма верификации данных; разработка программы обнаружения аномальных данных в одномерных выборках. Характеристика методов D-статистики, Титьена-Мура, диаграммы "Ящик с усами"; обеспечение эффективности оценок статистических данных.
курсовая работа [2,5 M], добавлен 27.05.2013Анализ предметной области, потребности различных категорий пользователей разрабатываемой базы данных. Описание концептуальной схемы и преобразование ее в реляционную БД. Создание ER-модели в среде ER-Win. Генерация файлов, разработка запросов в SQL.
курсовая работа [786,4 K], добавлен 15.12.2013Процедура ввода исходных данных в программу, вывод результатов работы программы на экран. Принцип организации хранения логически связанных наборов информации в виде файлов. Параметры характеристики файла, способы обращения к нему, соглашения по типу.
реферат [14,5 K], добавлен 06.12.2011Концепции хранилищ данных для анализа и их составляющие: интеграции и согласования данных из различных источников, разделения наборов данных для систем обработки транзакций и поддержки принятия решений. Архитектура баз для хранилищ и витрины данных.
реферат [1,3 M], добавлен 25.03.2013Приобретение практических навыков по определению объема памяти, отводимого на внешнем запоминающем устройстве под файл данных. Расчет производительности поиска информации, хранящейся в файле на ВЗУ. Вычисление использованных кластеров и байт памяти.
лабораторная работа [31,2 K], добавлен 26.11.2011Описание мониторинга выбросов случайных процессов контролируемых параметров. Основные принципы обработки статистических данных в базисе аддитивной аппроксимации стандартными распределениями. Разработка методов аппроксимирующих вкладов значений выборки.
контрольная работа [308,2 K], добавлен 19.08.2015Термины "логический" и "физический" как отражение различия аспектов представления данных. Методы доступа к записям в файлах. Структура систем управления базами данных. Отличительные особенности обработки данных, характерные для файловых систем и СУБД.
лекция [169,7 K], добавлен 19.08.2013Системы автоматизированной обработки информации. Хранение большого объема информации. Понятие базы данных (БД). Обеспечение секретности данных. Уровни представления данных в БД. Логическая структура данных. Ограничения, накладываемые на данные.
реферат [65,2 K], добавлен 26.11.2011Разработка удаленной базы данных и приложения-клиента для доступа к электронным источникам литературы, содержащихся на жестком диске сервера предприятия в виде упакованных архивов файлов и пакетов файлов. Реляционное исчисление доменов. Средства Delphi.
дипломная работа [2,7 M], добавлен 24.03.2011Технология деятельности техника-программиста на предприятии. Анализ предметной области. Обоснование выбора среды разработки. Сравнительный анализ методов сортировки данных. Проектирование базы данных. Методы, алгоритм и средства обработки данных.
отчет по практике [498,2 K], добавлен 03.05.2015Характеристика работы архиватора - компьютерной программы, которая осуществляет сжатие данных в один файл архива для более легкой передачи, компактного их хранения. Особенности процесса архивирования - записи файлов и разархивирования - открытия файлов.
реферат [216,5 K], добавлен 26.03.2010Архивация данных как сжатие одного или более файлов с целью экономии памяти. Степень сжатия разных файлов. Названия программ-архиваторов и их возможности. Формирование таблицы "Ведомость расчета заработной платы" в Microsoft Excel. Фильтрация записей.
контрольная работа [1,7 M], добавлен 12.02.2013Создание и проверка модели оптимального размещения файлов в вычислительной сети со звездообразной, кольцевой и произвольной топологией. Объем данных, необходимый для пересылки файлов. Оптимальное распределение файлов по узлам вычислительной сети.
контрольная работа [56,7 K], добавлен 20.05.2011Основные действия при работе с архивами. Архиваторы как программы, осуществляющие сжатие (упаковку файлов). Понятие избыточности информации. Архивация с помощью оболочки WinRAR. Кодирование информации наиболее естественным, но не экономичным способом.
презентация [416,5 K], добавлен 14.03.2015Понятие базы данных, их цели и задачи, требования к БД; система управления базами данных. Файловые системы: именование и структуры файлов, программное обеспечение. Уровни абстракции в СУБД, функции абстрактных данных. Экспертные системы и базы знаний.
презентация [301,6 K], добавлен 17.04.2013Программы для создания архивов. Эффективность сжатия данных как важнейшая характеристика архиваторов. Основные методы сжатия данных. Характеристика программы для упаковки текстов и программ WinRar. Распаковка файлов, упаковка файлов и папок в общий архив.
реферат [21,0 K], добавлен 05.04.2010