ИЗВЛЕЧЕНИЕ ДАННЫХ В ПРОЦЕССЕ ETL - Студенческий научный форум

X Международная студенческая научная конференция Студенческий научный форум - 2018

ИЗВЛЕЧЕНИЕ ДАННЫХ В ПРОЦЕССЕ ETL

Кузьмина Ю.В. 1, Кубанских О.В. 1
1Брянский государственный университет им. акад. И.Г. Петровского
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Хранилища данных в настоящее время набирают все большую популярность в связи с необходимостью компаний анализировать все большие объемы информации. Сложность заключается в том, что исходные данные содержатся в источниках с различной структурой и форматами данных. Процесс ETL служит для первоначального заполнения и последующего добавления данных в хранилище.

Процесс ETL – это составной процесс извлечения, преобразования и загрузки в хранилище данных. Источники могут быть самыми разнообразными. Рассмотрим общие вопросы, связанные с извлечением данных.

Может понадобиться извлекать данные не только из баз данных, но и из файловых систем, служб электронной почты и др. Если источником является база данных, то обычно используют ADO.NET, OLEDB, ODBC, JDBC или собственное соединение базы данных. В настоящее время большинство баз данных являются реляционными, но иногда встречаются иерархические базы данных, такие как Adabas и ISM, или последовательные хранилища файлов, например ISAM. Чтобы извлечь данные из них, нужен драйвер базы данных или требуется сценарий экспорта данных с использованием специфичного для базы данных языка. Если данные находятся в файле, они могут быть структурированы, полуструктурированы или неструктурированы.

Структурированный файл выглядит так:

ID Product Price Customer

3211 A 1500 Иванов

3220 Б 2100 Петров

Это файл с фиксированной позицией, в котором поля столбцов находятся в определенных положениях.

Структурированный файл может выглядеть так:

ID|Product|Price|Customer

3211|A|1500|Иванов

3220|Б|2100 |Петров

Это файл с разделителями. В этом случае поля разделены вертикальной чертой. Структурированный файл содержит табличные данные, то есть данные в столбцах и строках.

Полуструктурированный файл содержит табличные и нетабличные данные. Например, этот XML-файл полуструктурированный:

A

1500

Иванов

Б

2100

Петров

Александр Алексеев

alex@ya.ru

Первые два раздела (данные заказа) являются табличными, а третий (данные сотрудника) не является табличным.

Неструктурированные данные таковы: «Покупатель Иванов приобрел продукт «А» за 1500 руб. по заказу ID 3211, по другому заказу ID 3220 покупатель Петров приобрел продукт «Б» за 2100 руб.»

Так может выглядеть содержание письма электронной почты. Из неструктурированных данных можно извлечь информацию, используя интеллектуальный анализ текста.

Иногда извлечение данных должно выполняться только в определенное время, например, после продажи, или не может выполняться в какие-либо периоды, например на время резервного копирования или во время квартального отчета. Иногда есть доступ к исходным данным в любое время, например, когда есть дополнительный сервер только для чтения, специально предусмотренный для нерегламентированных запросов и ETL.

В таблице 1 показаны некоторые возможные проблемы при извлечении данных, и пути их решения.

Таблица 1. Проблемы извлечения данных

Возможная проблема

Пример

Возможное решение

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

Извлечение данных в течение дня может привести к замедлению работы с OLTP (база данных источник).

Договориться о времени с базой данных OLTP. Извлечение производить небольшими «порциями»

База данных не доступна в определенные часы

В первый день каждого месяца OLTP система производит свод данных за предыдущий месяц, и загружена в течение всего дня

Пропустить извлечение в этот день. Сообщить пользователям причины этого ограничения.

Процесс ETL может испортить систему OLTP

Базу данных администрируют консультанты, которые только изучают OLTP

Запросить у базы данных доступ «только для чтения»

ETL приведет к перегрузке базы данных OLTP

База данных OLTP является глобальной

Выполнять ETL во время наименьшей нагрузки на базу даны, например, по воскресеньям

Нельзя остановить ETL процесс в аварийной ситуации

После аварийной ситуации требуется перезагрузка сервера OLTP

Можно прервать процесс ETL в любое время, затем перезапустить вручную

Не может начаться ETL процесс

Переполнение резервной копии OLTP

Запрограммировать ETL для повторного запуска автоматически позже

Одной из важнейших вещей на данном этапе проекта (начало ETL) является получение данных, то есть возможность подключения к исходным данным.

В таблице 2 перечислены некоторые причины, по которым невозможно получить исходные данные, а также их общие решения.

Таблица 2. Причины сложности получения данных источников

Причина

Возможное решение

Нет подключения к целевой базе данных.

Прописать IP-адрес источника IP-адрес назначения и номер порта для открытия.

Не подходят к использованию ODBC, OLEDB, ADO.NET. Целевая база данных использует специфический драйвер.

Установить необходимые драйвера на ETL сервер

Есть доступ к базе данных, но невозможно выполнить запрос, так как нет доступа к таблицам или представлениям.

Создать в базе данных дополнительного пользователя с доступом только для чтения («read only»)

В базе данных используется специфичный язык или инструментарий.

Получить версию ODBC драйвера, который принимает обычные SQL запросы, или администратор базы данных может написать скрипт для экспорта данных

Список литературы

1. Rainardi V. Building a Data Warehouse: With Examples in SQL Server, APRESS – 2008.

2. Кузьмина Ю.В., Кубанских О.В. Краткое описание процесса ETL //Ученые записки Брянского государственного университета. 2017. №1

Просмотров работы: 120