! !■
4 Wschodnioeuropejskie Czasopismo Naukowe (East European Scientific Journal) #4(44), 2019 SM!
ТЕХНИЧЕСКИЕ НАУКИ
Кочетков В.С.1, Логанова Л.В.1
1 Самарский национальный исследовательский университет им. академика С.П. Королева,
Московское шоссе 34А, Самара, Россия, 443086
ИССЛЕДОВАНИЕ ЗАВИСИМОСТИ ВРЕМЕНИ ИЗВЛЕЧЕНИЯ ДАННЫХ ИЗ XML-ФАЙЛОВ ОТ ОБЪЕМА ВЫБОРКИ ФАЙЛОВ В УСЛОВИЯХ ИЗБЫТОЧНОСТИ ДАННЫХ.
Аннотация. В данной работе произведено исследование и сравнение двух различныхметодовсинтак-сического анализа информации, хранящейся в XML-файлах: DOM^ SAX. Выполнен анализ результатов тестирования методов парсинга на различных контрольных выборках документов, при разном объеме извлекаемых данных. В результате выполнения работы было сформулированы рекомендации по выбору оптимального метода парсинга данных.
1. Введение.
В наши дни обсуждение 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.
2. DOM-парсер.
- DOM (Document Object Model - объектная модель документов - платформенно-независимый программный интерфейс, позволяющий программными скриптами управлять содержимым документов HTML и XML, а также изменять их структуру и оформление. Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого содержит элемент, атрибут, текстовый, графический или любой другой объект. Узлы связаны между собой отношениями родитель-потомок.
Способ доступа через DOM удобен, когда структура документа должна (или может) быть доступна в целом и легко модифицироваться - например так, как это происходит в документе Word или при формировании страницы DHTML.
Средства парсинга, у которых каждый анализируемый веб-документ хранится в памяти в виде иерархии его элементов (узлов), при повторном обращении к различным частям документа затрачивают меньшее время на обработку веб-документа, поскольку не нужно заново загружать и строить дерево. Такие средства предоставляют наиболее удобный способ доступа к элементам веб-документа с помощью запросов (CSS и XPath) и подходят для любых задач многократной выборки информации из веб-документа. [4]
Анализ документов методом DOMпутем парсинга XML-файла предполагает создание DocumentBuilderFactory, с помощью которой создается DocumentBuilder, который, в свою очередь, выполняет разбор XML документа для создания объекта Document и последующего извлечения информации путем прохода по всем узлам(nodes)объекта для нахождения искомых атрибутов.
_ ;j
¡!МЯ Wschodnioeuropejskie Czasopismo Naukowe (East European Scientific Journal) #4(44), 2019 5
if (Node.ELEMENT_NOTE —— node .getNodeType () ) { Element element = (Element) node; try)
notification. setE'ijrchaaeWijmber (element. getElementaByTagName ("purchaseKumber") .item(O) .getTextContent() ) ; //набор условий
}catch (NullPointerException e) {
System, out.println ( "тер purnhaseKumber отпртсвует в " + listOfFiles[i].getName());
}
Рисунок 1. Условие извлечения тега в DOM
Поскольку DOM-парсер реализует объектную модель документа, его полезно использовать там, где требуется работать с документом целиком, как с деревом. Представление всего документа будет занимать в памяти значительный объем, поэтому DOM резонно считается моделью, очень требовательной к ресурсам.
3. SAX-парсер
SAX (Simple API for XML) базируется на модели последовательной одноразовой обработки и не создает внутренних деревьев. При прохождении по XML вызывает соответствующие методы у классов, реализующих интерфейсы, предоставляемые SAX-парсером.
SAX-разбор происходит асинхронно, то есть программа не должна ждать завершающего тега для отработки уже полученных. Последнее может пригодиться, например, для отображения записей SQL-запроса еще до того, как все они будут получены. Другое применение - обрыв сеанса, допустим при нахождении одной нужной записи из миллиона.
Недостаток SAX - необходимость хранения состояния в процессе разбора XML-потока, то есть в случае со сложной и/или недетерминированной структурой придется частично реконструировать узловую модель для отслеживания уровней вложения.
Средства парсинга с потоковой обработкой применимы в задачах, где повторное обращение не нужно. В таком случае происходит последовательный перебор узлов до нужного и поочередная загрузка в память только текущего узла. Данные средства могут анализировать очень большие документы и подходят для таких задач, как индексация или преобразование в другие форматы (например, замена дескрипторов XML на дескрипторы HTML). [4]
SAX-парсер реализует интерфейс De-faultHandler, который использует функции обратного вызова, для извлечение данных по набору условий вида:
SOverride
public void characters(char[] ch, int start, int length) throws SAXException { if (thisElement.equals("purchaseNumber")) {
notific.setPurchaseNumber(new String(ch, start, length))
//набор! условий }
Рисунок 2. Условие извлечения тега в SAX
В первую очередь обрабатывается событие startDocument.Когда синтаксический анализатор SAX разбирает XML и встречает запуск тега (налример,^оте!Ы^>), он запускает собы-тиеtagStarted(фактическое название события может отличаться). Аналогично, когда конец тега встречается во время разбора (</something>), он запуска-етtagEnded. Использование анализатора SAX подразумевает, что вам необходимо обрабатывать эти события и понимать данные, возвращаемые с каждым событием.Если в элементе есть содержимое, будут вызываться такие события, как characters для дополнительного текста, startElement и endElement для дочерних элементов и т.п. Заканчивается работа парсера событием endDocument.
SAX и DOM подходы иногда сочетают между собой. Так, веб-браузер отображает элементы в процессе получения методом SAX, но после получения документа строит его DOM-модель для DHTML-доступа в терминах иерархии объектов. [5]
4. Сравнение методов, экспериментальные исследования
В рамках работы проведены исследования реализации методов синтаксического анализа информации, а также влияния на время выполнения парсинга количества документов в контрольной выборке и набор извлекаемых тегов.
Для сравнения времени, затрачиваемого на извлечение и обработку информации из XMLфайловс ftp-сервераzakupki.gov.ru был выгружена и размещена на локальном компьютере контрольная выборка документов, чтобы минимизировать влияние на время обработки файлов факторов,не относящихся к теме исследования. В качестве средства реализации был выбран языкJava, на которомбыли написаныклассы, реализующие описанные ранее методы обработки слабоструктурированной информации, а также классы сущностей Notificationc различными наборами атрибутов, для параллельного исследованию времени обработки различного
6
Wschodnioeuropejskie Czasopismo Naukowe (East European Scientific Journal) #4(44), 2019
количества файлов, исследования влияния количества извлекаемых тегов на время выполнения обработки файлов.
Эксперименты проводились для контрольных выборок документов размера N = 1000, N = 5000, N = 10000. Такие размеры был выбраны для сравнения полученных результатов с целью выявления зависимости между числом обрабатываемых документов и общим временем их обработки, идальнейшего прогнозирования времени парсинга фиксированного набора документов.
Набор тегов, прописанных в условиях парсера, по которым производился поиск данных также варьировался от 4 до 16. Для обнаружения корреляции между временем выполнения парсинга файлов и количеством извлекаемой информации.
И в случае работы SAX-парсера, и в случае работы DOM-парсера, набор тегов передается конструктору объекта Notification для последующей записи объекта в репозиторий.
Полученные значения времени извлечения информации при использованииSAX-парсера отражены в таблице 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
Таблица 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
Следует отметить, что на время выполнения обработки существенное влияние оказывает набор извлекаемой информации. В случае использования метода SAX, и в случае использования метода
DOM добавление условий для извлечения дополнительных наборов тегов значительно влияет на время обработки файлов. На рисунке 3 представлены диаграммы времени обработки контрольных наборов файлов методами DOM и SAX .
г».." Wschodnioeuropejskie Czasopismo Naukowe (East European Scientific Journal) #4(44), 2019 1
= .1 n il ll ll J ll [I I
Рисунок 3. Диаграмма времени обработки контрольных выборок документов методом DOM и SAX
при различном наборе извлекаемых тегов (на вертикальной оси показано время в миллисекундах, на горизонтальной три группы столбцов для выборок размером N=1000, 5000, 10000 соответственно)
Использование метода SAX позволяет в среднем до 1,5 раз уменьшить время, затрачиваемое на обработку XML-файлов с целью извлечения данных по сравнению с аналогичными операциями, производимыми над тем же набором файлов, но при использовании метода DOM.
В случае SAX-парсера увеличение количества тегов в 4 раза дало прирост времени обработки файлов в 1,33 раза.
4. Заключение
В результате данной работы было выявлено, что для целей извлечения данных из XML-документов рационально использовать метод SAX, поскольку в общем случае время, затрачиваемое на обработку файла методом DOM может превышать в 1,5 раза время обработки файла методом SAXдля получения содержимого аналогичного набора тегов.
Стоит учитывать, что метод SAX подходит только для извлечения информации, и в случае необходимости модификации данных неприменим, в отличии от DOM. Однако в случае решения задачи получения данных, этой особенностью можно пренебречь.
На основании полученных данных с ftp возможно проводить дальнейшие исследования, позволяющие формировать рекомендации для поставщиков и заказчиков. Например, выявление оптимального расположения оптовых баз, или оптимальной начальной цены контракта для обеспечения конкуренции.
Литература
[1] Бретт Маклахлин. Java и XML, 2-е издание, Символ-Плюс, 2016. - 544 страницы.
[2] Интеграция XML данных — другой путь // [habrahabr.ru] -2017 - URL: https://habr.com/ru/post/325186/
[3] Выгрузка условий конкурсов с zakupki.gov.ru // [habrahabr.ru] -2015 - URL: https://habr.com/post/253201/
[4] Чеботарев,А. XML: свобода, ограниченная только фантазией// Компьютеры+Программы. -2003. - № 5. - С. 52-55
[5] Лыгина,Н.И., Пудич,А.С.. Исследование правильности и эффективности средств парсинга информации на веб-ресурсах// Инновационная наука, №. 3-1, 2017, С. 59-67.
Mammadova F.M., Huseynova M.A.
Azerbaijan State Oil and Industry University
USE OF OIL CHEMISTRY PRODUCTION WASTES BY TREATMENT OF WATER AND SOIL
FROM OIL PRODUCTS
For determination of the efficiency of the oil biosorbent, recived on base of carbonizate - waste of pyrolysis of excess sludge of oil chemical enterprice and also on base of hydrocarbon-oxidizing microorganisms, separated from oil - contaminated soil, the experimental researchs were carried out.
It have been determined that by comparison with carbonizate, use of biosorbent didn't allow to increase efficiency of water treatment. The experimental research by bioremediation of the oil-contaminated soil shown that efficiency of soil treatment by help of the received biosorbent in 1,6 times higher by comparison with use of carbonizate and in 1,7 times higher by comparison with traditioval method treatment.
Key words: biosorbent, biological treatment of waste water, bioremediation of the oil-contaminated soil.
During the extraction, transportation and pro- first of all, the hydro- and lithosphere are polluted. An-cessing of oil there are emergencies and technological nual losses from produced oil range from 2 to 5% [1]. losses arise, as a result of which the environment and