Mentranskode data mainframe dari jarak jauh di Google Cloud

Mentranskode data secara lokal di mainframe adalah proses yang intensif CPU yang menghasilkan konsumsi million instructions per second (MIPS) yang tinggi. Untuk menghindari hal ini, Anda dapat menggunakan Cloud Run untuk memindahkan dan mentranskode data mainframe dari jarak jauh di Google Cloud. Tindakan ini akan membebaskan mainframe Anda untuk tugas penting bisnis dan juga mengurangi konsumsi MIPS.

Diagram berikut menunjukkan cara memindahkan data mainframe ke bucket Cloud Storage, mentranskode data ke format ORC menggunakan Cloud Run, lalu memindahkan konten ke BigQuery.

Mentranskode data mainframe dari jarak jauh
Mentranskode data mainframe dari jarak jauh

Sebelum memulai

Memindahkan data mainframe ke Google Cloud dan mentranskodenya dari jarak jauh menggunakan Cloud Run

Untuk memindahkan data mainframe ke Google Cloud dan mentranskodenya dari jarak jauh menggunakan Cloud Run, Anda harus melakukan tugas berikut:

  1. Baca dan transkode set data di mainframe, lalu upload ke Cloud Storage dalam format ORC. Transcoding dilakukan selama operasi cp, dengan set data kode pertukaran desimal kode biner yang diperluas (EBCDIC) mainframe dikonversi ke format ORC dalam UTF-8 selama penyalinan ke bucket Cloud Storage.
  2. Muat set data ke tabel BigQuery.
  3. (Opsional) Jalankan kueri SQL pada tabel BigQuery.
  4. (Opsional) Mengekspor data dari BigQuery ke file biner di Cloud Storage.

Untuk melakukan tugas ini, ikuti langkah-langkah berikut:

  1. Di mainframe, buat tugas untuk membaca set data di mainframe dan transcode ke format ORC, sebagai berikut. Baca data dari set data INFILE, dan tata letak data dari COPYBOOK DD. Set data input harus berupa file metode akses berurutan (QSAM) dalam antrean dengan panjang data 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 dieksekusi selama proses ini, Anda dapat mengaktifkan statistik pemuatan.

  2. (Opsional) Buat dan kirim tugas kueri BigQuery yang menjalankan pembacaan SQL dari file DD QUERY. Biasanya, kueri akan berupa pernyataan MERGE atau SELECT INTO DML yang menghasilkan transformasi tabel BigQuery. Perhatikan bahwa Konektor Mainframe mencatat 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 dijalankan. Sebaiknya jalankan kueri di lokasi yang dekat dengan data.
  3. (Opsional) Buat dan kirim tugas ekspor yang mengeksekusi pembacaan SQL dari file DD QUERY, 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 selanjutnya