Mentranskode data secara lokal di mainframe adalah proses yang intensif CPU yang menghasilkan konsumsi jutaan instruksi per detik (MIPS) yang tinggi. Untuk menghindarinya, Anda dapat menggunakan Cloud Run untuk memindahkan dan mentranskode data mainframe dari jarak jauh ke format kolom baris yang dioptimalkan (ORC), lalu memindahkan data ke Cloud Storage.Google Cloud Hal ini membebaskan mainframe Anda untuk tugas-tugas penting bisnis dan juga mengurangi konsumsi MIPS.
Gambar berikut menjelaskan cara memindahkan data mainframe ke Google Cloud dan mentranskodekannya dari jarak jauh ke format ORC menggunakan Cloud Run, lalu memindahkan konten ke BigQuery.
Sebelum memulai
- Deploy Mainframe Connector di Cloud Run.
- Buat akun layanan atau identifikasi akun layanan yang ada untuk digunakan dengan Mainframe Connector. Akun layanan ini harus memiliki izin untuk mengakses bucket Cloud Storage, set data BigQuery, dan resource Google Cloud lain yang ingin Anda gunakan.
- Pastikan akun layanan yang Anda buat diberi peran Cloud Run Invoker.
Memindahkan data mainframe ke Google Cloud dan mentranskodekannya dari jarak jauh menggunakan Cloud Run
Untuk memindahkan data mainframe ke Google Cloud dan mentranskodekannya dari jarak jauh menggunakan Cloud Run, Anda harus melakukan tugas berikut:
- Membaca dan mentranskode set data di mainframe, lalu menguploadnya ke Cloud Storage dalam format ORC. Transcoding dilakukan selama operasi
gsutil cp, dengan set data kode pertukaran desimal biner yang diperluas (EBCDIC) mainframe dikonversi ke format ORC dalam UTF-8 selama penyalinan ke bucket Cloud Storage. - Muat set data ke tabel BigQuery.
- (Opsional) Jalankan kueri SQL pada tabel BigQuery.
- (Opsional) Mengekspor data dari BigQuery ke file biner di Cloud Storage.
Untuk menjalankan tugas ini, ikuti langkah-langkah berikut:
Di mainframe, buat tugas untuk membaca set data di mainframe dan mentranskodekannya ke format ORC, sebagai berikut. Baca data dari set data INFILE, dan tata letak rekaman dari COPYBOOK DD. Set data input harus berupa file metode akses berurutan yang diantrekan (QSAM) dengan panjang rekaman tetap atau variabel.
Untuk mengetahui daftar lengkap variabel lingkungan yang didukung oleh Mainframe Connector, lihat Variabel lingkungan.
//STEP01 EXEC BQSH //INFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.FILENAME //STDIN DD * gsutil cp --replace gs://mybucket/tablename.orc --remote \ --remoteHost <mainframe-connector-url>.a.run.app \ --remotePort 443 /*Jika ingin mencatat perintah yang dijalankan selama proses ini, Anda dapat mengaktifkan statistik pemuatan.
(Opsional) Buat dan kirimkan 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 log dalam metrik tugas, tetapi tidak menulis hasil kueri ke file.Anda dapat membuat kueri BigQuery dengan berbagai cara-inline, dengan set data terpisah menggunakan DD, atau dengan set data terpisah menggunakan DSN.
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 \ --remoteHost <mainframe-connector-url>.a.run.app \ --remotePort 443/* /*Selain itu, Anda harus menetapkan variabel lingkungan
BQ_QUERY_REMOTE_EXECUTION=true.Ganti kode berikut:
PROJECT_NAME: Nama project tempat Anda ingin menjalankan kueri.LOCATION: Lokasi tempat kueri akan dieksekusi. Sebaiknya jalankan kueri di lokasi yang dekat dengan data.
(Opsional) Buat dan kirimkan tugas ekspor yang menjalankan pembacaan SQL dari file QUERY DD, dan ekspor set data yang dihasilkan ke Cloud Storage sebagai file biner.
Example JCL //STEP04 EXEC BQSH //OUTFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.FILENAME //QUERY DD DSN=<HLQ>.QUERY.FILENAME,DISP=SHR //STDIN DD * PROJECT=PROJECT_NAME DATASET_ID=DATASET_ID DESTINATION_TABLE=DESTINATION_TABLE BUCKET=BUCKET bq export --project_id=$PROJECT \ --dataset_id=$DATASET_ID \ --destination_table=$DESTINATION_TABLE \ --location="US" \ --bucket=$BUCKET \ --remoteHost <mainframe-connector-url>.a.run.app \ --remotePort 443 /*Ganti kode berikut:
PROJECT_NAME: Nama project tempat Anda ingin menjalankan kueri.DATASET_ID: ID set data BigQuery yang berisi tabel yang ingin Anda ekspor.DESTINATION_TABLE: Tabel BigQuery yang ingin Anda ekspor.BUCKET: Bucket Cloud Storage yang akan berisi file biner output.
Langkah berikutnya
Memindahkan data mainframe yang ditranskode secara lokal ke Google Cloud
Mentranskode data mainframe yang dipindahkan ke Google Cloud menggunakan library tape virtual