Перенос данных из Ирбис: миграция базы на 24 тыс записей

    Система автоматизации библиотек Ирбис64 использует собственный формат хранения данных, который часто несовместим с современными проектами. Если у вас есть база данных Ирбис объемом около 24 тыс записей и вы хотите перенести её в другую СУБД (MySQL, PostgreSQL, SQLite или даже Excel), это вполне реально. В статье разберём основные способы миграции, возможные сложности и практические рекомендации.

    Возможен ли экспорт из Ирбис в другую базу?

    Да, перенести данные из Ирбис можно. Система поддерживает экспорт в текстовые форматы (ISO 2709, MARC, CSV, XML), которые затем конвертируются в нужную структуру. Однако из-за специфики Ирбис (иерархические поля, повторяющиеся подполя) процесс требует подготовки и проверки целостности.

    Основные способы миграции данных

    Экспорт через встроенные средства Ирбис

    Ирбис64 позволяет выгружать записи в формат ISO 2709 (MARC) или текстовый формат через меню «Сервис» → «Экспорт». Для 24 тыс записей это займёт несколько минут. После экспорта полученный файл можно обработать скриптом на Python или PHP для загрузки в MySQL или PostgreSQL.

    Использование сторонних конвертеров

    Существуют утилиты (например, MARCedit или Yaz), которые конвертируют MARC-записи в JSON, CSV или SQL. Для больших объёмов рекомендуется разбивать файл на части по 5-10 тыс записей, чтобы избежать переполнения памяти.

    Прямой доступ к файлам Ирбис

    База Ирбис хранится в файлах с расширениями .mst, .xrf, .pft. Можно написать парсер на Python (библиотека pymarc или irbis), который читает эти файлы и напрямую формирует SQL-запросы. Этот метод требует знания внутренней структуры, но даёт полный контроль.

    Типичные проблемы при миграции

    • Потеря иерархии полей - в Ирбис поля могут содержать подполя (например, автор: фамилия, имя, отчество). При экспорте в плоскую таблицу их нужно нормализовать.
    • Кодировка - часто используется CP1251, поэтому после экспорта проверьте преобразование в UTF-8.
    • Дубликаты - перед загрузкой в новую БД очистите записи от повторов с помощью скрипта.

    Пошаговая инструкция для миграции 24 тыс записей

    1. Сделайте резервную копию исходной базы Ирбис (скопируйте папку с файлами .mst и .xrf).
    2. Экспортируйте данные в ISO 2709 через меню Ирбис: «Сервис» → «Экспорт» → выберите «MARC-записи».
    3. Конвертируйте файл в CSV или JSON с помощью MARCedit (команда marc2csv.exe input.mrc output.csv).
    4. Напишите скрипт на Python для загрузки CSV в MySQL: используйте библиотеку pandas и sqlalchemy.
    5. Проверьте целостность: сравните количество записей в исходной БД и новой таблице.

    Заключение

    Перенести базу данных из Ирбис в другую СУБД можно за 1-2 дня, если использовать экспорт в MARC и конвертацию через утилиты. Для 24 тыс записей это не критичный объём - все современные СУБД справятся с загрузкой за минуты. Главное - заранее спланировать структуру таблиц и учесть особенности полей Ирбис.

    Часто задаваемые вопросы