Научная статья на тему 'Способ конвейерной обработки данных'

Способ конвейерной обработки данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
330
32
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОНВЕЙЕРНАЯ ОБРАБОТКА / ТРАНСФОРМАЦИЯ ДАННЫХ / РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ / PIPELINE PROCESSING / DATA TRANSFORMATION / REGULAR EXPRESSIONS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Борзяк Андрей Александрович, Исмаилова Лариса Юсифовна

Целью работы является автоматизация рутинных операций преобразования текстовых данных. Предложен способ конвейерной обработки для достижения указанной цели. На его основе разработана программа на языке C#. На примерах показана эффективность предложенного подхода.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Method of pipeline data processing

The goal of the work is to automate the routine operations of converting text data. A method of conveyor processing for achieving this purpose is proposed. Based on this, a program is developed in C #. Examples show the effectiveness of the proposed approach.

Текст научной работы на тему «Способ конвейерной обработки данных»

Заключение

Авторы считают, что в данной работе новыми являются следующие положения:

1) проведен реинжиниринг процесса анализа активности контрагентов туроператора,

2) разработан механизм реализации совмещенного анализа активности на базе гибридного алгоритма.

Литература

1. Особенности туроператорской и турагентской деятельности в Российской Федерации. - Режим доступа: http://lektsii.com/2-35965.html (Дата доступа 24.03.2018)

2. On Math Approach to Tourist Project Team Formation Problem Concerning Performance and Cooperative Effects / С.С. Укустов, И. Макаров, А.Г. Кравец, Е.В. Романенко // World Applied Sciences Journal (WASJ). 2013. Vol. 24. Spec. Issue 24: Information Technologies in Modern Industry, Education & Society. C. 238-242.

3. Simulation of the initial stages of software development / А. Коротков, А.Г. Кравец, Ю.Ф. Воронин, А.Д. Кравец // International Journal of Applied Engineering Research. 2014. Vol. 9, No. 22. C.16957-16964.

4. Кравец А.Г. Models and methods of professional competence level research / А.Г. Кравец, А.Г. Белов, Н.П. Садовникова // Recent Patents on Computer Science. 2016. Vol. 9. No. 2. C. 150159.

Hybrid algorithm for analyzing the counterparties' activity of the tourist operator

Al-Merry Gais M.S. PhD Student, SCFU North-Caucasian Federal University, Stavropol Alla G. Kravetsprofessor, VSTU, vstu.ru Volgograd State Technical University, Volgograd

Abstract: In this article, we consider the method of analyzing the tourist operator counterparties' activity based on modern methods of data mining. The authors conducted research and development of a new hybrid algorithm for analyzing counterparty activity. Keywords: analysis of counterparty activity, tourism industry, hybrid algorithm

УДК 004.424.8

СПОСОБ КОНВЕЙЕРНОЙ ОБРАБОТКИ ДАННЫХ

Андрей Александрович Борзяк, канд. техн. наук, вед. программист E-mail: aborziak@yahoo.com РосЕвроБанк, Москва, Россия Лариса Юсифовна Исмаилова, канд. техн. наук, внс E-mail: lyu.ismailova@gmail.com Национальный исследовательский ядерный университет ««МИФИ»

https://mephi.ru/

Целью работы является автоматизация рутинных операций преобразования текстовых данных. Предложен способ конвейерной обработки для достижения указанной цели. На его основе разработана программа на языке C#. На примерах показана эффективность предложенного подхода.

Ключевые слова: конвейерная обработка, трансформация данных, регулярные выражения

Введение

При эксплуатации сайта дистанционного обучения pvobr.ru [1] зачастую возникают разнообразные небольшие задачи, например, генерация случайных фраз, поиск в тексте,

пополнение базы данных и тому подобное. Для их решения разработано большое количество приложений с похожим кодом. Возникла идея их объединить в одно приложение с целью повышения универсальности и "мощности" трансформации данных, уменьшения сроков выполнения аналогичных задач. Идея была реализована в виде нового приложения на языке C#. Приложение напоминает службу SQL Server Integration Services, которая наряду с высокой производительностью имеет и высокую цену.

Структура управляющих данных

Приложение управляется данными. Имеется два уровня конфигурационных параметров. Верхний уровень задает последовательность команд трансформации. В нижнем уровне (ини-файл) определяются детали команд трансформации.

Задание на трансформацию (конвейер обработки) задается в виде команд через «;», например [IN1];[TRANSFORM4];[TRANSFORM5];[TRANSFORM6];[OUT1]

Каждая команда - это загрузка/выгрузка данных или трансформация (преобразование по некоторому алгоритму). Загрузка/выгрузка осуществляется источниками данных, в результате в памяти формируется массив строк для дальнейшей обработки.

Источник данных определяется параметрами: file - имя файла; enc - кодировка;

dir - in (входной файл), out (выходной файл), gen (генерация); ng - число строк генерации.

Если файл начинается как http:, то предполагается загрузка данных из интернета. Особый случай - шаблон, т.е. файл, содержащий символ * . В этом случае создается список, куда добавляются все файлы, удовлетворяющие шаблону. Ко всем файлам из этого списка будет применена цепочка команд.

Трансформация данных определяется параметрами:

sp_in - входной разделитель;

sp_out - выходной разделитель;

order - новый порядок разделяемых элементов;

all=1 - объединить все строки в одну;

regexp - регулярное выражение;

regout - формат выхода;

modifonly=1 - если нет совпадения в строке, то она становится пустой; regrep - строка для замены совпадения; connection - строка соединения с базой данных.

Ини-файл состоит из секций, каждая из которых задает команду генерации / модификации данных. Кроме команд, определенных в ини-файле, имеются встроенные. К ним относятся:

SORT - сортировать массив строк по возрастанию;

SORTDESC - сортировать массив строк по убыванию;

UNIQUE- удалить дубликаты;

EMPTY_DEL -удалить пустые строки;

END - задает конец диапазона для обработки списка;

LIST - добавляет текущие строки в список обрабатываемых файлов.

Рассмотрим несколько примеров.

Пример 1. Генерация случайных фраз.

Для генерации нужно задать секцию [TEMPLATE],

[TEMPLATE]

[NAME] [ACT] [WHAT]$ [WHERE]. [NAME] [ACT] [WHERE] [WHAT]$.

Здесь задано 2 шаблона для псевдослучайных фраз, каждый шаблон выбирается случайно.

В свою очередь шаблон использует секции [NAME] (распадается на [NAME_M] и [NAME_F]) и [ACT], [WHAT], [WHERE]., которые в примере выглядят так: [NAME_M] Филимон Харитон Эдуард Яков

[NAMEF]

Авдотья

Изабелла

Эмилия

Ярослава

[ACT]

купил(а)

достал(а)

заказал(а)

приобрел(а)

[WHAT] 100 200 300

[WHERE] на ММВБ в банке

на криптобирже

[TEMPLATE], [NAME], [NAME_M] и [NAME_F] - зарезервированные названия секций. Остальные названия произвольные. Вместо имени секции в шаблоне происходит замена на случайную строку внутри секции, получается что-то вида: Авдотья заказала 300$ на ММВБ. Эдуард достал 200$ в банке. Ярослава на криптобирже достала 200$. Изабелла приобрела 100$ на ММВБ. Харитон заказал на ММВБ 300$.

Пример 2. Удаление дубликатов в csv-файле, изменение разделителя, сортировка по 3-ей колонке. Зададим простые трансформации, которые разбивают входную строку с помощью разделителя sp_in, меняют порядок элементов (с помощью order) и формируют выходную строку, используя разделитель sp_out.

[TRANSFORM1]

order=2,0,1,3

sp_i n=,

sp_out=;

[TRANSFORM2]

order=1,2,0,3

sp_in=;

sp_out=;

[IN1]

file= c:\a1.txt dir=in [OUT1] file= c:\a2.txt dir=out

Имеем входной файл c:\a1.txt с данными

a2,b2,c2,d2

a3,b3,c3,d3

c1,b1,a1,d1

a2,b2,c2,d2

a3,b3,c3,d3

Если задать набор команд [IN1];UNIQUE;[TRANSFORM1];SORTDESC;[TRANS-FORM2];[OUT1], то в выходном файле c:\a2.txt появятся строки

c1;b1;a1;d1 a2;b2;c2;d2 a3;b3;c3;d3

Дубликаты удалены, сортировка проведена.

Пример 3. Сложная трансформация на основе регулярных выражений [2], запись результата в базу данных. [INLIST] file=C: \in10.txt enc=utf-8 dir=in

[IN2] file=* enc=utf-8 dir=in

[TR15]

regexp=.*?([a-zA-Z0-9_\.\-]+\@[a-zA-Z0-9\.\-]+ \.+[a-zA-Z0-9]{2,4}).* regout=INSERTINTO tblSubscribe (email, status) VALUES('{1}', 1); modifonly=1

[TR16]

connection=server=mysql62.1gb.ru;charset=utf8;

[OUT2] file=*

enc=utf-8 dir=out

Входной файл in10.txt содержит

http://isscctv.com/

http://lcs-sales.ru/

Если задать набор команд

[IN_LIST];LIST;[IN2];[TR15];UNIQUE;EMPTY_DEL;[TR16];[OUT2],

то произойдет загрузка страниц из интернета, генерация текста, запись в базу данных, а в выходных файлах появятся строки вида

INSERT INTO tblSubscribe (email, status) VALUES('support@isscctv.com', 1); INSERT INTO tblSubscribe (email, status) VALUES('info@isscctv.com', 1);

Пример 4. Форматирование группы файлов в папке (замена размера шрифта, удаление).

[INLIST]

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

file=C: \tests\7\page*.htm

enc=1251

dir=in

[IN1] file = * enc=1251 dir=in

[TRANSFORM8]

regexp=(10pt)

regrep=12pt

[TRANSFORM9] regexp=(à) regrep==>

[TRANSFORMS]

regexp=(10.0pt)

regrep=12pt

[TRANSFORM11]

regexp=(9.0pt)

regrep=12pt

[TRANSFORM12]

regexp=(5.0pt)

regrep=12pt

[OUT1] file = * enc=1251 dir=out

Для форматирования надо задать команды

[IN_LIST];[IN1];[TRANSFORM8];[TRANSFORM9];[TRANSFORM 10];[TRANS-FORM11];[TRANSFORM12]; OUT1]

Время выполнения составляет доли секунды.

Заключение

Рассмотренные примеры показывают, что новое приложение может решать широкий круг задач по генерации / модификации текстовых данных. Стоит отметить простоту в использовании и реализации. Продолжая мыслить в рамках трансформаций, можно изобретать новые трансформации и встроенные команды для работы с веб-сервисами, обработки мультимедия-файлов, управления последовательностью выполнения, перезагрузки ини-файла и т.д.

Авторы считают, что в данной работе новыми являются следующие положения и результаты: разработаны способ конвейерной обработки данных и программа на его основе, имеющие широкую область применения.

Литература

1. Borziak A., Gretsky Y. "E-learning system 'Carat'". In: Proc. of 11th International Workshop on Computer Science and Information Technologies), Crete, Greece, October 5-8, 2009, Volume I, pp.224-226.

2. Фридл Дж. Регулярные выражения, 3-е издание, Издательство Символ-Плюс, ISBN - 978-5-93286-121-9, 5-93286-121-5, 0-596-52812-4

Method of pipeline data processing

Andrey Borziak, PhD. techn. sciences, leading programmer Larisa Ismailova, kand. techn. of sciences, leading researcher

The goal of the work is to automate the routine operations of converting text data. A method of conveyor processing for achieving this purpose is proposed. Based on this, a program is developed in C #. Examples show the effectiveness of the proposed approach. Keywords: pipeline processing, data transformation, regular expressions

УДК 004.01

СОВЕРШЕНСТВОВАНИЕ НОРМАТИВНОЙ БАЗЫ РАЗРАБОТКИ АВТОМАТИЗИРОВАННЫХ СИСТЕМ

Юрий Сергеевич Ионенков, ст. науч. сотр. E-mail: Uionenkov@ipiran.ru Федеральный исследовательский центр «Информатика и управление» Российской академии наук (ФИЦ ИУ РАН) www.frccsc.ru

Статья посвящена вопросам совершенствования нормативной базы разработки автоматизированных систем (АС). Проведен анализ состояния нормативной базы в данной области, приведены основные стандарты. Показаны основные проблемы применения нормативной базы, предложены направления ее совершенствования.

Ключевые слова: автоматизированная система; нормативная база; стандарт; технология; протокол; профиль стандартов.

В настоящее время информационные и телекоммуникационные технологии (ИКТ) и построенные на их основе автоматизированные системы (АС) все глубже проникают в

i Надоели баннеры? Вы всегда можете отключить рекламу.