Решения для импорта файла IMS Hierarchial ASCII в SQL / ACCESS - PullRequest
0 голосов
/ 22 мая 2018

У меня есть большой набор данных ASCII (2,7 ГБ), который, по моему мнению, находится в иерархическом формате IMS.Я не уверен, как получить доступ к данным, чтобы получить их в пригодную для использования базу данных, я бы предположил SQL, но я открыт для других решений.Это «Макет», который поставляется с базой данных, если он вообще полезен ...

Layout Screenshot

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Итак, вам не хватает ключевой информации здесь.Вы бы на самом деле хотели файл дескриптора базы данных IMS (DBD) в дополнение к макету, который вы вставили.Файл IMS DBD будет описывать структуру базы данных.В базе данных IMS может быть много сегментов (или таблиц), которые DBD будет описывать в дополнение к другой информации, такой как размер этих таблиц.

Фактические записи будут храниться в плоском файле (вероятно,2.7gb ASCII-файл, который вы упомянули) в глубоком первом формате.Допустим, у вас было два сегмента 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)

Вы будете делать это доВы достигаете конца макета и затем начинаете снова с начала следующей записи.Это также делает ASSUMPTION , что определение макета MATCHES длина вашей записи.

Лучше всего работать с администратором базы данных IMS, чтобы подтвердить эти предположенияно как только вы получите представление о своих отправных точках, вы сможете составить карту самостоятельно или написать быструю программу, которая сделает это за вас.Есть и другие альтернативы, но это предполагает некоторую внутреннюю настройку для таких вещей, как поддержка SQL, для чтения и выгрузки данных в формат файла csv для Excel.

0 голосов
/ 22 мая 2018

Если вы не имеете программирование фон Вы находитесь в большие неприятности !!!.Excel MsAccess вам мало чем поможет.

Поэтому ответ таков:

Наймите некоторых программистов, имеющих опыт преобразования Cobol / Cobol !!!


UIC-MN-H10-SEGMENT

Cobol Copybook сообщает вам формат файла.Формат 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 в текстовом формате и некоторые примеры данных

...