Способы работы с данными меняются с учетом требований приложений элeктронного бизнеса

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

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

Однако с активным распространением Internet процессы ETL стали все шире применяться и для поддержки Web-приложений. Например, поставщик может использовать средства ETL для «закачки» в Web-систему данных, необходимых для проверки состояния обработки заказов из внутреннего унаследованного приложения. Точно так же торговая компания может применять ETL для передачи данных о заказах из интерактивного магазина своим поставщикам. Программы, реализующие подход ETL, становятся существенными компонентами многих инициатив, связанных с электронной коммерцией, в том числе приложений, поддерживающих взаимодействие между бизнес-партнерами, а также между производителем и потребителями.

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

Извлечение данных

Для того чтобы инициировать процесс ETL, применяются программы извлечения данных для чтения записей в исходной базе данных и для подготовки информации, хранящейся в этих записях, к процессу преобразования. Чтобы извлечь данные из исходной базы данных, можно выбрать один из трех вариантов — создать собственные программы, обратиться к готовому специализированному инструментарию ETL или использовать сочетание и того и другого.

На практике большинство программистов предпочитают сочетать инструментарий, созданный независимыми разработчиками, со своими собственными программами. Эти программы иногда обозначают термином «пользовательский выход» (user exit). Они выполняют специализированные функции, уникальные для конкретного окружения.

Продукты ETL независимых производителей, как правило, более эффективны и дешевы, чем собственные программы. Многие инструментальные средства ETL предоставляют программистам единый, интуитивный интерфейс, который может использоваться для извлечения информации из различных баз данных. Организации, которые работают с множеством разнообразных источников данных, безусловно, получат преимущество от унификации доступа к ним.

Инструментарий ETL имеют преимущество по сравнению с собственными программами еще и в том, что они могут использоваться без дополнительной настройки; нет необходимости писать код для открытия файлов, чтения записей и слияния таблиц — ETL-продукты выполняют все эти функции. Более того, ведущие продукты ETL включают в себя предварительно созданные процедуры извлечения данных, предназначенные для популярных приложений планирования ресурсов предприятия (ERP — enterprise resource planning). Во многих случаях единый инструментарий ETL способен удовлетворить большую часть требований к переносу данных.

Преобразование данных

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

Киоски данных представляют собой специализированные приложения, которые дают возможность конечным пользователям анализировать самые разнообразные тенденции на весьма интуитивном уровне. Например, аналитик по вопросам маркетинга может использовать киоск данных с информацией о продажах для того, чтобы проанализировать доход в расчете на продукт за каждый из последних пяти лет. В отличие от средств обработки заказов, производства и других операционных приложений, киоски данных не требуют детальной информации. Фактически резюмированные данные даже предпочтительнее, поскольку в этом случае уменьшается время ответа и упрощается использование.

Перед тем как загрузить киоск данных, они, как правило, агрегируются. Процедуры агрегирования (aggregation) заменяют многочисленные детальные записи на относительно небольшое число кратких записей. Например, предположим, что данные о продажах за год занимают в нормализованной базе данных несколько тысяч записей.

После агрегирования данные преобразуются в меньшее число кратких записей, которые будут перенесены в киоск с данными о продажах. Хотя программисты могут сами написать код для выполнения агрегирования данных вручную, инструментарий ETL — более эффективное решение, поскольку они позволяют создать краткие записи за один шаг, без дополнительных программ.

Перевод значений (value translation) — еще одна распространенная методика преобразования данных. Операционные базы данных хранят закодированную информацию для того, чтобы сократить избыточность данных и удовлетворить требования к хранению. Например, складские подразделения могут хранить файлы с инвойсами, поскольку они короче, чем соответствующие описания продуктов, и т. д.

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

Создание полей (field derivation) — третья методика, применяемая для преобразования данных. При создании полей для конечных пользователей создается и новая информация. Например, предположим, что операционная база данных содержит одно поле для указания количества проданных товаров, а второе — для указания цены одного экземпляра. Для того чтобы определить доход, пользователям не придется считать его самим, поскольку программисты могут создать специальное поле для указания дохода во время преобразования данных. Ведущие продукты ETL позволяют программистам использовать математические операции, статистические функции, возможности работы со строками, арифметические действия и условную логику для создания новых полей.

Четвертая процедура преобразования — очистка (cleansing) используется очень многими. Программисты применяют алгоритмы очистки данных для того, чтобы отсеять неточные данные из других систем. Например, процедуры очистки обычно проверяют, содержат ли числовые поля именно числовые данные, насколько указанные даты и числа корректны и осмысленны, и выполняют подобные действия. Процедуры очистки могут также использоваться в тех случаях, когда одно уникальное значение представлено в базе данных различным образом. Например, IBM может обозначаться как IBM Co., International Business Machines, IBM и т. д. Во время очистки различные версии одного и того же элемента данных заменяются на одно значение. Очистка также применяется для согласования атрибутов полей таким образом, чтобы они соответствовали атрибутам базы данных назначения.

Загрузка данных

После того как данные преобразованы для размещения в базе данных назначения, программисты используют процедуры загрузки для записи информации в новую базу данных. Во время этого этапа необходимо определить, будут ли данные переноситься периодически или постоянно. Периодическое пополнение данных выполняется регулярно, например ежедневно, еженедельно или ежемесячно. Этот подход, иногда называемый переносом мгновенного снимка, предполагает «захват» состояния операционной системы в определенный момент времени. Если пользователям необходима текущая информация, постоянное обновление позволяет загружать данные в базу данных назначения в оперативном режиме. Постоянное тиражирование требует выделенного высокоскоростного канала связи. Выбор между периодическим и постоянным обновлением будет зависеть от того, насколько пользователям необходима оперативная информация, а также от доступной инфраструктуры и бюджета.

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

Можно также классифицировать загрузку данных в зависимости от того, какой метод применяется для тиражирования информации. При push-тиражировании исходное приложение «проталкивает» преобразованные данные в приложение назначения. При pull-тиражировании приложение назначения «вытаскивает» данные по мере необходимости, например в том случае, когда конечный пользователь посылает запрос.

Можно также спроектировать процедуры загрузки, которые используют процессы обоих типов.

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

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


Инструменты манипуляции данными

Продукты ETL позволяют переносить информацию из одной среды в другую, не создавая специальных программ для открытия файлов, чтения записей, объединения данных и других подобных операций. В итоге программисты могут реализовывать инициативы, связанные с ETL, и управлять ими более эффективно

Достоинства: предлагает унифицированный доступ к различным базам данных; позволяет быстро переносить данные между системами

Недостатки: относительно высокая стоимость


Перенос данных

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

Источник: MGI UPS Systems