Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengonversi dan membongkar data EBCDIC ke ASCII di AWS dengan menggunakan Python
Luis Gustavo Dantas, Amazon Web Services
Ringkasan
Karena mainframe biasanya meng-host data bisnis penting, memodernisasi data adalah salah satu tugas terpenting saat memigrasikan data ke Amazon Web Services (AWS) Cloud atau lingkungan American Standard Code for Information Interchange (ASCII) lainnya. Pada mainframe, data biasanya dikodekan dalam format Extended Binary-Coded Decimal Interchange Code (EBCDIC). Mengekspor database, Metode Akses Penyimpanan Virtual (VSAM), atau file datar umumnya menghasilkan file EBCDIC biner yang dikemas, yang lebih kompleks untuk dimigrasi. Solusi migrasi database yang paling umum digunakan adalah change data capture (CDC), yang, dalam banyak kasus, secara otomatis mengubah pengkodean data. Namun, mekanisme CDC mungkin tidak tersedia untuk database, VSAM, atau file datar ini. Untuk file-file ini, pendekatan alternatif diperlukan untuk memodernisasi data.
Pola ini menjelaskan cara memodernisasi data EBCDIC dengan mengubahnya menjadi format ASCII. Setelah konversi, Anda dapat memuat data ke database terdistribusi atau memiliki aplikasi di cloud memproses data secara langsung. Pola menggunakan skrip konversi dan file sampel dalam mainframe-data-utilities
Prasyarat dan batasan
Prasyarat
Akun AWS aktif.
File input EBCDIC dan copybook bahasa berorientasi bisnis umum (COBOL) yang sesuai. Contoh file EBCDIC dan copybook COBOL disertakan dalam repositori. mainframe-data-utilities
GitHub Untuk informasi lebih lanjut tentang copybook COBOL, lihat Enterprise COBOL untuk z/OS 6.4 Panduan Pemrograman di situs web IBM.
Batasan
Layout file yang didefinisikan di dalam program COBOL tidak didukung. Mereka harus tersedia secara terpisah.
Versi produk
Python versi 3.8 atau yang lebih baru
Arsitektur
Tumpukan teknologi sumber
Data EBCDIC pada mainframe
Copybook COBOL
Tumpukan teknologi target
Instans Amazon Elastic Compute Cloud (Amazon EC2) di cloud pribadi virtual (VPC)
Amazon Elastic Block Store (Amazon EBS)
Python dan paket yang diperlukan, JavaScript Object Notation (JSON), sys, dan datetime
File datar ASCII siap dibaca oleh aplikasi modern atau dimuat dalam tabel database relasional
Arsitektur target

Diagram arsitektur menunjukkan proses konversi file EBCDIC ke file ASCII pada sebuah instance: EC2
Menggunakan skrip parse_copybook_to_json.py, Anda mengonversi copybook COBOL ke file JSON.
Menggunakan file JSON dan skrip extract_ebcdic_to_ascii.py, Anda mengonversi data EBCDIC ke file ASCII.
Otomatisasi dan skala
Setelah sumber daya yang diperlukan untuk konversi file manual pertama tersedia, Anda dapat mengotomatiskan konversi file. Pola ini tidak termasuk instruksi untuk otomatisasi. Ada beberapa cara untuk mengotomatiskan konversi. Berikut ini adalah ikhtisar dari satu pendekatan yang mungkin:
Merangkum perintah AWS Command Line Interface (AWS CLI) dan perintah skrip Python ke dalam skrip shell.
Buat fungsi AWS Lambda yang secara asinkron mengirimkan tugas skrip shell ke dalam sebuah instance. EC2 Untuk informasi selengkapnya, lihat Menjadwalkan lowongan SSH menggunakan AWS Lambda
. Buat pemicu Amazon Simple Storage Service (Amazon S3) yang memanggil fungsi Lambda setiap kali file lama diunggah. Untuk informasi selengkapnya, lihat Menggunakan pemicu Amazon S3 untuk menjalankan fungsi Lambda.
Alat
Layanan AWS
Amazon Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas komputasi yang dapat diskalakan di AWS Cloud. Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan, dan dengan cepat meningkatkannya ke atas atau ke bawah.
Amazon Elastic Block Store (Amazon EBS) menyediakan volume penyimpanan tingkat blok untuk digunakan dengan instans Amazon Elastic Compute Cloud (Amazon). EC2
AWS Command Line Interface (AWS CLI) adalah alat sumber terbuka yang membantu Anda berinteraksi dengan layanan AWS melalui perintah di shell baris perintah Anda.
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
Alat lainnya
GitHub
adalah layanan hosting kode yang menyediakan alat kolaborasi dan kontrol versi. Python adalah bahasa
pemrograman tingkat tinggi.
Repositori kode
Kode untuk pola ini tersedia di mainframe-data-utilities
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Luncurkan sebuah EC2 instance. | EC2 Instans harus memiliki akses internet keluar. Hal ini memungkinkan instance untuk mengakses kode sumber Python yang tersedia di. GitHub Untuk membuat instance:
| AWS Umum |
Instal Git. |
| AWS Umum, Linux |
Instal Python. |
| AWS Umum, Linux |
Kloning GitHub repositori. |
| AWS Umum, GitHub |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Parse copybook COBOL ke dalam file layout JSON. | Di dalam Perintah berikut mengkonversi copybook COBOL ke file JSON.
Script mencetak argumen yang diterima.
Untuk informasi selengkapnya tentang argumen, lihat file README | AWS Umum, Linux |
Periksa file tata letak JSON. |
Atribut yang paling penting dari file layout JSON adalah:
Untuk informasi selengkapnya tentang file tata letak JSON, lihat file README di repositori | AWS Umum, JSON |
Buat file ASCII. | Jalankan skrip extract_ebcdic_to_ascii.py, yang termasuk dalam GitHub repositori kloning. Skrip ini membaca file EBCDIC dan menulis file ASCII yang dikonversi dan dapat dibaca.
Saat skrip memproses data EBCDIC, ia mencetak pesan untuk setiap batch 10.000 catatan. Lihat contoh berikut ini.
Untuk informasi tentang cara mengubah frekuensi cetak, lihat file README | AWS Umum |
Periksa file ASCII. |
Jika Anda menggunakan contoh file EBCDIC yang disediakan, berikut ini adalah catatan pertama dalam file ASCII.
| AWS Umum, Linux |
Evaluasi file EBCDIC. | Di EC2 konsol Amazon, masukkan perintah berikut. Ini membuka catatan pertama dari file EBCDIC.
Jika Anda menggunakan contoh file EBCDIC, berikut ini adalah hasilnya.
Untuk mengevaluasi kesetaraan antara sumber dan file target, diperlukan pengetahuan komprehensif tentang EBCDIC. Misalnya, karakter pertama dari contoh file EBCDIC adalah tanda hubung (). | AWS Umum, Linux, EBCDIC |
Sumber daya terkait
Referensi
COBOL
(dokumentasi IBM) Konsep dasar JCL
(dokumentasi IBM) Connect ke instans Linux Anda ( EC2 dokumentasi Amazon)
Tutorial