

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
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files"></a>

*Bruno Sahinoglu, Abhijit Kshirsagar, dan Ivan Schuster, Amazon Web Services*

## Ringkasan
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-summary"></a>

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](https://github.com/aws-samples/unloaddb2-samples) telah dikembangkan untuk membantu menghasilkan bahasa kontrol pekerjaan (JCLs) untuk membongkar dan mentransfer tabel Db2 sebanyak yang Anda butuhkan.

## Prasyarat dan batasan
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-prereqs"></a>

**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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) 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](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) 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
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-architecture"></a>

**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.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/87b13e0d-0be9-4462-bdbf-67342334416c.png)


1. Daftar tabel dipilih untuk migrasi data dari katalog Db2.

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

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

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

1. 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.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/d72f2572-10c9-43f9-b6c9-7e57c9a69d52.png)


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.

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

1. 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
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-tools"></a>

**Layanan AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) adalah layanan kueri interaktif yang membantu Anda menganalisis data secara langsung di Amazon Simple Storage Service (Amazon S3) dengan menggunakan SQL standar.
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) adalah mesin database relasional yang dikelola sepenuhnya yang dibangun untuk cloud dan kompatibel dengan MySQL dan PostgreSQL.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) 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](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) adalah layanan intelijen bisnis skala cloud (BI) yang membantu Anda memvisualisasikan, menganalisis, dan melaporkan data Anda dalam satu dasbor.
+ [Amazon Redshift adalah layanan](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) gudang data skala petabyte terkelola di AWS Cloud.
+ [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) membantu Anda menyiapkan, mengoperasikan, dan menskalakan database relasional di AWS Cloud.
+ [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) adalah layanan transfer aman yang memungkinkan Anda mentransfer file masuk dan keluar dari layanan penyimpanan AWS.

**Alat mainframe**
+ [SSH File Transfer Protocol (SFTP)](https://www.ssh.com/academy/ssh/sftp-ssh-file-transfer-protocol) 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](https://www.ibm.com/docs/en/db2-for-zos/11?topic=dpasp-dsntiaul-sample-program) adalah program sampel yang disediakan oleh IBM untuk membongkar data.
+ [DSNUTILB](https://www.ibm.com/docs/en/db2-for-zos/11?topic=sharing-recommendations-utilities-in-coexistence) adalah program batch utilitas yang disediakan oleh IBM untuk membongkar data dengan opsi berbeda dari DSNTIAUL.
+ [z/OS OpenSSH adalah port dari Open Source](https://www.ibm.com/docs/en/zos/2.4.0?topic=zbed-zos-openssh) 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)](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-learning-rexx-language) digunakan untuk mengotomatiskan pembuatan JCL dengan langkah-langkah Db2 Unload dan SFTP.

**Kode**

Kode untuk pola ini tersedia di repositori GitHub [unloaddb2](https://github.com/aws-samples/unloaddb2-samples).

## Praktik terbaik
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-best-practices"></a>

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](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html)) 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
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-epics"></a>

### Siapkan ember S3
<a name="set-up-the-s3-bucket"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat ember S3. | Untuk petunjuk, lihat [Membuat bucket S3 pertama Anda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). | AWS Umum | 

### Mengatur server Transfer Family
<a name="set-up-the-transfer-family-server"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat server berkemampuan SFTP. | Untuk membuka dan membuat server SFTP di [konsol AWS Transfer Family](https://console.aws.amazon.com/transfer/), lakukan hal berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | 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](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html).  | Administrator AWS | 
| Tambahkan pengguna yang dikelola layanan Amazon S3. | Untuk menambahkan pengguna yang dikelola layanan Amazon S3, ikuti petunjuk dalam [dokumentasi AWS](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html#add-s3-user), dan gunakan ID pengguna mainframe Anda. | AWS Umum | 

### Amankan protokol komunikasi
<a name="secure-the-communication-protocol"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat kunci SSH. | Di bawah lingkungan USS mainframe Anda, jalankan perintah berikut.<pre>ssh-keygen -t rsa</pre>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.<pre>chmod 644 .ssh/id_rsa<br />chmod 700 .ssh</pre> | 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](https://console.aws.amazon.com/transfer/).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Pengembang mainframe | 

### Menghasilkan JCLs
<a name="generate-the-jcls"></a>


| 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Pekerjaan ekstraksi daftar tabel Db2**<pre><Jobcard><br />//* <br />//* UNLOAD ALL THE TABLE NAMES FOR A PARTICULAR SCHEMA<br />//* <br />//STEP01  EXEC PGM=IEFBR14<br />//* <br />//DD1      DD  DISP=(MOD,DELETE,DELETE),<br />//         UNIT=SYSDA,<br />//         SPACE=(1000,(1,1)),<br />//         DSN=<HLQ1>.DSN81210.TABLIST<br />//* <br />//DD2      DD  DISP=(MOD,DELETE,DELETE),<br />//         UNIT=SYSDA,<br />//         SPACE=(1000,(1,1)),<br />//         DSN=<HLQ1>.DSN81210.SYSPUNCH <br />//* <br />//UNLOAD  EXEC PGM=IKJEFT01,DYNAMNBR=20 <br />//SYSTSPRT DD  SYSOUT=* <br />//STEPLIB  DD  DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT<br />//         DD  DISP=SHR,DSN=DSNC10.SDSNLOAD<br />//         DD  DISP=SHR,DSN=CEE.SCEERUN <br />//         DD  DISP=SHR,DSN=DSNC10.DBCG.RUNLIB.LOAD <br />//SYSTSIN  DD  *<br />  DSN SYSTEM(DBCG) <br />  RUN  PROGRAM(DSNTIAUL) PLAN(DSNTIB12) PARMS('SQL') - <br />       LIB('DSNC10.DBCG.RUNLIB.LOAD')<br />  END<br />//SYSPRINT DD SYSOUT=*<br />//* <br />//SYSUDUMP DD SYSOUT=*<br />//* <br />//SYSREC00 DD DISP=(NEW,CATLG,DELETE),<br />//            UNIT=SYSDA,SPACE=(32760,(1000,500)),<br />//            DSN=<HLQ1>.DSN81210.TABLIST <br />//* <br />//SYSPUNCH DD DISP=(NEW,CATLG,DELETE), <br />//            UNIT=SYSDA,SPACE=(32760,(1000,500)),<br />//            VOL=SER=SCR03,RECFM=FB,LRECL=120,BLKSIZE=12 <br />//            DSN=<HLQ1>.DSN81210.SYSPUNCH <br />//* <br />//SYSIN    DD * <br />   SELECT CHAR(CREATOR), CHAR(NAME)<br />     FROM SYSIBM.SYSTABLES <br />    WHERE OWNER = '<Schema>' <br />      AND NAME LIKE '<Prefix>%' <br />      AND TYPE = 'T'; <br />/* </pre> | 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`SYS1`, 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Bongkar dan kerangka SFTP JCL**<pre>//&USRPFX.U JOB (DB2UNLOAD),'JOB',CLASS=A,MSGCLASS=A, <br />//         TIME=1440,NOTIFY=&USRPFX<br />//* DELETE DATASETS<br />//STEP01   EXEC PGM=IEFBR14<br />//DD01     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//DD02     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//*<br />//* RUNNING DB2 EXTRACTION BATCH JOB FOR AWS DEMO<br />//*<br />//UNLD01   EXEC PGM=DSNUTILB,REGION=0M,<br />// PARM='<DSN>,UNLOAD'<br />//STEPLIB  DD  DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT<br />//         DD  DISP=SHR,DSN=DSNC10.SDSNLOAD<br />//SYSPRINT DD  SYSOUT=*<br />//UTPRINT  DD  SYSOUT=*<br />//SYSOUT   DD  SYSOUT=*<br />//SYSPUN01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(1,1),RLSE),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//SYSREC01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(10,50),RLSE),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//SYSPRINT DD SYSOUT=*<br />//SYSIN    DD *<br />  UNLOAD<br />  DELIMITED COLDEL ','<br />  FROM TABLE &TABNAME<br />  UNLDDN SYSREC01<br />  PUNCHDDN SYSPUN01<br />  SHRLEVEL CHANGE ISOLATION UR;<br /> /*<br />//*<br />//* FTP TO AMAZON S3 BACKED FTP SERVER IF UNLOAD WAS SUCCESSFUL<br />//*<br />//SFTP EXEC PGM=BPXBATCH,COND=(4,LE),REGION=0M<br />//STDPARM DD *<br /> SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'"<br />   &TABNAME..csv;<br /> echo "ascii             " >> uplcmd;<br /> echo "PUT &TABNAME..csv " >>>> uplcmd;<br /> sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTPSITE;<br /> rm &TABNAME..csv;<br /> //SYSPRINT DD SYSOUT=*<br /> //STDOUT DD SYSOUT=*<br /> //STDENV DD *<br /> //STDERR DD SYSOUT=*                                                </pre>  | 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`TABLIST 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):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Pekerjaan generasi JCL massal**<pre>//RUNREXX JOB (CREATEJCL),'RUNS ISPF TABLIST',CLASS=A,MSGCLASS=A,      <br />//         TIME=1440,NOTIFY=&SYSUID<br />//* Most of the values required can be updated to your site specific<br />//* values using the command 'TSO ISRDDN' in your ISPF session. <br />//* Update all the lines tagged with //update marker to desired<br />//* site specific values. <br />//ISPF EXEC PGM=IKJEFT01,REGION=2048K,DYNAMNBR=25<br />//SYSPROC   DD DISP=SHR,DSN=USER.Z23D.CLIST<br />//SYSEXEC   DD DISP=SHR,DSN=<HLQ1>.TEST.REXXLIB<br />//ISPPLIB   DD DISP=SHR,DSN=ISP.SISPPENU<br />//ISPSLIB   DD DISP=SHR,DSN=ISP.SISPSENU<br />//          DD DISP=SHR,DSN=<HLQ1>.TEST.ISPSLIB<br />//ISPMLIB   DD DSN=ISP.SISPMENU,DISP=SHR<br />//ISPTLIB   DD DDNAME=ISPTABL<br />//          DD DSN=ISP.SISPTENU,DISP=SHR<br />//ISPTABL   DD LIKE=ISP.SISPTENU,UNIT=VIO<br />//ISPPROF   DD LIKE=ISP.SISPTENU,UNIT=VIO<br />//ISPLOG    DD SYSOUT=*,RECFM=VA,LRECL=125<br />//SYSPRINT  DD SYSOUT=*<br />//SYSTSPRT  DD SYSOUT=*<br />//SYSUDUMP  DD SYSOUT=*<br />//SYSDBOUT  DD SYSOUT=*<br />//SYSTSPRT  DD SYSOUT=*<br />//SYSUDUMP  DD SYSOUT=*<br />//SYSDBOUT  DD SYSOUT=*<br />//SYSHELP   DD DSN=SYS1.HELP,DISP=SHR <br />//SYSOUT    DD SYSOUT=*<br />//* Input list of tablenames<br />//TABLIST   DD DISP=SHR,DSN=<HLQ1>.DSN81210.TABLIST<br />//* Output pds<br />//ISPFILE   DD DISP=SHR,DSN=<HLQ1>.TEST.JOBGEN<br />//SYSTSIN   DD *<br />ISPSTART CMD(ZSTEPS <MFUSER> <FTPUSER> <AWS TransferFamily IP>)<br />/*</pre>Sebelum Anda menggunakan skrip REXX, buat perubahan berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Skrip ZSTEPS REXX**<pre>/*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */<br />/* 10/27/2021 - added new parms to accommodate ftp */<br />Trace "o" <br />    parse arg usrpfx ftpuser ftpsite<br />    Say "Start"<br />    Say "Ftpuser: " ftpuser "Ftpsite:" ftpsite<br />    Say "Reading table name list"<br />    "EXECIO * DISKR TABLIST (STEM LINE. FINIS"<br />    DO I = 1 TO LINE.0<br />      Say I<br />      suffix = I<br />      Say LINE.i<br />      Parse var LINE.i schema table rest<br />      tabname = schema !! "." !! table<br />      Say tabname<br />      tempjob= "LOD" !! RIGHT("0000" !! i, 5) <br />      jobname=tempjob<br />      Say tempjob<br />      ADDRESS ISPEXEC "FTOPEN "<br />      ADDRESS ISPEXEC "FTINCL UNLDSKEL"<br />      /* member will be saved in ISPDSN library allocated in JCL */<br />      ADDRESS ISPEXEC "FTCLOSE NAME("tempjob")"<br />    END<br /><br />    ADDRESS TSO "FREE F(TABLIST) "<br />    ADDRESS TSO "FREE F(ISPFILE) "<br /><br />exit 0</pre> | Pengembang mainframe | 

### Jalankan JCLs
<a name="run-the-jcls"></a>


| 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`DELIMITED`.`DELIMITED`Parameter 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.<pre>                            <br /> UNLOAD<br /> DELIMITED COLDEL ',' <br /> FROM TABLE SCHEMA_NAME.TBNAME<br /> UNLDDN SYSREC01<br /> PUNCHDDN SYSPUN01<br /> SHRLEVEL CHANGE ISOLATION UR;</pre> | 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.<pre>SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'"<br />   &TABNAME..csv;<br /> echo "ascii             " >> uplcmd;<br /> echo "PUT &TABNAME..csv " >>>> uplcmd;<br /> sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTP_TF_SITE;<br /> rm &TABNAME..csv; </pre> | 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
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-resources"></a>

Untuk informasi selengkapnya tentang berbagai alat dan solusi yang digunakan dalam dokumen ini, lihat berikut ini:
+ [Panduan Pengguna z/OS OpenSSH](https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc276806/$file/foto100_v2r4.pdf)
+ [Db2 z/OS - Contoh pernyataan kontrol UNLOAD](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-sample-control-statements)
+ [Db2 z/OS - Membongkar file yang dibatasi](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-unloading-delimited-files)
+ [Transfer Family - Buat server berkemampuan SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html)
+ [Transfer Family — Bekerja dengan pengguna yang dikelola layanan](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html)

## Informasi tambahan
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-additional"></a>

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](https://aws.amazon.com/products/storage/data-lake-storage/), dan ekstrak wawasan berharga dengan menggunakan query-in-place, analitik, dan alat pembelajaran mesin tanpa memindahkan data.
+ Memulai fungsi [Lambda](https://aws.amazon.com/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](https://aws.amazon.com/free/database/?trk=ps_a134p000007CdNEAA0&trkCampaign=acq_paid_search_brand&sc_channel=PS&sc_campaign=acquisition_FR&sc_publisher=Google&sc_category=Database&sc_country=FR&sc_geo=EMEA&sc_outcome=acq&sc_detail=amazon%20relational%20database%20service&sc_content=Relational%20Database_e&sc_matchtype=e&sc_segment=548727697660&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Database|Solution|FR|EN|Text&s_kwcid=AL!4422!3!548727697660!e!!g!!amazon%20relational%20database%20service&ef_id=CjwKCAjwzt6LBhBeEiwAbPGOgcGbQIl1-QsbHfWTgMZSSHEXzSG377R9ZyK3tCcbnHuT45L230FufxoCeEkQAvD_BwE:G:s&s_kwcid=AL!4422!3!548727697660!e!!g!!amazon%20relational%20database%20service) menggunakan AWS [Glue](https://aws.amazon.com/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.