Transfer z/OS data Db2 skala besar ke Amazon S3 dalam file CSV - AWS Prescriptive Guidance

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 telah dikembangkan untuk membantu menghasilkan bahasa kontrol pekerjaan (JCLs) untuk membongkar dan mentransfer tabel Db2 sebanyak yang Anda butuhkan.

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.

Data flow from corporate data center to AWS Cloud, showing mainframe extraction and cloud processing steps.
  1. Daftar tabel dipilih untuk migrasi data dari katalog Db2.

  2. Daftar ini digunakan untuk mendorong pembuatan pekerjaan bongkar dengan kolom numerik dan data dalam format eksternal.

  3. Data kemudian ditransfer ke Amazon S3 dengan menggunakan AWS Transfer Family.

  4. 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.

  5. Amazon Athena dan Amazon QuickSight dapat digunakan untuk menanyakan dan merender data untuk mendorong analitik.

Diagram berikut menunjukkan aliran logis dari seluruh proses.

Flowchart showing JCL process with TABNAME, REXXEXEC, and JCL decks steps, including inputs and outputs.
  1. 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.

  2. 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.

  3. 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

TugasDeskripsiKeterampilan yang dibutuhkan

Buat ember S3.

Untuk petunjuk, lihat Membuat bucket S3 pertama Anda.

AWS Umum
TugasDeskripsiKeterampilan yang dibutuhkan

Buat server berkemampuan SFTP.

Untuk membuka dan membuat server SFTP di konsol AWS Transfer Family, lakukan hal berikut:

  1. Pada halaman Pilih protokol, pilih kotak centang SFTP (SSH File Transfer Protocol) — transfer file melalui Secure Shell.

  2. Untuk penyedia identitas, pilih Layanan dikelola.

  3. Untuk endpoint, pilih Publicly accessible.

  4. Untuk domain, pilih Amazon S3.

  5. Pada halaman Konfigurasi detail tambahan, pertahankan pengaturan default.

  6. Buat server.

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
TugasDeskripsiKeterampilan yang dibutuhkan

Buat kunci SSH.

Di bawah lingkungan USS mainframe Anda, jalankan perintah berikut.

ssh-keygen -t rsa
catatan

Saat 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/u/home/username/.ssh.

Anda harus memberikan otorisasi 644 ke file kunci dan 700 ke folder.

chmod 644 .ssh/id_rsa chmod 700 .ssh
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.

  1. Di panel navigasi, pilih Server.

  2. Pilih pengenal di kolom ID Server untuk melihat detail Server

  3. Di bawah Pengguna, pilih nama pengguna untuk melihat detail Pengguna

  4. Di bawah kunci publik SSH, pilih Tambahkan kunci publik SSH untuk menambahkan kunci publik ke pengguna. Untuk kunci publik SSH, masukkan kunci publik Anda. Kunci Anda divalidasi oleh layanan sebelum Anda dapat menambahkan pengguna baru Anda.

  5. Pilih Tambah kunci.

Pengembang mainframe
TugasDeskripsiKeterampilan 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:

  1. Gantikan <Jobcard>dengan kelas pekerjaan dan pengguna yang berwenang untuk menjalankan utilitas Db2.

  2. Gantikan < HLQ1 > atau sesuaikan nama dataset keluaran untuk memenuhi standar situs Anda.

  3. Perbarui tumpukan STEPLIB PDSEs (kumpulan data yang dipartisi diperpanjang) sesuai dengan standar situs Anda. Contoh dalam pola ini menggunakan default IBM.

  4. Ganti nama PLAN dan LIB dengan nilai khusus instalasi Anda.

  5. Gantikan <Schema>dan <Prefix>dengan kriteria pilihan Anda untuk katalog Db2.

  6. Simpan JCL yang dihasilkan di pustaka PDS (kumpulan data yang dipartisi).

  7. Kirim JCL.

Pekerjaan ekstraksi daftar tabel Db2

<Jobcard> //* //* UNLOAD ALL THE TABLE NAMES FOR A PARTICULAR SCHEMA //* //STEP01 EXEC PGM=IEFBR14 //* //DD1 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(1000,(1,1)), // DSN=<HLQ1>.DSN81210.TABLIST //* //DD2 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(1000,(1,1)), // DSN=<HLQ1>.DSN81210.SYSPUNCH //* //UNLOAD EXEC PGM=IKJEFT01,DYNAMNBR=20 //SYSTSPRT DD SYSOUT=* //STEPLIB DD DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT // DD DISP=SHR,DSN=DSNC10.SDSNLOAD // DD DISP=SHR,DSN=CEE.SCEERUN // DD DISP=SHR,DSN=DSNC10.DBCG.RUNLIB.LOAD //SYSTSIN DD * DSN SYSTEM(DBCG) RUN PROGRAM(DSNTIAUL) PLAN(DSNTIB12) PARMS('SQL') - LIB('DSNC10.DBCG.RUNLIB.LOAD') END //SYSPRINT DD SYSOUT=* //* //SYSUDUMP DD SYSOUT=* //* //SYSREC00 DD DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(32760,(1000,500)), // DSN=<HLQ1>.DSN81210.TABLIST //* //SYSPUNCH DD DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(32760,(1000,500)), // VOL=SER=SCR03,RECFM=FB,LRECL=120,BLKSIZE=12 // DSN=<HLQ1>.DSN81210.SYSPUNCH //* //SYSIN DD * SELECT CHAR(CREATOR), CHAR(NAME) FROM SYSIBM.SYSTABLES WHERE OWNER = '<Schema>' AND NAME LIKE '<Prefix>%' AND TYPE = 'T'; /*
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 dariSYS1, yang merupakan default IBM. Oleh karena itu, sesuaikan template untuk memperhitungkan standar spesifik situs Anda sebelum Anda menjalankannya.

Buat perubahan berikut pada kerangka JCL UNLDSKEL:

  1. Ubah kartu pekerjaan dengan kelas pekerjaan dan pengguna yang berwenang untuk menjalankan utilitas Db2.

  2. Kustomisasi nama dataset keluaran untuk memenuhi standar situs Anda.

  3. Perbarui tumpukan STEPLIB PDSEs sesuai dengan standar situs Anda. Contoh dalam pola ini menggunakan default IBM.

  4. Gantikan <DSN> dengan nama subsistem Db2 dan ID korelasi Anda.

  5. Simpan JCL yang dihasilkan di pustaka PDS yang merupakan bagian dari tumpukan ISPSLIB Anda, yang merupakan pustaka template kerangka standar untuk ISPF.

Bongkar dan kerangka SFTP JCL

//&USRPFX.U JOB (DB2UNLOAD),'JOB',CLASS=A,MSGCLASS=A, // TIME=1440,NOTIFY=&USRPFX //* DELETE DATASETS //STEP01 EXEC PGM=IEFBR14 //DD01 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(TRK,(1,1)), // DSN=&USRPFX..DB2.PUNCH.&JOBNAME //DD02 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(TRK,(1,1)), // DSN=&USRPFX..DB2.UNLOAD.&JOBNAME //* //* RUNNING DB2 EXTRACTION BATCH JOB FOR AWS DEMO //* //UNLD01 EXEC PGM=DSNUTILB,REGION=0M, // PARM='<DSN>,UNLOAD' //STEPLIB DD DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT // DD DISP=SHR,DSN=DSNC10.SDSNLOAD //SYSPRINT DD SYSOUT=* //UTPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSPUN01 DD DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(1,1),RLSE), // DSN=&USRPFX..DB2.PUNCH.&JOBNAME //SYSREC01 DD DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,50),RLSE), // DSN=&USRPFX..DB2.UNLOAD.&JOBNAME //SYSPRINT DD SYSOUT=* //SYSIN DD * UNLOAD DELIMITED COLDEL ',' FROM TABLE &TABNAME UNLDDN SYSREC01 PUNCHDDN SYSPUN01 SHRLEVEL CHANGE ISOLATION UR; /* //* //* FTP TO AMAZON S3 BACKED FTP SERVER IF UNLOAD WAS SUCCESSFUL //* //SFTP EXEC PGM=BPXBATCH,COND=(4,LE),REGION=0M //STDPARM DD * SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'" &TABNAME..csv; echo "ascii " >> uplcmd; echo "PUT &TABNAME..csv " >>>> uplcmd; sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTPSITE; rm &TABNAME..csv; //SYSPRINT DD SYSOUT=* //STDOUT DD SYSOUT=* //STDENV DD * //STDERR DD SYSOUT=*

 

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 namaTABLIST DD. JCL akan menghasilkan satu JCL baru per nama tabel dalam kumpulan data partisi yang ditentukan pengguna yang ditentukan terhadap nama tersebut. ISPFILE DD Alokasikan perpustakaan ini sebelumnya. Setiap JCL baru akan memiliki dua langkah: satu langkah untuk membongkar tabel Db2 ke dalam file, dan satu langkah untuk mengirim file ke ember S3.

Buat perubahan berikut di JCL REXXEXEC (Anda dapat mengubah nama):

  1. Gantikan Job card user ID dengan ID pengguna mainframe yang memiliki otoritas bongkar pada tabel. Ganti SYSPROCISPPLIB,ISPSLIB,,ISPMLIB,, dan ISPTLIB <HLQ1> nilai atau sesuaikan DSN untuk memenuhi standar situs Anda. Untuk mengetahui nilai khusus instalasi Anda, Anda menggunakan perintah. TSO ISRDDN

  2. Gantikan <MFUSER> dengan ID pengguna yang memiliki hak istimewa menjalankan pekerjaan di instalasi Anda.

  3. Gantikan <FTPUSER> dengan ID pengguna yang memiliki hak istimewa USS dan FTP dalam instalasi Anda.. Diasumsikan bahwa ID pengguna ini dan kunci keamanan SSH-nya ada di direktori Unix Systems Services yang sesuai pada mainframe.

  4. Gantikan <AWS TransferFamily IP> dengan alamat IP AWS Transfer Family atau nama domain. Alamat ini akan digunakan untuk langkah SFTP.

  5. Kirim JCL setelah menerapkan akomodasi standar situs dan memperbarui program REXX seperti yang dijelaskan di bawah ini.

Pekerjaan generasi JCL massal

//RUNREXX JOB (CREATEJCL),'RUNS ISPF TABLIST',CLASS=A,MSGCLASS=A, // TIME=1440,NOTIFY=&SYSUID //* Most of the values required can be updated to your site specific //* values using the command 'TSO ISRDDN' in your ISPF session. //* Update all the lines tagged with //update marker to desired //* site specific values. //ISPF EXEC PGM=IKJEFT01,REGION=2048K,DYNAMNBR=25 //SYSPROC DD DISP=SHR,DSN=USER.Z23D.CLIST //SYSEXEC DD DISP=SHR,DSN=<HLQ1>.TEST.REXXLIB //ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU //ISPSLIB DD DISP=SHR,DSN=ISP.SISPSENU // DD DISP=SHR,DSN=<HLQ1>.TEST.ISPSLIB //ISPMLIB DD DSN=ISP.SISPMENU,DISP=SHR //ISPTLIB DD DDNAME=ISPTABL // DD DSN=ISP.SISPTENU,DISP=SHR //ISPTABL DD LIKE=ISP.SISPTENU,UNIT=VIO //ISPPROF DD LIKE=ISP.SISPTENU,UNIT=VIO //ISPLOG DD SYSOUT=*,RECFM=VA,LRECL=125 //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSDBOUT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSDBOUT DD SYSOUT=* //SYSHELP DD DSN=SYS1.HELP,DISP=SHR //SYSOUT DD SYSOUT=* //* Input list of tablenames //TABLIST DD DISP=SHR,DSN=<HLQ1>.DSN81210.TABLIST //* Output pds //ISPFILE DD DISP=SHR,DSN=<HLQ1>.TEST.JOBGEN //SYSTSIN DD * ISPSTART CMD(ZSTEPS <MFUSER> <FTPUSER> <AWS TransferFamily IP>) /*

Sebelum Anda menggunakan skrip REXX, buat perubahan berikut:

  1. Simpan skrip REXX di pustaka PDS yang ditentukan di bawah SYSEXEC tumpukan di JCL REXXEXEC yang diedit pada langkah sebelumnya dengan ZSTEPS sebagai nama anggota. Jika Anda ingin mengganti namanya, Anda harus memperbarui JCL untuk mengakomodasi kebutuhan Anda.

  2. Skrip ini menggunakan opsi jejak untuk mencetak informasi tambahan jika ada kesalahan. Sebagai gantinya, Anda dapat menambahkan kode penanganan kesalahan setelah EXECIOISPEXEC,, dan TSO pernyataan, dan menghapus baris jejak.

  3. Skrip ini menghasilkan nama anggota dengan menggunakan konvensi LODnnnnn penamaan, yang dapat mendukung hingga 100.000 anggota. Jika Anda memiliki lebih dari 100.000 tabel, gunakan awalan yang lebih pendek, dan sesuaikan angka dalam tempjob pernyataan.

Skrip ZSTEPS REXX

/*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* 10/27/2021 - added new parms to accommodate ftp */ Trace "o" parse arg usrpfx ftpuser ftpsite Say "Start" Say "Ftpuser: " ftpuser "Ftpsite:" ftpsite Say "Reading table name list" "EXECIO * DISKR TABLIST (STEM LINE. FINIS" DO I = 1 TO LINE.0 Say I suffix = I Say LINE.i Parse var LINE.i schema table rest tabname = schema !! "." !! table Say tabname tempjob= "LOD" !! RIGHT("0000" !! i, 5) jobname=tempjob Say tempjob ADDRESS ISPEXEC "FTOPEN " ADDRESS ISPEXEC "FTINCL UNLDSKEL" /* member will be saved in ISPDSN library allocated in JCL */ ADDRESS ISPEXEC "FTCLOSE NAME("tempjob")" END ADDRESS TSO "FREE F(TABLIST) " ADDRESS TSO "FREE F(ISPFILE) " exit 0
Pengembang mainframe
TugasDeskripsiKeterampilan 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 DSNUTILBDELIMITED.

DELIMITEDParameter mendukung pembongkaran data dalam format CSV dengan menambahkan karakter sebagai pembatas dan tanda kutip ganda untuk bidang teks, menghapus padding di kolom VARCHAR, dan mengubah semua bidang numerik menjadi FORMAT EKSTERNAL, termasuk bidang DATE.

Contoh berikut menunjukkan seperti apa langkah pembongkaran dalam JCL yang dihasilkan, menggunakan karakter koma sebagai pembatas.

UNLOAD DELIMITED COLDEL ',' FROM TABLE SCHEMA_NAME.TBNAME UNLDDN SYSREC01 PUNCHDDN SYSPUN01 SHRLEVEL CHANGE ISOLATION UR;
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 (cp) untuk menyalin file sekuensial &USRPFX..DB2.UNLOAD.&JOBNAME ke direktori USS, di mana ia menjadi&TABNAME..csv.

Jalankan sftp perintah menggunakan kunci pribadi (id_rsa) dan gunakan ID pengguna RACF sebagai nama pengguna untuk terhubung ke alamat IP AWS Transfer Family.

SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'" &TABNAME..csv; echo "ascii " >> uplcmd; echo "PUT &TABNAME..csv " >>>> uplcmd; sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTP_TF_SITE; rm &TABNAME..csv;
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 submit perintah pada semua JCLs yang telah dihasilkan.

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.