Halaman ini menjelaskan cara melakukan transcoding data mainframe secara lokal di mainframe ke format yang didukung, lalu memindahkan konten ke Google Cloud.
Sebelum memulai
Instal Mainframe Connector ke set data yang dipartisi mainframe yang ingin Anda gunakan sebagai library prosedur (PROCLIB).
Perintah qsam dan vsam
Transcoding adalah proses mengonversi informasi dari satu bentuk representasi berkode ke bentuk lainnya. Mainframe Connector menyediakan perintah qsam dan vsam untuk melakukan transcoding data secara lokal di mainframe.
Perintah qsam decode dan vsam decode menggunakan copybook COBOL untuk mengonversi data set data mainframe menjadi format file seperti ORC, CSV, JSONL, atau AVRO, dan menulis output secara lokal atau ke bucket Cloud Storage.
Misalnya, Anda dapat mengonversi set data QSAM berenkode EBCDIC menjadi file ORC UTF-8. Untuk semua format output yang didukung, lihat
TranscodeFormat.
Perintah qsam encode melakukan hal sebaliknya: mengonversi data CSV, JSONL, ORC, atau AVRO, atau hasil kueri BigQuery, menjadi set data QSAM. Untuk semua format input yang didukung, lihat
TranscodeInputFormat.
Perintah ini memberikan kemampuan berikut:
- Dukungan untuk jenis data gabungan, termasuk klausa OCCURS (daftar), klausa REDEFINES, dan kumpulan data bertingkat. Untuk mengetahui informasi selengkapnya tentang jenis data ini, lihat
Referensi transcoding
qsamdanvsam. - Dukungan untuk konfigurasi proses transcoding melalui file konfigurasi transcoder. Kemampuan ini menawarkan fleksibilitas yang lebih besar saat mendekode data ke Google Cloud, dan mengenkode data kembali ke mainframe.
- Dukungan untuk pembuatan set data spillover, yang merupakan tabel error transcoding yang dapat digunakan untuk pemeriksaan error.
- Dukungan untuk beberapa format input dan output. Kemampuan ini memungkinkan Anda memuat data ke dan dari berbagai data warehouse.
Melakukan transcoding data mainframe secara lokal dan memindahkannya ke Google Cloud
Mainframe Connector memungkinkan Anda melakukan transcoding data secara lokal di mainframe, lalu memindahkannya ke Cloud Storage. Ikuti langkah-langkah berikut:
Buat tugas untuk membaca set data di mainframe Anda dan melakukan transcoding ke format ORC. Baca data dari set data
INFILE, dan tata letak data dari COPYBOOK DD.Anda dapat mengubah perilaku default proses transcoding Mainframe Connector dengan menyediakan file konfigurasi transcoder menggunakan argumen
--transcode-configuration.Jika set data input Anda adalah file Queued Sequential Access Method (QSAM) dengan panjang data tetap atau variabel, gunakan perintah berikut:
//STEP01 EXEC BQSH //INFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.CPY //CONFIG DD DISP=SHR,DSN=<HLQ>.CONFIG.SETTINGS //STDIN DD * BUCKET=BUCKET_NAME qsam decode --copybook dd:COPYBOOK --transcode-configuration dd:CONFIG dd:INFILE gs://$BUCKET/tablename /*Jika set data input Anda adalah file Virtual Storage Access Method (VSAM) dengan panjang data tetap atau variabel, gunakan perintah berikut:
//STEP01 EXEC BQSH //INFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.CPY //CONFIG DD DISP=SHR,DSN=<HLQ>.CONFIG.SETTINGS //STDIN DD * BUCKET=BUCKET_NAME vsam decode --copybook dd:COPYBOOK --transcode-configuration dd:CONFIG dd:INFILE gs://$BUCKET/tablename /*Ganti
BUCKET_NAMEdengan nama bucket Cloud Storage tempat Anda ingin menyalin data mainframe.
Dalam contoh ini,
DD DataPathdigunakan untuk menentukan jalur copybook, input, dan konfigurasi transcoding. LihatDataPathuntuk opsi lainnya.Agar tidak perlu menentukan variabel seperti project ID dan nama bucket di setiap prosedur job control language (JCL), Anda dapat menambahkannya di BQSH PROCLIB dan mereferensikannya di beberapa prosedur JCL sebagai variabel lingkungan. Pendekatan ini juga menyederhanakan transisi antara lingkungan produksi dan non-produksi, karena variabel khusus lingkungan ditetapkan dalam PROCLIB BQSH lingkungan.
Jika ingin mencatat perintah yang dijalankan selama proses ini, Anda dapat mengaktifkan statistik pemuatan.
Membuat dan mengirimkan tugas pemuatan BigQuery yang memuat file yang telah di-transcode ke BigQuery. Misalnya, jika Anda melakukan transcoding data ke format ORC, Anda dapat memuat partisi file ORC dari
tablename.orckeMY_DATASET.MY_TABLE, sebagai berikut:Example JCL //STEP02 EXEC BQSH //STDIN DD * BUCKET=BUCKET_NAME PROJECT=PROJECT_NAME bq load --project_id=$PROJECT \ myproject:MY_DATASET.MY_TABLE \ gs://$BUCKET/tablename.orc/* /*Ganti kode berikut:
BUCKET_NAME: nama bucket Cloud Storage yang berisi file ORC yang ingin Anda muat ke BigQuery.PROJECT_NAME: nama project tempat Anda ingin menjalankan kueri.
Opsional: Buat dan kirim tugas kueri BigQuery yang menjalankan pembacaan SQL dari file QUERY DD. Biasanya, kueri akan berupa pernyataan
MERGEatauSELECT INTO DMLyang menghasilkan transformasi tabel BigQuery. Perhatikan bahwa Mainframe Connector mencatat metrik tugas ke dalam log, tetapi tidak menulis hasil kueri ke file.Anda dapat mengkueri BigQuery dengan berbagai cara: inline, dengan set data terpisah menggunakan
DD, atau dengan set data terpisah menggunakanDSN.Example JCL //STEP03 EXEC BQSH //QUERY DD DSN=<HLQ>.QUERY.FILENAME,DISP=SHR //STDIN DD * PROJECT=PROJECT_NAME LOCATION=LOCATION bq query --project_id=$PROJECT \ --location=$LOCATION/* /*Ganti kode berikut:
PROJECT_NAME: nama project tempat Anda ingin menjalankan kueri.LOCATION: lokasi tempat kueri akan dijalankan. Sebaiknya jalankan kueri di lokasi yang dekat dengan data.
Opsional: Buat dan kirim tugas ekspor yang menjalankan pembacaan SQL dari file QUERY DD, dan ekspor set data yang dihasilkan ke mainframe sebagai file biner.
//STEP04 EXEC BQSH //OUTFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.CPY //CONFIG DD DISP=SHR,DSN=<HLQ>.CONFIG.SETTINGS //QUERY DD DSN=<HLQ>.QUERY.FILENAME,DISP=SHR //STDIN DD * PROJECT=PROJECT_NAME qsam encode \ dd:QUERY dd:OUTFILE --copybook dd:COPYBOOK --transcode-configuration dd:CONFIG --input-format=BIGQUERY \ --input-parameter project_id=PROJECT_NAME \ --input-parameter location=LOCATION/* /*Ganti kode berikut:
PROJECT_NAME: nama project tempat Anda ingin menjalankan kueri.LOCATION: lokasi tempat kueri akan dijalankan. Sebaiknya jalankan kueri di lokasi yang dekat dengan data.
Anda dapat mengubah perilaku default proses transcoding Mainframe Connector dengan menyediakan file konfigurasi transcoder menggunakan argumen
--transcode-configuration.Data diekspor ke set data
OUTFILE DD. Tata letak data dijelaskan olehCOPYBOOK DD. Untuk opsi lain terkait jalur konfigurasi copybook, outfile, dan transcoding, lihatDataPath.