Автоматизация загрузки больших массивов данных предметной области в промышленную бд
Скачать 0.74 Mb.
|
Рисунок 7. Основные варианты использования редактора. Отдельные поля для ввода позволяют снизить зависимость от заданного формата файла и облегчить ввод и редактирование системной информации. Таким образом, при наполнении файла с использованием редактора нет необходимости знать спецификацию формата файлов, что облегчает освоение данного метода загрузки. Все изменения учитываются в журнале. 42 Рисунок 8. Загрузка данных с использованием редактора 8.2 Спецификация файлов Для возможности проверки значений между файлами необходимо, чтобы проверяемые файлы имели некоторую дополнительную информацию о расположении на жёстком диске других файлов, в которых находятся допустимые значения. Для этого необходимо каждому файлу сопоставить название, которое бы указывалось в ссылке и однозначно определяло этот файл Учитывая требования, на первом листе расположена кнопка для запуска макроса генерации и имя книги. Также если внутри файла есть ссылки на другие файлы, то должен существовать лист с названием «References», на котором указан список пар: название книги, путь до файла. Остальные листы содержат данные и системную информацию для генерации вызовов процедур и проверки целостности: название процедуры, признак включения в генерацию, название листа, имя генерируемого файла, имена столбцов, названия параметров в процедуре, комментарии, ссылки на столбцы с допустимыми значениями. Один столбец может ссылаться на несколько других, поэтому в ячейке могут указываться несколько ссылок разделённых символом “точка с запятой”. Ссылки на столбцы имеют особый формат: <название_книги>::<название_файла>(<название_параметра>) – где <название_книги> и <название_параметра> опциональны и, по умолчанию, имеют значения текущей книги и первого параметра в файле соответственно. Для того чтобы CSV файлы объединялись в книги, используется дополнительный CSV файл, который указывает, сколько листов содержит данная книга, их название и путь до них. Также в нем указывается количество и путь до книг, на которые ссылаются значения из текущей книги. По аналогии с обычной Excel книгой хранится название книги. Формат ссылок используется в Excel и CSV книгах одинаковый, что позволяет иметь зависимые значения в книгах другого формата. 43 8.3 Пример применения редактора для загрузки данных Пусть, например, необходимо загрузить в базу данных типы счётчиков, которые используются на объектах. Оператор или иной человек, ответственный за наполнение БД, вводит информацию в редактор. Если файл с наполнением уже существует и необходимо лишь добавить записи, то вводить метаданные заново не нужно, остается ввести значения. Однако если требуется создать новый файл, то можно как создать его в редакторе, так и создать файл в Excel и затем открыть его в редакторе. При открытии файла, если на столбцы были заданы ссылочные ограничения и если они нарушаются, то появляется окно с ошибками. Кликнув дважды по ошибке можно перейти к её месту и исправить. Кроме этого существует механизм устранения ссылочных ошибок, который применяется, когда ссылка задана, но она либо не указывает на нужные значения, либо имеет неправильный формат. Чтобы использовать подсказки необходимо щелкнуть правой кнопкой мыши по ошибке и выбрать пункт «Показать возможные варианты». В этом случае появляется окно для поиска и замены указанной ссылки. При редактировании, если указаны метаданные ссылок, то при введении значения появляется выпадающий список с допустимыми значениями, который фильтруется по мере набора текста. Перед загрузкой желательно проверить содержимое файла на наличие ссылочных ошибок, выбрав одну из опций для проверки в меню на закладке «Редактировать». Убедившись, что отсутствуют ссылочные ошибки, для нужных листов установлен флаг, подтверждающий генерацию файла, введено название PL/SQL процедуры и названия её параметров для соответствующих столбцов, можно приступать к генерации SQL файлов с вызовами процедур или непосредственно загрузке данных. Генерация может происходить двумя способами: либо, выбрав пункт «Генерировать SQL файлы» в меню на закладке «Редактировать», либо, открыв файл в Excel и нажав кнопку «Генерировать» на первом листе для запуска макроса генерации файлов. 44 Рисунок 9. Вид данных заполненных в редакторе После выполнения процедуры генерации файлов можно приступать к их загрузке в базу данных. На рисунке 10 показано, как выглядят данные в виде готовом для исполнения загрузки. В результате генерации получаем не только файлы с наполнением, но и файл с названием «index.sql» для запуска загрузки в определенной последовательности и файл «log.txt» с отчетом о генерации файлов. Рисунок 10. Вид данных в виде вызовов процедур Далее, запуская в SQL*Plus или в SQL клиенте файл «index.sql», происходит наполнение базы данных. Следует учитывать, что схема базы данных должна быть создана ещё до загрузки. Кроме того, редактор позволяет выполнять загрузку, минуя генерацию файлов и их запуск в SQL*Plus. Для этого необходимо нажать в меню «Экспорт» на пункт «Загрузить в базу данных», а затем выбрать из списка листы, которые необходимо загрузить. 45 Использование такой загрузки существенно уменьшает количество этапов, которые оператору необходимо сделать при загрузке данных. 8.4 Компетенции необходимые для загрузки данных Чтобы выполнить загрузку данных без использования редактора, пользователь должен открыть Excel файл, отредактировать его, сгенерировать по нему документ. Далее ему необходимо поместить сгенерированный файл в SQL developer, присоединится к базе данных, и выполнить его. Можно также выполнить запуск через SQL*Plus, однако это требует навыков для работы с консолью. Можно создать исполняемый файл, который будет автоматически выполнять присоединение к базе и загрузку данных. Таким образом, получается, что нельзя с большой уверенностью сказать, что обычный пользователь сможет выполнить загрузку. В результате возникает необходимость осуществлять загрузку более простым способом, желательно не меняя при этом инструменты. Для решения такой задачи в редактор была реализована возможность загрузки данных, не выходя из интерфейса приложения. На рисунке 11 представлено окно загрузки, где оператор вводит данные необходимые для соединения с базой данных, указывает необходимые для загрузки листы и жмёт кнопку, чтобы выполнить загрузку. Рисунок 11. Окно загрузки данных 46 Загрузка выполняется в отдельном потоке, так как она может занимать длительное время и не давать пользователю взаимодействовать с графическим интерфейсом. Ход и прогресс работы отображается внизу окна. После работы возле выбранных для загрузки листов, отображается статус, который может принимать 3 значения: выполнен без ошибок, не был выбран для загрузки или ещё не выполнялся, выполнен с ошибками. Если при загрузке возникают ошибки, то по наведению на статус листа с ошибками будет отображаться ошибка во всплывающем окне. Таким образом, оператор не выполняет переходов между инструментами и как следствие повышается надежность и автоматизация процесса загрузки. Соответственно, компетенции, которыми должен обладать оператор, упрощаются. В результате оператор для загрузки должен иметь навыки работы с табличным редактором. 47 Заключение В работе рассмотрен процесс, а также способы загрузки данных в базу данных. Проведён обзор различных форматов хранения табличной информации и их различия. Проанализированы различные подходы к загрузке, среди них выявлен способ, который наиболее удовлетворяет задаче работы. Рассмотрена выгрузка данных и частные задачи, возникающие в ходе загрузки данных. С учетом поставленных требований к средству загрузки и проанализированной информации были выявлены возможности для улучшения метода. Разработано решение для автоматизации выбранного способа загрузки данных. Разработанный редактор позволяет перенести часть накладных расходов, связанных с проверкой целостности данных, с процесса загрузки на процесс обработки / модификации данных, а также выполнять загрузку данных за меньшее количество действий со стороны оператора. Таким образом, используя полученный метод, можно добиться прироста в скорости загрузки больших массивов данных, если найти удачное средство для загрузки с возможностью отключения проверок целостности. Кроме того, за счет упрощения загрузки снижается количество этапов, на которых можно допустить ошибку. Приведён пример использования проектного решения. Также в ходе работы была размещена информация, как о редакторе, так и о допустимом формате файлов в виде спецификации на корпоративном портале. 48 Используемые обозначения Таблица 5. Аббревиатуры Термин Описание БД База данных НСИ Нормативно-справочная информация СУБД Система управления базами данных РСУБД Реляционная СУБД SQL Structured Query Language PL/SQL Procedural Language/Structured Query Language API Application Programming Interface XML Extensible Markup Language DOM Document Object Model SAX Simple API for XML XLS Excel Spreadsheet XSLT Extensible Stylesheet Language Transformation CSV Comma-Separated Values ODS Open Document Spreadsheet JNA Java Native Access JNI Java Native Interface HTTP HyperText Transfer Protocol 49 Литература 1. Bohlouli M., Schulz F., Angelis L., Pahor D., Brandic I., Atlan D., Tate R. Towards an Integrated Platform for Big Data Analysis. // Fathi M. Integration of Practice-Oriented Knowledge Technology: Trends and Prospectives. – Germany: Springer, 2013. - pp 47-56 2. O’Reilly Media. Big Data Now. September 2011. 128 p. 3. Ковешников М.Г. Автоматизация загрузки больших массивов данных предметной области в промышленную базу данных // Материалы 51-й Международной научной студенческой конференции «Студент и научно-технический прогресс»: Информационные технологии / Новосиб. гос. ун-т. Новосибирск, 2013. – 161 с. 4. Kimball R., Caserta J. The data warehouse ETL toolkit: practical techniques for extracting, cleaning, conforming, and delivering data. – Canada: Wiley Publishing, Inc., 2004. – 491 p. 5. ГОСТ 34.601-90. Автоматизированные системы. Стадии создания. : Межгос. стандарт. - Введ. 01.01.92 // Комплекс стандартов на автоматизированные системы. 6. W3C Recommendation. Extensible Markup Language (XML) 1.1 (Second Edition). http://www.w3.org/TR/2006/REC-xml11-20060816 7. Фейерштейн С., Прибыл Б. Oracle PL/SQL. Для профессионалов. 5-е изд. – СПб.: Питер, 2011. – 800 c. 8. Кайт, Томас. Oracle для профессионалов: архитектура, методики программирования и особенности версия 9i, 10g и 11g, 2-е изд. :Пер с англ.- М.: Вильямс, 2011. – 848 c. 9. Rich, Kathy. Oracle Database Utilities, 11g Release 2 (11.2). Oracle Corporation. 2011. – 728 p. 10. Хорстманн, Кей С., Корнелл, Гари. Java 2. Библиотека профессионала, том 2. Тонкости программирования, 8-е изд. :Пер. с англ. – М. : ООО «И.Д. Вильямс», 2012. – 992 с. 11. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно- ориентированного проектирования. Паттерны проектирования. – СПб.: Питер, 2011. – 368 с. 50 Приложение А. Пример конфигурационного файла SQL*Loader загружающего данные в две таблицы LOAD DATA INFILE * INTO TABLE table_a WHEN type = 'a' FIELDS TERMINATED BY ',' TRAILING NULLCOLS ( type FILLER CHAR(1), A_ID_PK "table_a_seq.nextval", A_CODE, A_NAME ) INTO TABLE table_c WHEN type = 'c' FIELDS TERMINATED BY ',' TRAILING NULLCOLS ( type FILLER POSITION(1) CHAR(1), C_CODE_PK, C_NAME ) BEGINDATA a,code1,name1 c,code3,name3 a,code2,name2 c,code4,name4 a,code5,name6 a,code7,name7 c,code9,name9 51 |