Решения для импорта файла IMS Hierarchial ASCII в SQL/ACCESS
У меня есть большой набор данных ASCII (2,7 ГБ), который я считаю, в иерархическом формате IMS. Я не уверен, как получить доступ к данным, чтобы получить их в пригодную для использования базу данных, я бы предположил, SQL, но я открыт для других решений. Это "Макет", который поставляется с базой данных, если это вообще полезно...
2 ответа
Так что вам не хватает ключевой информации здесь. На самом деле вы захотите файл дескриптора базы данных IMS (DBD) в дополнение к макету, который вы вставили. Файл IMS DBD опишет структуру базы данных. База данных IMS может иметь много сегментов (или таблиц), которые DBD будет описывать в дополнение к другой информации, такой как размер этих таблиц.
Эти фактические записи будут храниться в плоском файле (вероятно, упомянутом вами ASCII-файле объемом 2,7 ГБ) в глубоком первом формате. Допустим, у вас было два сегмента A и B, где B - дочерний элемент A. Ваш плоский файл может выглядеть так: A1,B1,B2,B3,A2,B4,B5, где B1, B2 и B3 - дочерние элементы A1 и В4 и В5 - дети А2. Причина этого заключается в том, что ваша информация макета обеспечивает наложение только для определенной структуры сегмента.
Поэтому, если в вашей базе данных было более одного сегмента UIMNH10, вы не будете знать, где в файле ASCII применить начальную точку для макета.
Теперь давайте сделаем ОГРОМНОЕ предположение, что ваша база данных имеет только один сегмент UIMNH10. В этом случае ваш ASCII-файл будет выглядеть так: A1, A2, A3, A4. Это довольно просто, поскольку вы неоднократно применяете свой макет к данным.
К счастью, ваши структуры данных довольно просты, так как это все символьные данные. Вы бы интерпретировали PIC X(n) как строку символов длиной n. Аналогично, для PIC 9(n) это будет строка числовых символов длиной n.
Предполагая, что ваш пример данных начинается с: AA201805...
RRC-H10-SEGMENT-ID is 'AA' because it's PIC X(2)
MN-H10-CENTURY is '20' because it's PIC 9(2)
MN-H10-YEAR is '18' because it's PIC 9(2)
MN-H10-MONTH is '05' because it's PIC 9(2)
Вы будете делать это до тех пор, пока не достигнете конца макета, а затем снова начнете с начала следующей записи. Это также делает предположение, что определение макета соответствует длине вашей записи.
Лучше всего работать с администратором базы данных IMS, чтобы подтвердить эти предположения, но как только вы получите представление о своих отправных точках, вы сможете сопоставить данные самостоятельно или написать быструю программу, которая сделает это за вас. Есть и другие альтернативы, но это предполагает некоторую внутреннюю настройку для таких вещей, как поддержка SQL, для чтения и вывода данных в формат файла csv для Excel.
Если у вас нет опыта программирования, у вас большие проблемы!!! Excel MsAccess вам не сильно поможет.
Итак, ответ:
Наймите некоторых программистов с опытом преобразования Cobol / Cobol!!!
UIC-MN-H10-СЕГМЕНТ
Тетрадь Cobol сообщает вам формат файла. Формат UIC-MN-H10-SEGMENT
2 byte segment id (10 ???)
4 byte year
2 Byte Month
4 byte average injection pressure etc
Это файл с несколькими записями.
Инструменты, которые вы можете использовать
RecordEditor может отображать файл (размер может быть проблемой). Также RecordEditor займет немного привыкнуть к
Cobol, например, GNU Cobol понадобятся программисты Cobol
Java / JRecord - нужны Java-программисты
- Если это только одна запись (маловероятно), Cobol2Csv
Чтобы дать более полный смысл ответа, пожалуйста, предоставьте тетрадь Cobol в текстовом формате и некоторые примеры данных.