Перенос данных из Ирбис: миграция базы на 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 тыс записей это не критичный объём - все современные СУБД справятся с загрузкой за минуты. Главное - заранее спланировать структуру таблиц и учесть особенности полей Ирбис.