Управление эффективностью бизнеса
ETL-системы
Весьма важным представляется вопрос о взаимодействии систем, находящихся на разных уровнях аналитической пирамиды, и в этой связи нельзя не упомянуть программные продукты еще одного класса — ETL.
Под термином ETL (extraction, transformation, loading — извлечение, преобразование, загрузка) понимают три основных процесса, используемых при переносе данных из одной системы в другую. Программные средства этой категории извлекают исходную информацию из определенного источника, преобразуют ее в формат, поддерживаемый базой данных назначения, а затем загружают в базу назначения уже преобразованную информацию.
В части извлечения данных (extraction) ETL-системы могут использоваться без необходимости писать код для открытия файлов или чтения записей, хотя и требуют весьма трудоемкой настройки (как показывает практика, настройка ETL может составлять до 80% затрат на создание хранилища данных). Более того, некоторые ETL-системы включают в себя предварительно созданные процедуры извлечения данных из наиболее популярных транзакционных систем (впрочем, функциональность таких стандартных процедур часто оказывается довольно ограниченной).
По завершении извлечения данных требуется их преобразование (transformation) — подготовка к размещению в новой базе данных. Есть несколько способов преобразования, к которым относятся очистка, агрегирование, перевод значений и создание полей.
Очистка (cleaning) применяется для того, чтобы отсеять неточные или неоправданно повторяющиеся данные из других систем. При очистке можно проверить корректность диапазонов числовых значений, приемлемость дат и т. д. Процедуры очистки используются и тогда, когда одно и то же значение представлено в разных формах (например, разные по форме варианты названия компании — «Hyperion», «Hyperion Solutions Corp.», «корпорация Hyperion» — могут быть заменены на какое-то одно). Очистка также может применяться для согласования атрибутов полей (чтобы они соответствовали единой нормативно-справочной информации).
В процессе агрегирования (aggregation) многочисленные детальные записи заменяются относительно небольшим количеством обобщенных записей. В результате удается избежать излишней детализации и представить управленческую информацию в более удобном для анализа виде.
Перевод значений (value translation) — еще одна распространенная процедура преобразования, ее необходимость вызвана тем, что во многих системах данные часто хранятся в закодированном виде (например, персональный код сотрудника вместо его фамилии). Перевод значений предусматривает замену закодированных данных на более понятные описания, такие преобразования производятся на основе нормативно - справочной информации.
Создание полей (field derivation) применяется в том случае, если для конечных пользователей создается какая-либо новая информация. Например, если в исходной базе данных есть поле цены товара и поле объема продаж, то на их основе можно создать третье поле — выручки от реализации. Современные ETL-системы позволяют программистам использовать для создания новых полей математические операции, статистические функции, возможности работы со строками, арифметические действия и условную логику.
После того как все процедуры преобразования завершены, данные считаются готовыми к размещению в базе данных назначения. Для этого используются процедуры загрузки (loading). Здесь важно определить режим переноса: будет ли он происходить периодически (ежедневно, еженедельно или ежемесячно) или в постоянном (оперативном) режиме. Постоянное тиражирование предъявляет значительно более высокие требования к каналам связи, поэтому решение о постоянном режиме зависит от того, насколько пользователям необходима именно оперативная (а не периодическая) информация. Большинство современных ETL-систем поддерживают и постоянную, и периодическую загрузки данных. Некоторые продукты также позволяют переносить не все данные, а только те, которые претерпели изменения.
При загрузке применяются разные схемы: при pull-тиражировании приложение назначения «вытягивает» данные по мере необходимости, а при push-тиражировании система «проталкивает» преобразованные данные в базу данных назначения. Возможен и смешанный подход, когда данные поступают в промежуточную базу, где преобразовываются, а затем по мере необходимости извлекаются приложением назначения. Впрочем, возникает серьезный вопрос о применимости push-тиражирования на данном этапе развития технологий, поскольку для этого система должна обладать полной информацией о базе данных назначения, а это — большая редкость.
Для организации корректного переноса данных из одной системы в другую важно хорошо представлять процессы ETL, а также структуру источника данных и приложения назначения.