Das lokale Transcodieren von Daten auf einem Mainframe ist ein CPU-intensiver Prozess, bei dem mit einem hohen Verbrauch von Millionen Anweisungen pro Sekunde (MIPS). Um dies zu vermeiden, können Sie mit Cloud Run Mainframe-Daten Google Cloud Dadurch können Sie Ihren Mainframe frei für geschäftskritische Aufgaben reduziert den MIPS-Verbrauch.
Das folgende Diagramm zeigt, wie Sie Ihre Mainframe-Daten Cloud Storage-Bucket, transcodieren Sie die Daten mit Cloud Run und verschieben Sie den Inhalt dann nach BigQuery.
Hinweis
- Mainframe-Connector in Cloud Run bereitstellen
- Erstellen Sie ein Dienstkonto oder legen Sie ein Vorhandenes Dienstkonto für die Verwendung mit dem Mainframe-Connector. Dieses Dienstkonto muss Berechtigungen für den Zugriff auf Cloud Storage-Buckets, BigQuery-Datasets und alle anderen Google Cloud-Ressourcen haben, die Sie verwenden möchten.
- Achten Sie darauf, dass dem von Ihnen erstellten Dienstkonto die Rolle Cloud Run Invoker zugewiesen ist.
Mainframe-Daten zu Google Cloud verschieben und per Remote-Zugriff mit Cloud Run transkodieren
Wenn Sie Ihre Mainframe-Daten zu Google Cloud verschieben und sie per Fernzugriff mit Cloud Run transkodieren möchten, müssen Sie die folgenden Aufgaben ausführen:
- Dataset auf einem Mainframe lesen und transcodieren und in Cloud Storage hochladen
im ORC-Format. Die Transcodierung erfolgt während des
cp
-Vorgangs, bei dem ein EBCDIC-Datensatz (Extended Binary Coded Decimal Interchange Code) eines Mainframes beim Kopieren in einen Cloud Storage-Bucket in das ORC-Format in UTF-8 konvertiert wird. - Laden Sie das Dataset in eine BigQuery-Tabelle.
- (Optional) Führen Sie eine SQL-Abfrage an der BigQuery-Tabelle aus.
- Optional: Daten aus BigQuery in eine Binärdatei in Cloud Storage exportieren.
So führen Sie diese Aufgaben aus:
Erstellen Sie in Ihrem Mainframe einen Job zum Lesen des Datasets im Mainframe und wie im Folgenden beschrieben in das ORC-Format transcodiert. Lesen Sie die Daten aus der INFILE-Dataset und den aus dem COPYBOOK DD. Das Eingabe-Dataset muss eine QSAM (QSAM-Datei mit sequenzieller Zugriffsmethode) in der Warteschlange sein feste oder variable Länge.
Eine vollständige Liste der Umgebungsvariablen, die von Mainframe-Connector: siehe Umgebungsvariablen.
//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 /*
Wenn Sie die während dieses Vorgangs ausgeführten Befehle protokollieren möchten, können Sie die Ladestatistiken aktivieren.
(Optional) Erstellen und senden Sie einen BigQuery-Abfragejob, der einen SQL-Lesevorgang ausführt die DD-Datei QUERY. In der Regel ist die Abfrage
MERGE
oderSELECT INTO DML
. -Anweisung, die zur Transformation einer BigQuery-Tabelle führt. Hinweis: Der Mainframe-Connector protokolliert Jobmesswerte, schreibt Abfrageergebnisse aber nicht in eine Datei.Sie können BigQuery auf verschiedene Arten abfragen: inline, mit einem separaten Dataset mit DD oder mit einem separaten Dataset mit 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/* /*
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts, in dem Sie um die Abfrage auszuführen.LOCATION
: Der Ort, an dem die Abfrage ausgeführt wird. ausgeführt haben. Wir empfehlen, die Abfrage an einem Ort auszuführen, der sich in der Nähe der Daten befindet.
Optional: Erstellen und senden Sie einen Exportjob, der eine SQL-Leseoperation aus der QUERY-DD-Datei ausführt und den resultierenden Datensatz als Binärdatei in Cloud Storage exportiert.
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 /*
Ersetzen Sie Folgendes:
PROJECT_NAME
: der Name des Projekts, in dem Sie um die Abfrage auszuführen.DATASET_ID
: Die BigQuery-Dataset-ID, die enthält die Tabelle, die Sie exportieren möchten.DESTINATION_TABLE
: Die BigQuery-Tabelle die Sie exportieren möchten.BUCKET
: Der Cloud Storage-Bucket, der die Ausgabedatei enthält.
Nächste Schritte
- Lokal transkribierte Mainframe-Daten zu Google Cloud verschieben
- Mainframe-Daten per Fernzugriff in Google Cloud transkodieren
- Mit einer virtuellen Bandbibliothek zu Google Cloud verschobene Mainframe-Daten transcodieren