Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
EBCDICDaten mithilfe AWS von Python in ASCII on konvertieren und entpacken
Erstellt von Luis Gustavo Dantas () AWS
Umgebung: PoC oder Pilotprojekt | Quelle: Mainframe-Daten EBCDIC | |
Ziel: Verteilte oder in der Cloud modernisierte Daten ASCII | R-Typ: Replatform | Arbeitslast: IBM |
Technologien: Mainframe; Datenbanken; Speicher und Backup; Modernisierung | AWSDienstleistungen: AmazonEBS; Amazon EC2 |
Übersicht
Da Mainframes in der Regel wichtige Geschäftsdaten hosten, ist die Modernisierung von Daten eine der wichtigsten Aufgaben bei der Migration von Daten in die Amazon Web Services (AWS) Cloud oder eine andere American Standard Code for Information Interchange (ASCII) -Umgebung. Auf Mainframes werden Daten in der Regel im erweiterten binärcodierten dezimalen Interchange-Code-Format () codiert. EBCDIC Beim Exportieren von Datenbank-, Virtual Storage Access Method (VSAM) oder Flatfiles werden im Allgemeinen gepackte EBCDIC Binärdateien erzeugt, deren Migration komplexer ist. Die am häufigsten verwendete Lösung für die Datenbankmigration ist Change Data Capture (CDC), die in den meisten Fällen die Datenkodierung automatisch konvertiert. Für diese Datenbank- oder Flatfiles sind jedoch möglicherweise keine CDC Mechanismen verfügbar. VSAM Für diese Dateien ist ein alternativer Ansatz zur Modernisierung der Daten erforderlich.
Dieses Muster beschreibt, wie EBCDIC Daten modernisiert werden, indem sie in ein Format konvertiert werden. ASCII Nach der Konvertierung können Sie die Daten in verteilte Datenbanken laden oder Anwendungen in der Cloud die Daten direkt verarbeiten lassen. Das Muster verwendet das Konvertierungsskript und die Beispieldateien im mainframe-data-utilities
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives AWS-Konto.
Eine EBCDIC Eingabedatei und das dazugehörige Copybook für die allgemeine geschäftsorientierte Sprache (COBOL). Eine EBCDIC Beispieldatei und ein COBOL Copybook sind im Repository enthalten. mainframe-data-utilities
GitHub Weitere Informationen zu COBOL Copybooks finden Sie im Enterprise COBOL for z/OS 6.4 Programming Guide auf der Website . IBM
Einschränkungen
Innerhalb von COBOL Programmen definierte Dateilayouts werden nicht unterstützt. Sie müssen separat zur Verfügung gestellt werden.
Produktversionen
Python-Version 3.8 oder höher
Architektur
Quelltechnologie-Stack
EBCDICDaten auf einem Mainframe
COBOLKopierbuch
Zieltechnologie-Stack
Amazon Elastic Compute Cloud (AmazonEC2) -Instanz in einer virtuellen privaten Cloud (VPC)
Amazon Elastic Block Store (AmazonEBS)
Python und die erforderlichen Pakete, JavaScript Object Notation (JSON), sys und datetime
ASCIIflache Datei, die bereit ist, von einer modernen Anwendung gelesen oder in eine relationale Datenbanktabelle geladen zu werden
Zielarchitektur
Das Architekturdiagramm zeigt den Prozess der Konvertierung einer EBCDIC Datei in eine ASCII Datei auf einer EC2 Instanz:
Mithilfe des Skripts parse_copybook_to_json.py konvertieren Sie das COBOL Copybook in eine JSON Datei.
Mithilfe der JSON Datei und des Skripts extract_ebcdic_to_ascii.py konvertieren Sie die EBCDIC Daten in eine ASCII Datei.
Automatisierung und Skalierung
Sobald die für die ersten manuellen Dateikonvertierungen benötigten Ressourcen vorhanden sind, können Sie die Dateikonvertierung automatisieren. Dieses Muster enthält keine Anweisungen zur Automatisierung. Es gibt mehrere Möglichkeiten, die Konvertierung zu automatisieren. Im Folgenden finden Sie einen Überblick über einen möglichen Ansatz:
Kapseln Sie die AWS Befehlszeilenschnittstelle (AWSCLI) und die Python-Skriptbefehle in ein Shell-Skript.
Erstellen Sie eine AWS Lambda-Funktion, die den Shell-Skriptjob asynchron an eine Instanz weiterleitet. EC2 Weitere Informationen finden Sie unter SSHJobs mit AWS Lambda planen
. Erstellen Sie einen Amazon Simple Storage Service (Amazon S3) -Trigger, der die Lambda-Funktion jedes Mal aufruft, wenn eine Legacy-Datei hochgeladen wird. Weitere Informationen finden Sie unter Verwenden eines Amazon S3 S3-Triggers zum Aufrufen einer Lambda-Funktion.
Tools
AWSDienste
Amazon Elastic Compute Cloud (AmazonEC2) bietet skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server starten, wie Sie benötigen, und sie schnell nach oben oder unten skalieren.
Amazon Elastic Block Store (AmazonEBS) bietet Speichervolumes auf Blockebene zur Verwendung mit Amazon Elastic Compute Cloud (AmazonEC2) -Instances.
AWSCommand Line Interface (AWSCLI) ist ein Open-Source-Tool, mit dem Sie mithilfe von Befehlen in Ihrer Befehlszeilen-Shell mit AWS Diensten interagieren können.
AWSIdentity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
Andere Tools
Code-Repository
Der Code für dieses Muster ist im mainframe-data-utilities
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Starten einer EC2-Instance | Die EC2 Instanz muss über ausgehenden Internetzugang verfügen. Dadurch kann die Instanz auf den Python-Quellcode zugreifen, der auf verfügbar ist GitHub. Um die Instanz zu erstellen:
| Allgemein AWS |
Installieren Sie Git. |
| AllgemeinAWS, Linux |
Installieren Sie Python. |
| AllgemeinAWS, Linux |
Klonen Sie das GitHub Repository. |
| AllgemeinAWS, GitHub |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Analysieren Sie das COBOL Copybook in die JSON Layoutdatei. | Führen Sie innerhalb des Der folgende Befehl konvertiert das COBOL Copybook in eine JSON Datei.
Das Skript druckt die empfangenen Argumente aus.
Weitere Informationen zu den Argumenten finden Sie in der READMEDatei | AllgemeinAWS, Linux |
Untersuchen Sie die JSON Layoutdatei. |
Die wichtigsten Attribute der JSON Layoutdatei sind:
Weitere Informationen zur JSON Layout-Datei finden Sie in der READMEDatei | AllgemeinAWS, JSON |
Erstellen Sie die Datei ASCII. | Führen Sie das Skript extract_ebcdic_to_ascii.py aus, das im geklonten GitHub Repository enthalten ist. Dieses Skript liest die EBCDIC Datei und schreibt eine konvertierte und lesbare ASCII Datei.
Während das Skript die EBCDIC Daten verarbeitet, druckt es für jeden Stapel von 10.000 Datensätzen eine Nachricht. Sehen Sie sich das folgende -Beispiel an.
Informationen zum Ändern der Druckfrequenz finden Sie in der READMEDatei | Allgemein AWS |
Untersuchen Sie die ASCII Datei. |
Wenn Sie die bereitgestellte EBCDIC Beispieldatei verwendet haben, ist der folgende Datensatz der erste Datensatz in der ASCII Datei.
| AllgemeinAWS, Linux |
Evaluieren Sie die EBCDIC Datei. | Geben Sie in der EC2 Amazon-Konsole den folgenden Befehl ein. Dadurch wird der erste Datensatz der EBCDIC Datei geöffnet.
Wenn Sie die EBCDIC Beispieldatei verwendet haben, ist das Ergebnis wie folgt.
Um die Gleichwertigkeit zwischen den Quell- und Zieldateien zu bewerten, sind umfassende Kenntnisse von EBCDIC erforderlich. Das erste Zeichen der EBCDIC Beispieldatei ist beispielsweise ein Bindestrich () | AllgemeinAWS, Linux, EBCDIC |
Zugehörige Ressourcen
Referenzen
Der EBCDIC Zeichensatz
(IBMDokumentation) EBCDICzu ASCII
(IBMDokumentation) COBOL
(IBMDokumentation) JCLGrundbegriffe
(IBMDokumentation) Connect zu Ihrer Linux-Instance her (EC2Amazon-Dokumentation)
Tutorials
SSHJobs mit AWS Lambda planen
(AWSBlogbeitrag) Verwenden eines Amazon S3 S3-Triggers zum Aufrufen einer Lambda-Funktion (AWSLambda-Dokumentation)