Как перенести данные из мэйнфрейма в Hadoop

У меня есть файлы в мэйнфрейме. Я хочу, чтобы эти данные были отправлены в Hadoop (HDFS) / HIVE.

Я могу использовать Sqoop для базы данных мэйнфреймов DB2 и импортировать ее в HIVE, но как насчет файлов (например, _1 _, _ 2_ и т. Д.)

Есть ли какой-нибудь собственный источник потока, который я могу написать, или какой-нибудь альтернативный инструмент для использования здесь?


person azzaxp    schedule 28.02.2013    source источник


Ответы (7)


COBOL - это язык программирования, а не формат файла. Если вам нужно экспортировать файлы, созданные программами COBOL, вы можете использовать ту же технику, как если бы эти файлы были созданы на C, C ++, Java, Perl, PL / I, Rexx и т. Д.

В общем, у вас будет три разных источника данных: плоские файлы, файлы VSAM и СУБД, такая как DB2 или IMS.

В DMBS есть утилиты экспорта для копирования данных в плоские файлы. Имейте в виду, что данные в DB2, скорее всего, будут нормализованы, и поэтому вам, вероятно, понадобится содержимое связанных таблиц, чтобы разобраться в данных.

Файлы VSAM можно экспортировать в плоские файлы через IDCAMS утилита.

Я настоятельно рекомендую вам преобразовать файлы в текстовый формат, прежде чем переносить их в другой ящик с другой кодовой страницей. Попытка иметь дело со смешанным текстом (кодовая страница которого должна быть переведена) и двоичным (кодовая страница которого не должна быть переведена, но которая, вероятно, должна быть преобразована с прямого порядка байтов в прямой порядок байтов) сложнее, чем выполнить преобразование заранее.

Преобразование, вероятно, можно выполнить с помощью утилиты SORT на мэйнфрейме. Утилиты SORT мэйнфрейма, как правило, имеют обширные функции обработки данных. Есть и другие механизмы, которые вы можете использовать (другие утилиты, собственный код, написанный на языке по вашему выбору, приобретенные пакеты), но именно это мы обычно делаем в этих обстоятельствах.

После преобразования плоских файлов таким образом, что все данные являются текстовыми, вы можете передавать их в свои ящики Hadoop через FTP, SFTP или FTPS.

Это не исчерпывающий обзор темы, но это поможет вам начать.

person cschneid    schedule 28.02.2013
comment
Спасибо! это должно мне помочь. - person azzaxp; 28.02.2013
comment
Работает ли IDCAMS нормально, если в моем файле VSAM есть содержимое COM3? Кроме того, насколько этот инструмент способен на репликацию в реальном или близком к реальному времени? - person yathirigan; 16.11.2016
comment
@yathirigan, вы можете использовать утилиту SORT для преобразования упакованных десятичных данных (COMP-3) в читаемый формат. Репликация в реальном времени может быть выполнена путем планирования задания для запуска через соответствующие интервалы, но вы можете поискать другие решения, если интервал очень короткий и / или файл VSAM большой. Поговорите со своим техническим персоналом, как Билл Вудгер указал в вашем вопросе . - person cschneid; 16.11.2016

Syncsort обрабатывает данные мэйнфреймов в течение 40 лет (около 50% мэйнфреймов уже используют программное обеспечение), у них есть специальный продукт под названием DMX-H, который может получать данные мэйнфрейма, обрабатывать преобразования типов данных, импортировать книги копий cobol и загружать их напрямую в HDFS. Syncsort также недавно внесла новую усовершенствованную функцию в ядро ​​Apache Hadoop. Я предлагаю вам связаться с ними на сайте www.syncsort.com. Они показали это в демонстрации на недавнем роуд-шоу Cloudera.

person Mainframegeek    schedule 02.05.2013
comment
У вас есть какие-то цифры для 50% мэйнфреймов, уже использующих [SyncSort]? - person Bill Woodger; 05.05.2014

Обновление на 2018 год:

Существует ряд коммерческих продуктов, которые помогают переносить данные с мэйнфрейма на распределенные платформы. Вот список тех, с которыми я столкнулся для тех, кто заинтересован. Все они принимают данные о Z, как описано в вопросе, и выполняют некоторые преобразования и позволяют перемещать данные на другие платформы. Не точное совпадение, но отрасль изменилась, и цель переноса данных для анализа на другие платформы растет. Data Virtualization Manager предоставляет самый надежный инструмент для преобразования данных из того, что я видел.

SyncSort IronStream

IBM Common Data Provider

Correlog

IBM Data Virtualization Manager

person Hogstrom    schedule 29.08.2018

Почему бы и нет: hadoop fs -put <what> <where>?

person www    schedule 28.02.2013
comment
не совсем, я пытаюсь автоматизировать вещи, где у меня есть файлы Source, то есть VSAM в мэйнфреймах. Как мне экспортировать их сюда прямо в Hadoop - person azzaxp; 28.02.2013

Передача файлов макета cobol может быть выполнена с помощью описанных выше опций. Однако фактическое сопоставление их с таблицей Hive - сложная задача, поскольку макет cobol имеет сложные форматы, такие как условие зависимости, переменная длина и т. Д.

Я попытался создать индивидуальный серде для достижения цели, хотя он все еще находится на начальной стадии. Но вот ссылка, которая может дать вам некоторое представление о том, как десериализовать в соответствии с вашими требованиями.

https://github.com/rbheemana/Cobol-to-Hive

person Ram Manohar    schedule 29.05.2015
comment
Эта банка потрясающая - person vikrant rana; 20.06.2019

Не тянуть, а толкать: используйте Co: Z Launcher от Dovetailed Technologies.

Например (отрывок из JCL):

//FORWARD  EXEC PGM=COZLNCH
//STDIN    DD *
hadoop fs -put <(fromfile /u/me/data.csv) /data/data.csv
# Create a catalog table
hive -f <(fromfile /u/me/data.hcatalog)
/*

где /u/me/data.csv (данные на мэйнфрейме, которые вы хотите использовать в Hadoop) и /u/me/data.hcatalog (соответствующий файл HCatalog) - это пути к файлам z / OS UNIX.

Для более подробного примера, где данные являются записями журнала, см. Извлечение журналов в Hadoop.

person Graham Hannington    schedule 26.06.2015

Cobrix может решить эту проблему за вас. Это источник данных COBOL с открытым исходным кодом для Spark, который может анализировать упомянутые вами файлы.

person Felipe Martins Melo    schedule 22.08.2018