Mainframe-Daten remote in Google Cloud transcodieren

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.

Mainframe-Daten per Fernzugriff transcodieren
Mainframe-Daten per Fernzugriff transkodieren

Hinweis

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:

  1. 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.
  2. Laden Sie das Dataset in eine BigQuery-Tabelle.
  3. (Optional) Führen Sie eine SQL-Abfrage an der BigQuery-Tabelle aus.
  4. Optional: Daten aus BigQuery in eine Binärdatei in Cloud Storage exportieren.

So führen Sie diese Aufgaben aus:

  1. 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.

  2. (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 oder SELECT 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.
  3. 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