Data mainframe transcoding dipindahkan ke Google Cloud menggunakan library pita virtual

Melakukan transcoding data secara lokal di mainframe adalah proses intensif CPU yang menghasilkan dalam jutaan instruksi per detik (MIPS) yang tinggi. Untuk menghindari hal ini, Anda dapat menggunakan Cloud Run untuk memindahkan dan melakukan transcoding data mainframe dari jarak jauh Google Cloud. Ini akan membebaskan {i>mainframe<i} Anda untuk tugas-tugas penting bisnis dan juga mengurangi pemakaian MIPS.

Jika Anda ingin memindahkan volume data yang sangat besar (sekitar 500 GB per hari atau lebih) dari mainframe Anda ke Google Cloud, dan tidak ingin menggunakan mainframe Anda untuk Dalam upaya ini, Anda dapat menggunakan solusi Virtual Tape Library (VTL) berbasis cloud untuk mentransfer data ke Cloud Storage direktori VM dengan bucket. Selanjutnya Anda dapat menggunakan Cloud Run untuk melakukan transcoding data yang ada di dan memindahkannya ke BigQuery.

Halaman ini membahas cara membaca data mainframe yang disalin ke Cloud Storage melakukan transcoding pada bucket, melakukan transcoding pada kode tersebut dari kode pertukaran desimal berkode biner yang diperluas (EBCDIC) ke format ORC dalam UTF-8, dan memuat {i>dataset<i} itu ke BigQuery.

Diagram berikut menunjukkan cara memindahkan data mainframe Anda ke Bucket Cloud Storage yang menggunakan solusi VTL, melakukan transcoding data ke ORC menggunakan Cloud Run, lalu memindahkan kontennya ke BigQuery.

Melakukan transcoding data mainframe dari jarak jauh menggunakan VTL
Melakukan transcoding data mainframe dari jarak jauh menggunakan VTL

Sebelum memulai

  • Pilih solusi VTL yang sesuai dengan kebutuhan dan pindahkan mainframe Anda data ke bucket Cloud Storage dan menyimpannya sebagai .dat. Ensure Anda menambahkan kunci metadata bernama x-goog-meta-lrecl menjadi .dat yang diupload dan panjang kunci metadata sama dengan kumpulan data file asli panjang, misalnya 80.
  • Di mainframe, tetapkan variabel lingkungan GCSDSNURI ke awalan yang telah Anda gunakan untuk data mainframe di bucket Cloud Storage.
    export GCSDSNURI="gs://BUCKET/PREFIX"
    
    Ganti yang berikut:
    • BUCKET: Nama bucket Cloud Storage.
    • PREFIX: Awalan yang ingin Anda gunakan dalam bucket.
  • Buat akun layanan atau identifikasi akun layanan yang ada untuk digunakan dengan Mainframe Connector. Ini akun layanan harus memiliki izin untuk mengakses bucket Cloud Storage, set data BigQuery, dan resource Google Cloud lainnya yang Anda inginkan untuk digunakan.
  • Pastikan akun layanan yang Anda buat diberi peran Cloud Run Invoker.

Melakukan transcoding data mainframe yang diupload ke bucket Cloud Storage

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

  1. Deploy layanan jarak jauh Mainframe Connector menggunakan Terraform. Konektor Mainframe layanan jarak jauh didasarkan pada Cloud Run yang memungkinkan Anda melakukan operasi jarak jauh analisis genomik, atau transcoding media. Jika Anda ingin men-deploy beberapa instance Layanan jarak jauh Mainframe Connector, lihat Men-deploy beberapa instance Mainframe Connector.
  2. Membaca dan melakukan transcoding data yang ada di bucket Cloud Storage ke ORC format font. Operasi transcoding mengubah {i>dataset<i} EBCDIC mainframe menjadi Format ORC dalam UTF-8.
  3. Muat set data ke tabel BigQuery.
  4. (Opsional) Jalankan kueri SQL di tabel BigQuery.
  5. (Opsional) Ekspor data dari BigQuery ke file biner di Cloud Storage.

Untuk melakukan tugas tersebut, ikuti langkah-langkah berikut:

  1. Download file tar deployment Mainframe Connector.

  2. Ekstrak file dalam file tar deployment.

    tar -xvf ./deployment.tar
    

    File main.tf dan vars.tf diekstrak dari file .tar deployment.

  3. Tinjau dan edit variabel dalam file vars.tf. Sebagian besar variabel sudah memiliki nilai default. Namun, Anda harus menetapkan nilai berikut. Satu-satunya variabel wajib yang harus Anda tetapkan adalah project dan connector_service_account_email.

    • project: Project Google Cloud tempat Anda ingin instal Mainframe Connector.
    • connector_service_account_email: Akun layanan yang memiliki semua izin akses untuk operasi yang ingin Anda lakukan menggunakan Konektor Mainframe.

    Anda juga dapat mengatur konfigurasi jaringan menggunakan connector_service_ingress dan connector_service_vpc_access variabel.

  4. Jalankan perintah terraform init dengan bucket dan awalan Cloud Storage sebagai argumen. Menggunakan bucket dan awalan Cloud Storage membantu Anda menyimpan status deployment dalam bucket. Anda juga dapat menggunakan kembali bucket dan awalan yang sama saat mengupgrade Mainframe Connector.

    terraform init \
    -backend-config bucket=DEPLOYMENT_STATE_BUCKET \
    -backend-config prefix=BUCKET_PREFIX
    

    Ganti kode berikut:

    • DEPLOYMENT_STATE_BUCKET: Nama bucket Cloud Storage.
    • BUCKET_PREFIX: Awalan yang ingin Anda gunakan dalam bucket Cloud Storage.
  5. Membuat file .tfvars untuk menentukan variabel yang Anda inginkan Terraform yang akan digunakan selama deployment Mainframe Connector.

  6. Buka file .tfvars dan tentukan variabel berikut sebagai key-value pair.

    • instance_id: Tentukan instance_id untuk memisahkan beban kerja yang berbeda ketika Anda ingin memiliki beberapa Mainframe Connector, atau menggunakan akun layanan lain.
    • project: Project tempat Anda ingin men-deploy Konektor Mainframe.
    • connector_service_ingress: Jenis traffic masuk.
    • additional_labels: Label tambahan jika Anda ingin diuji melakukan deployment.
    • connector_service_account_email: Email akun layanan ID Mainframe Connector.

    Simpan perubahan Anda dan tutup file tersebut.

  7. Terapkan Mainframe Connector.

    terraform apply -var-file=VARIABLE_FILE_NAME
    

    Ganti VARIABLE_FILE_NAME dengan file variabel yang Anda buat di langkah sebelumnya.

  8. (Opsional) Untuk memeriksa apakah Mainframe Connector di-deploy dan berjalan, buka halaman Cloud Run, lalu pilih tab Services. Anda akan melihat deployment tercantum dalam tabel.

    Buka Cloud Run

  9. Di mainframe, buat tugas untuk membaca data dari .dat di bucket Cloud Storage, dan melakukan transcoding pada file tersebut ke format ORC, sebagai berikut.

    Untuk daftar lengkap variabel lingkungan yang didukung oleh Mainframe Connector, lihat Variabel lingkungan.

    //STEP01 EXEC BQSH
    //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.FILENAME
    //STDIN DD *
    gsutil cp --replace gs://mybucket/tablename.orc \
    --inDsn INPUT_FILENAME \
    --remoteHost <mainframe-connector-url>.a.run.app \
    --remotePort 443 \
    --project_id PROJECT_NAME
    /*
    

    Ganti kode berikut:

    • PROJECT_NAME: Nama project tempat Anda akan mengeksekusi kueri.
    • INPUT_FILENAME: Nama .dat yang Anda upload ke bucket Cloud Storage.

    Jika ingin mencatat log perintah yang dijalankan selama proses ini, Anda dapat mengaktifkan statistik pemuatan.

  10. (Opsional) Buat dan kirim tugas kueri BigQuery yang menjalankan pembacaan SQL dari file DD QUERY. Biasanya kuerinya akan berupa MERGE atau SELECT INTO DML yang menghasilkan transformasi tabel BigQuery. Catatan {i>Mainframe Connector<i} membuat log dalam metrik tugas tetapi tidak menulis kueri hasil ke sebuah file.

    Anda dapat membuat kueri BigQuery dengan berbagai cara secara inline, dengan menggunakan DD, atau dengan {i>dataset<i} 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/*
    /*
    

    Ganti kode berikut:

    • PROJECT_NAME: Nama project tempat Anda akan mengeksekusi kueri.
    • LOCATION: Lokasi tempat kueri berada telah dijalankan. Sebaiknya jalankan kueri di lokasi yang dekat dengan layanan otomatis dan data skalabel.
  11. (Opsional) Buat dan kirim tugas ekspor yang menjalankan 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 akan mengeksekusi kueri.
    • DATASET_ID: ID set data BigQuery yang berisi tabel yang ingin Anda ekspor.
    • DESTINATION_TABLE: Tabel BigQuery yang ingin diekspor.
    • BUCKET: Bucket Cloud Storage yang akan berisi file biner output.