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.
Diagram berikut menunjukkan cara memindahkan data mainframe ke bucket Cloud Storage, mentranskode data ke format ORC menggunakan Cloud Run, lalu memindahkan konten ke BigQuery.
Sebelum memulai
- 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.
Memindahkan data mainframe ke Google Cloud dan melakukan transcoding pada data tersebut dari jarak jauh menggunakan Cloud Run
Untuk memindahkan data mainframe Anda ke Google Cloud dan melakukan transcoding pada data tersebut dari jarak jauh menggunakan Jika Cloud Run, Anda harus melakukan tugas berikut:
- 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.
- Baca dan transkode set data di mainframe, lalu upload ke Cloud Storage dalam format ORC. Transcoding dilakukan selama operasi
cp
. dengan {i>mainframe extended coded decimal interchange code<i} (EBCDIC) dikonversi ke format ORC di UTF-8 selama proses penyalinan 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 melakukan tugas ini, ikuti langkah-langkah berikut:
Download file tar deployment Mainframe Connector.
Ekstrak file di file tar deployment.
tar -xvf ./deployment.tar
File
main.tf
danvars.tf
diekstrak dari file .tar deployment.Tinjau dan edit variabel dalam file
vars.tf
. Sebagian besar variabel sudah memiliki nilai default. Namun, Anda harus menetapkan masing-masing. Satu-satunya variabel wajib yang harus Anda tetapkan adalahproject
danconnector_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
danconnector_service_vpc_access
variabel.Menjalankan
terraform init
perintah dengan bucket dan awalan Cloud Storage sebagai argumen. Menggunakan bucket dan awalan Cloud Storage membantu Anda menyimpan status deployment di 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.
Membuat file
.tfvars
untuk menentukan variabel yang Anda inginkan Terraform yang akan digunakan selama deployment Mainframe Connector.Buka file
.tfvars
dan tentukan variabel berikut sebagai pasangan nilai kunci.instance_id
: Tentukaninstance_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 menguji deployment.connector_service_account_email
: Email akun layanan ID Mainframe Connector.
Simpan perubahan Anda dan tutup file tersebut.
Terapkan Mainframe Connector.
terraform apply -var-file=VARIABLE_FILE_NAME
Ganti VARIABLE_FILE_NAME dengan file variabel yang Anda buat di langkah sebelumnya.
(Opsional) Untuk memeriksa apakah Mainframe Connector di-deploy dan berjalan, buka halaman Cloud Run, lalu pilih tab Services. Anda akan melihat deployment Anda tercantum dalam tabel.
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 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 \ --remoteHost <mainframe-connector-url>.a.run.app \ --remotePort 443 /*
Jika ingin mencatat log perintah yang dijalankan selama proses ini, Anda dapat mengaktifkan statistik pemuatan.
(Opsional) Buat dan kirim tugas kueri BigQuery yang menjalankan pembacaan SQL dari file DD QUERY. Biasanya kuerinya akan berupa
MERGE
atauSELECT 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 data.
(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 diekspor.BUCKET
: Bucket Cloud Storage yang akan berisi file biner output.
Menerapkan beberapa instance Mainframe Connector
Untuk membatasi akses ke tugas tertentu, Anda mungkin perlu men-deploy beberapa instance dari Mainframe Connector. Anda dapat melakukannya dengan men-deploy Mainframe Connector beberapa kali dengan variabel dan layanan yang berbeda menggunakan akun layanan. Karena layanan jarak jauh {i> Mainframe Connector<i} didasarkan pada Anda hanya akan ditagih saat setiap layanan benar-benar berjalan pada Cloud Run. Anda juga tidak perlu menyiapkan ketersediaan tinggi (HA) karena setiap instance sudah di-load balance dan sangat tersedia.