Миграция данных
Миграция данных в информационных технологиях — это процесс радикального изменения существующей информационной системы или её значительной части. Миграция может затрагивать как аппаратное, так и программное обеспечение[1].
Разграничение понятий
Понятие «миграция» многозначно. Оно может обозначать как перевод отдельной системы, так и крупные проекты по миграции, в рамках которых внедряются множество новых систем или приложений[2]. Миграция с одной операционной системы на другую обычно включает одновременно перенос прикладных программ и данных.
Понятие портирование отличается от миграции и подразумевает перенос программ с одной аппаратной и/или программной платформы на другую[3]. Для этого программы, написанные для определённой платформы или ОС, модифицируются так, чтобы они работали на другой[4]. Иногда термины миграция и портирование используются как синонимы.
Миграция носителей
Миграция носителей подразумевает процесс смены физического носителя данных какого-либо объекта в архиве. Это разновидность процедур по обеспечению сохранности битового потока[5].
Различают четыре основных вида миграции носителей:
- Обновление
- Данные перезаписываются на новый носитель того же типа, без изменений самих данных или используемой инфраструктуры хранения.
- Репликация
- Данные копируются, как и при обновлении, но могут переноситься на иной, более современный тип носителя. Отличие состоит в изменении инфраструктуры. Пример: перенос данных с дискеты на USB-накопитель.
- Перепаковка
- Изменяется само архивное хранилище — данные перезаписываются в новом упаковочном формате. Например, сжатый файл в формате .zip превращается в сжатый файл .rar, то есть меняется формат упаковки.
- Преобразование
- Подобно перепаковке, данные переписываются, но здесь меняется и содержимое — например, текст из файла .docx преобразуется в .odt.
Обновление и репликация служат исключительно для сохранения данных путём смены носителя и рассматриваются как миграция носителей в узком смысле.
Перепаковка и преобразование связаны с изменением самого содержимого. Здесь создаётся новый объект данных, зачастую на новом носителе, и формат меняется с расчётом на будущую читаемость данных. Поэтому такой подход называют миграцией носителей в широком смысле или форматной миграцией.
Программная миграция
Программная миграция — процесс перехода от текущей технологической среды к новой[6].
Миграция подразумевает не просто обновление или апгрейд, а коренное изменение программной инфраструктуры. Основанием служит правильная стратегия миграции. Иногда доступны служебные программы для автоматизации процесса.
Часто причиной миграции становятся устаревшее программное обеспечение или невозможность удовлетворять новым требованиям. Особенно это актуально для организаций с дефицитом специалистов по старым системам[7].
Примеры программной миграции:
- Переход с Windows на Linux или с Unix на Windows. Также миграция с устаревшей AS/400 на Linux. Обычно осуществляется поэтапно для отдельных рабочих мест или приложений.
- Частичная миграция — разделение нового AS/400 (System i) между OS/400 и Linux, позволяя использовать оба набора программ на одном сервере.
- Перевод зависимого от платформы ПО на другую систему с помощью инструментов, таких как User State Migration Tool.
- Портирование также считается миграцией, например, переход на новое мажорное обновление того же производителя. Особенно трудозатратна миграция с SAP R/2 на SAP R/3 или mySAP, так как системы принципиально различаются, и этот процесс сопряжён с рисками неудачи.
- Миграция устаревших приложений («Legacy-мigration») на новую платформу (современные технологии или стандартное программное обеспечение) с целью дальнейшего развития. Если раньше такие проекты требовали полной переписи кода, сейчас появились автоматизированные инструменты для некоторых направлений миграции, например, при переходе с собственной 4GL-платформы Gupta Team Developer на .NET Framework.
Причины
Причинами миграции данных могут быть неудачные структуры баз данных, устаревшие приложения, объединение информационных систем либо внедрение новых технологий баз данных[8].
Примеры:
- При замене самописной банковской системы стандартным ПО необходимо перенести клиентские данные, счета и остатки, а не просто установить новое ПО.
- При слиянии компаний требуется объединить данные обеих структур.
- Конвертация между кодировками
- Перенос баз данных
- Перенос текстовых документов с макросами на другой офисный пакет
- Перенос таблиц с уникальными формулами
- Интеграция нескольких различных программ в одну
Миграция данных состоит из нескольких этапов — от анализа источников до проверки результатов[9]. Ключевыми являются три шага.
Сначала определяются, какие данные переносятся: проводится их анализ, извлечение, сверка и готовятся управляющие данные (например, таблицы сопоставления)[9]. Затем данные трансформируются под структуру новой системы: выбранные данные очищаются, дубликаты объединяются, ошибки исправляются. Следующий этап — сопоставление (mapping)[9]. На завершающем этапе преобразованные данные загружаются в целевую систему.
Эти шаги соответствуют ETL-процессу в хранилище данных, хотя цель иная: хранилище создаёт новые знания (например, анализ продаж), а миграция данных сохраняет их смысл. К примеру, все клиенты и остатки на счетах должны остаться без изменений, меняется только структура представления.
Технически миграция данных реализуется с помощью ETL-инструментов, специализированных программ для миграции и SQL-скриптов. Критически важна надёжность операций, особенно если требуется миграция большого числа типов объектов (клиенты, счета, акции и прочее). Специальные средства управления координируют ETL-процесс. Надёжность часто проверяется как вручную на отдельных тестах, так и автоматически статистическими методами, чтобы выявить даже редкие случаи потерь (например, если пропущен один из 10 миллионов счетов).
Миграция приложений
В ходе миграции приложений приложение заменяется новым[10]. При этом сочетаются элементы программной и данных миграции; часто требуется также новое оборудование. Для успеха критически важны грамотная стратегия и реализация, гарантирующие целостность данных и плавное переключение функций.
Миграция аппаратного обеспечения
Миграция существующих систем на новое аппаратное обеспечение порождает схожие сложности, как и миграция программного обеспечения, и практически всегда сопряжена с перемещением или обновлением ПО через драйверы устройств. Миграции данных при этом стараются избегать.
Пример — переход с классической Ethernet-сети на ATM-технологию при сохранении прежней структурированной кабельной структуры.
Крупномасштабную миграцию на новую микропроцессорную технологию проводила компания Hewlett-Packard, постепенно переводя серверы клиентов с архитектур Alpha и PA-RISC на совместно с Intel разработанные процессоры Itanium[11].[12]
Живая миграция (Live-migration)
Живой миграцией называют перенос виртуальной машины (ВМ) с одного физического хоста на другой во время работы. Оптимальным считается перенос без прерывания работы гостевой ВМ, так что внутри неё продолжаются все процессы. Основные цели — облегчение обслуживания оборудования и распределение нагрузки[13].
Переход на новые интерфейсы и технологии
Функции программ, их параметры, а также конструкции (например, элементы SGML) могут быть признаны устаревшими или отменёнными в последующих версиях ПО или языков разметки.
Сохранение таких элементов важно для обратной совместимости. Если старый интерфейс убрать без предупреждения, это приведёт к ошибкам выполнения. Обычно обработка устаревших функций подменяется простой обработкой ошибок — например, функция возвращает заранее определённое «пустое» значение, чтобы не возбуждать ошибку, если вызывающая сторона не подготовлена обрабатывать её. Однако выбор такого значения требует внимания, чтобы не привести к нежелательным побочным эффектам (например, ноль как результат деления на ноль).
Многие языки программирования и среды разработки позволяют явно помечать устаревшие конструкции специальными ключевыми словами или атрибутами.
Обработка сложных интерфейсов нередко осложняет развитие программной платформы — например, поддержка 16-бит-совместимости в Windows, где остаётся необходимость поддерживать OS/2 и DOS-приложения через отдельный эмулятор.
Выбор между сохранением и устранением обратной совместимости — одно из главных затруднений управления версиями ПО. Обычно между «малым» (minor) и «крупным» (major апдейт) обновлениями проводят границу по критерию совместимости. Миграция через несколько версий (релизов) подряд может требовать дополнительных усилий или полной переустановки.
Примечания
Литература
- Кнут Хильдебранд. IT-Integration & Migration. Dpunkt Verlag, Гейдельберг, 2007. ISBN 978-3-89864-455-6.
- Михаэль Виллингер, Иоганн Градль, Франк Денсборн, Михаэль Рот. Datenmigration in SAP. 3-е, обновлённое и расширенное издание. Galileo Press, Бонн, 2012. ISBN 978-3-8362-1808-5.
- John Morris. Practical Data Migration. British Computer Society, Swidon, 2006. ISBN 1-902505-71-9 (на англ.).
- Jesús Bisbal и др. A Survey of Research into Legacy System Migration. Technical Report. Trinity College, Дублин, 1997, cs.cofc.edu (PDF), Abstract.
- Klaus Haller. Towards the Industrialization of Data Migration: Concepts and Patterns for Standard Software Implementation Projects. В: Pascal van Eck, Jaap Gordijn, Roel Wieringa (ред.): Advanced Information Systems Engineering, 21st International Conference, 2009, Amsterdam. Springer, Heidelberg, 2009. ISBN 978-3-642-02143-5 (PDF, на англ.).
- Carlo Breves, Eberhard von Radetzky. Anwendungsmigration im Rahmen von Beratungsprojekten. Zeitschrift für Unternehmensberatung, 8/2008, Erich Schmidt Verlag.
Ссылки
Общая информация:
- Руководство по миграции Министерства внутренних дел Германии (PDF) — информация о миграции на открытое ПО в госсекторе (на нем.), по состоянию на 29 сентября 2012.
- tuxfutter.de — вики по миграции на свободное ПО и Linux с инструкциями и альтернативами (на нем.).
Инструменты миграции данных:
- Scriptella — открытый ETL- и скриптовый инструмент.
- ETL Integrator — облако поставки ПО Oracle.
- Daten Migration Toolkit (DMT) — бесплатная Java-программа с графическим интерфейсом для миграции файлов и данных БД.


