Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Transfer z/OS data Db2 skala besar ke Amazon S3 dalam file CSV
Bruno Sahinoglu, Abhijit Kshirsagar, dan Ivan Schuster, Amazon Web Services
Ringkasan
Mainframe masih merupakan sistem catatan di banyak perusahaan, yang berisi sejumlah besar data termasuk entitas data induk dengan catatan transaksi bisnis saat ini serta historis. Hal ini sering tersilo dan tidak mudah diakses oleh sistem terdistribusi dalam perusahaan yang sama. Dengan munculnya teknologi cloud dan demokratisasi big data, perusahaan tertarik untuk menggunakan wawasan yang tersembunyi dalam data mainframe untuk mengembangkan kemampuan bisnis baru.
Dengan tujuan itu, perusahaan ingin membuka data Db2 mainframe mereka ke lingkungan Amazon Web Services (AWS) Cloud mereka. Alasan bisnisnya banyak dan metode transfer berbeda dari kasus ke kasus. Anda mungkin lebih suka menghubungkan aplikasi Anda langsung ke mainframe, atau Anda mungkin lebih suka mereplikasi data Anda dalam waktu dekat. Jika kasus penggunaannya adalah untuk memberi makan gudang data atau data lake, memiliki up-to-date salinan tidak lagi menjadi perhatian, dan prosedur yang dijelaskan dalam pola ini mungkin cukup, terutama jika Anda ingin menghindari biaya lisensi produk pihak ketiga. Kasus penggunaan lain mungkin transfer data mainframe untuk proyek migrasi. Dalam skenario migrasi, data diperlukan untuk melakukan pengujian kesetaraan fungsional. Pendekatan yang dijelaskan dalam posting ini adalah cara yang hemat biaya untuk mentransfer data Db2 ke lingkungan AWS Cloud.
Karena Amazon Simple Storage Service (Amazon S3) adalah salah satu layanan AWS yang paling terintegrasi, Anda dapat mengakses data dari sana dan mengumpulkan wawasan secara langsung dengan menggunakan layanan AWS lainnya seperti Amazon Athena, fungsi AWS Lambda, atau Amazon. QuickSight Anda juga dapat memuat data ke Amazon Aurora atau Amazon DynamoDB dengan menggunakan AWS Glue atau AWS Database Migration Service (AWS DMS). Dengan tujuan itu, ini menjelaskan cara membongkar data Db2 dalam file CSV dalam format ASCII pada mainframe dan mentransfer file ke Amazon S3.
Untuk tujuan ini, skrip mainframe
Prasyarat dan batasan
Prasyarat
Pengguna sistem z/OS operasi IBM dengan otorisasi untuk menjalankan restrukturisasi Extended Execuutor (REXX) dan skrip JCL.
Akses ke z/OS Unix System Services (USS) untuk menghasilkan kunci pribadi dan publik SSH (Secure Shell).
Bucket S3 yang bisa ditulis. Untuk informasi selengkapnya, lihat Membuat bucket S3 pertama Anda di dokumentasi Amazon S3.
Server berkemampuan AWS Transfer Family SSH File Transfer Protocol (SFTP) menggunakan Layanan yang dikelola sebagai penyedia identitas dan Amazon S3 sebagai layanan penyimpanan AWS. Untuk informasi selengkapnya, lihat Membuat server berkemampuan SFTP dalam dokumentasi AWS Transfer Family.
Batasan
Pendekatan ini tidak cocok untuk sinkronisasi data hampir real-time atau real-time.
Data hanya dapat dipindahkan dari Db2 z/OS ke Amazon S3, bukan sebaliknya.
Arsitektur
Tumpukan teknologi sumber
Mainframe menjalankan Db2 pada z/OS
Tumpukan teknologi target
AWS Transfer Family
Amazon S3
Amazon Athena
Amazon QuickSight
AWS Glue
Amazon Relational Database Service (Amazon RDS)
Amazon Aurora
Amazon Redshift
Arsitektur sumber dan target
Diagram berikut menunjukkan proses untuk menghasilkan, mengekstraksi, dan mentransfer z/OS data Db2 dalam format ASCII CSV ke bucket S3.

Daftar tabel dipilih untuk migrasi data dari katalog Db2.
Daftar ini digunakan untuk mendorong pembuatan pekerjaan bongkar dengan kolom numerik dan data dalam format eksternal.
Data kemudian ditransfer ke Amazon S3 dengan menggunakan AWS Transfer Family.
Pekerjaan AWS Glue extract, transform, and load (ETL) dapat mengubah data dan memuatnya ke bucket yang diproses dalam format yang ditentukan, atau AWS Glue dapat memasukkan data langsung ke database.
Amazon Athena dan Amazon QuickSight dapat digunakan untuk menanyakan dan merender data untuk mendorong analitik.
Diagram berikut menunjukkan aliran logis dari seluruh proses.

JCL pertama, yang disebut TABNAME, akan menggunakan utilitas Db2 DSNTIAUL untuk mengekstrak dan menghasilkan daftar tabel yang Anda rencanakan untuk dibongkar dari Db2. Untuk memilih tabel Anda, Anda harus secara manual menyesuaikan input SQL untuk memilih dan menambahkan kriteria filter untuk menyertakan satu atau lebih skema Db2.
JCL kedua, yang disebut REXXEXEC, akan menggunakan kerangka JCL dan program REXX yang disediakan untuk memproses daftar Tabel yang dibuat oleh JCL TABNAME dan menghasilkan satu JCL per nama tabel. Setiap JCL akan berisi satu langkah untuk membongkar tabel dan langkah lain untuk mengirim file ke bucket S3 dengan menggunakan protokol SFTP.
Langkah terakhir terdiri dari menjalankan JCL untuk membongkar tabel dan mentransfer file ke AWS. Seluruh proses dapat diotomatisasi menggunakan penjadwal di tempat atau di AWS.
Alat
Layanan AWS
Amazon Athena adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon Simple Storage Service (Amazon S3) dengan menggunakan SQL standar.
Amazon Aurora adalah mesin database relasional yang dikelola sepenuhnya yang dibangun untuk cloud dan kompatibel dengan MySQL dan PostgreSQL.
AWS Glue adalah layanan ekstrak, transformasi, dan beban (ETL) yang dikelola sepenuhnya. Ini membantu Anda mengkategorikan, membersihkan, memperkaya, dan memindahkan data dengan andal antara penyimpanan data dan aliran data.
Amazon QuickSight adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor.
Amazon Redshift adalah layanan gudang data skala petabyte terkelola di AWS Cloud.
Amazon Relational Database Service (Amazon RDS) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di AWS Cloud.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
AWS Transfer Family adalah layanan transfer aman yang memungkinkan Anda mentransfer file masuk dan keluar dari layanan penyimpanan AWS.
Alat mainframe
SSH File Transfer Protocol (SFTP)
adalah protokol transfer file aman yang memungkinkan login jarak jauh ke dan transfer file antar server. SSH menyediakan keamanan dengan mengenkripsi semua lalu lintas. DSNTIAUL
adalah program sampel yang disediakan oleh IBM untuk membongkar data. DSNUTILB
adalah program batch utilitas yang disediakan oleh IBM untuk membongkar data dengan opsi berbeda dari DSNTIAUL. z/OS OpenSSH adalah port dari Open Source
Software SSH yang berjalan pada Unix System Service di bawah jaringan sistem operasi IBM. z/OS. SSH is a secure, encrypted connection program between two computers running on a TCP/IP Ini menyediakan beberapa utilitas, termasuk ssh-keygen. Skrip REXX (Restructured Extended Execuutor)
digunakan untuk mengotomatiskan pembuatan JCL dengan langkah-langkah Db2 Unload dan SFTP.
Kode
Kode untuk pola ini tersedia di repositori GitHub unloaddb2
Praktik terbaik
Untuk pembongkaran pertama, yang dihasilkan JCLs harus membongkar seluruh data tabel.
Setelah pembongkaran penuh pertama, lakukan pembongkaran tambahan untuk kinerja dan penghematan biaya yang lebih baik. pdate kueri SQL di dek JCL template untuk mengakomodasi perubahan apa pun pada proses pembongkaran.
Anda dapat mengonversi skema secara manual atau dengan menggunakan skrip di Lambda dengan Db2 SYSBUNCH sebagai masukan. Untuk proses industri, AWS Schema Conversion Tool (SCT) adalah opsi yang lebih disukai.
Terakhir, gunakan penjadwal berbasis mainframe atau penjadwal di AWS dengan agen di mainframe untuk membantu mengelola dan mengotomatiskan seluruh proses.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat ember S3. | Untuk petunjuk, lihat Membuat bucket S3 pertama Anda. | AWS Umum |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat server berkemampuan SFTP. | Untuk membuka dan membuat server SFTP di konsol AWS Transfer Family
| AWS Umum |
Buat peran IAM untuk Transfer Family. | Untuk membuat peran AWS Identity and Access Management (IAM) bagi Transfer Family untuk mengakses Amazon S3, ikuti petunjuk di Membuat peran dan kebijakan IAM. | Administrator AWS |
Tambahkan pengguna yang dikelola layanan Amazon S3. | Untuk menambahkan pengguna yang dikelola layanan Amazon S3, ikuti petunjuk dalam dokumentasi AWS, dan gunakan ID pengguna mainframe Anda. | AWS Umum |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat kunci SSH. | Di bawah lingkungan USS mainframe Anda, jalankan perintah berikut.
catatanSaat diminta untuk frasa sandi, biarkan kosong. | Pengembang mainframe |
Berikan tingkat otorisasi yang tepat ke folder SSH dan file kunci. | Secara default, kunci publik dan pribadi akan disimpan di direktori pengguna Anda harus memberikan otorisasi 644 ke file kunci dan 700 ke folder.
| Pengembang mainframe |
Salin konten kunci publik ke pengguna yang dikelola layanan Amazon S3 Anda. | Untuk menyalin konten kunci publik buatan AS, buka konsol AWS Transfer Family
| Pengembang mainframe |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Hasilkan daftar tabel Db2 dalam lingkup. | Berikan masukan SQL untuk membuat daftar tabel yang dicakup untuk migrasi data. Langkah ini mengharuskan Anda untuk menentukan kriteria pemilihan quering tabel katalog Db2 SYSIBM.SYSTABLES menggunakan klausa SQL where. Filter dapat disesuaikan untuk menyertakan skema atau nama tabel tertentu yang dimulai dengan awalan tertentu atau berdasarkan stempel waktu untuk pembongkaran tambahan. Output ditangkap dalam kumpulan data sekuensial fisik (PS) pada mainframe. Dataset ini akan bertindak sebagai input untuk fase berikutnya dari generasi JCL. Sebelum Anda menggunakan JCL TABNAME (Anda dapat mengganti namanya jika perlu), buat perubahan berikut:
Pekerjaan ekstraksi daftar tabel Db2
| Pengembang mainframe |
Ubah template JCL. | Template JCL yang disediakan dengan pola ini berisi kartu pekerjaan generik dan nama perpustakaan. Namun, sebagian besar situs mainframe akan memiliki standar penamaan sendiri untuk nama dataset, nama perpustakaan, dan kartu pekerjaan. Misalnya, kelas pekerjaan tertentu mungkin diperlukan untuk menjalankan pekerjaan Db2. Implementasi Job Entry Subsytem JES2 dan JES3 dapat memaksakan perubahan tambahan. Pustaka beban standar mungkin memiliki kualifikasi pertama yang berbeda dari Buat perubahan berikut pada kerangka JCL UNLDSKEL:
Bongkar dan kerangka SFTP JCL
| Pengembang mainframe |
Hasilkan Mass Unload JCL. | Langkah ini melibatkan menjalankan skrip REXX di bawah lingkungan ISPF dengan menggunakan JCL. Berikan daftar tabel dalam lingkup yang dibuat pada langkah pertama sebagai masukan untuk pembuatan JCL massal terhadap nama Buat perubahan berikut di JCL REXXEXEC (Anda dapat mengubah nama):
Pekerjaan generasi JCL massal
Sebelum Anda menggunakan skrip REXX, buat perubahan berikut:
Skrip ZSTEPS REXX
| Pengembang mainframe |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Lakukan langkah Bongkar Db2. | Setelah pembuatan JCL, Anda akan memiliki JCLs sebanyak mungkin tabel yang perlu dibongkar. Cerita ini menggunakan contoh yang dihasilkan JCL untuk menjelaskan struktur dan langkah-langkah terpenting. Tidak ada tindakan yang diperlukan di pihak Anda. Informasi berikut hanya untuk referensi. Jika niat Anda adalah mengirimkan JCLs yang telah Anda hasilkan pada langkah sebelumnya, lewati ke Kirim LODnnnnn JCLs tugas. Saat membongkar data Db2 menggunakan JCL dengan utilitas DSNUTILB Db2 yang disediakan IBM, Anda harus memastikan bahwa data yang dibongkar tidak mengandung data numerik terkompresi. Untuk mencapai ini, gunakan parameter DSNUTILB
Contoh berikut menunjukkan seperti apa langkah pembongkaran dalam JCL yang dihasilkan, menggunakan karakter koma sebagai pembatas.
| Pengembang mainframe, Insinyur sistem |
Lakukan langkah SFTP. | Untuk menggunakan protokol SFTP dari JCL, gunakan utilitas BPXBATCH. Utilitas SFTP tidak dapat mengakses kumpulan data MVS secara langsung. Anda dapat menggunakan perintah copy ( Jalankan
| Pengembang mainframe, Insinyur sistem |
Kirim LODnnnnn JCLs. | JCL sebelumnya telah menghasilkan semua tabel LODnnnnn JCL yang perlu dibongkar, diubah menjadi CSV, dan ditransfer ke bucket S3. Jalankan | Pengembang mainframe, Insinyur sistem |
Sumber daya terkait
Untuk informasi selengkapnya tentang berbagai alat dan solusi yang digunakan dalam dokumen ini, lihat berikut ini:
Informasi tambahan
Setelah Anda memiliki data Db2 di Amazon S3, Anda memiliki banyak cara untuk mengembangkan wawasan baru. Karena Amazon S3 terintegrasi dengan layanan analitik data AWS, Anda dapat dengan bebas mengkonsumsi atau mengekspos data ini di sisi terdistribusi. Misalnya, Anda dapat melakukan hal berikut:
Bangun data lake di Amazon S3
, dan ekstrak wawasan berharga dengan menggunakan query-in-place, analitik, dan alat pembelajaran mesin tanpa memindahkan data. Memulai fungsi Lambda
dengan menyiapkan alur kerja pemrosesan pasca-unggah yang terintegrasi dengan AWS Transfer Family. Kembangkan layanan mikro baru untuk mengakses data di Amazon S3 atau dalam database yang dikelola sepenuhnya dengan
menggunakan AWS Glue , yang merupakan layanan integrasi data tanpa server yang memudahkan untuk menemukan, menyiapkan, dan menggabungkan data untuk analitik, pembelajaran mesin, dan pengembangan aplikasi.
Dalam kasus penggunaan migrasi, karena Anda dapat mentransfer data apa pun dari mainframe ke S3, Anda dapat melakukan hal berikut:
Pensiun infrastruktur fisik, dan buat strategi pengarsipan data yang hemat biaya dengan Amazon S3 Glacier dan S3 Glacier Deep Archive.
Buat solusi pencadangan dan pemulihan yang dapat diskalakan, tahan lama, dan aman dengan Amazon S3 dan layanan AWS lainnya, seperti S3 Glacier dan Amazon Elastic File System (Amazon EFS), untuk menambah atau mengganti kemampuan lokal yang ada.