Mainframe Connector im Standalone-Modus ausführen

Auf dieser Seite wird erläutert, wie Sie den Mainframe-Connector Cloud Run verwenden, Daten transcodieren, in BigQuery speichern und exportieren aus BigQuery.

Mainframe-Connector-Version 5.13.0 und höher unterstützt das Ausführen Mainframe-Connector als eigenständiger Job in Google Cloud. Mit dieser Funktion können Sie Mainframe Connector als containerisierten Batchjob ausführen, z. B. als Cloud Run-Job, Google Kubernetes Engine-Job oder in einem Docker-Container. Mit dieser Option müssen Sie den Mainframe Connector nicht lokal auf Ihrem Mainframe installieren. Außerdem können Sie das Parsen von QSAM-Dateien (Queued Sequential Access Method) für Mainframes einfacher in bestehende ETL-Workflows (Extract, Transform, Load) einbinden.

Wenn Sie die eigenständige Version des Mainframe-Connectors verwenden, müssen Sie den ETL-Workflow, mit dem die QSAM-Datei in Google Cloud geladen wird, selbst einrichten.

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-Aufrufer zugewiesen ist.
  • Achten Sie darauf, dass die Mainframe-Daten bereits als QSAM in Google Cloud verfügbar sind -Datei.

Daten mit dem Mainframe-Connector im eigenständigen Modus in Cloud Run transkodieren

So transcodierst du deine Daten mit dem Mainframe-Connector im eigenständigen Modus:

  1. Erstellen Sie eine YAML-Datei mit Befehlen zum Lesen des Datasets und transcodieren Sie es in die ORC-Format und laden Sie es in Cloud Storage hoch. Das Eingabe-Dataset muss ein QSAM-Datei mit fester oder variabler Datensatzlänge Mit der folgenden Beispiel-YAML-Datei können Sie Ihren Datensatz lesen, in das ORC-Format transkodieren und in Cloud Storage hochladen.

    Im folgenden Beispiel werden die Daten aus dem INFILE-Dataset und das Datensatzlayout aus dem COPYBOOK-DD gelesen.

    environmentVariables:
    - name: "INFILE"
      value: <var>"INFILE"</var>
    - name: "INFILE_DSN"
      value: <var>"INFILE_DSN"</var>
    - name: "GCSDSNURI"
      value: <var>"INFILE_DSN_FILEPATH"</var>
    - name: "COPYBOOK"
      value: <var>"COPYBOOK_FILEPATH"</var>
    - name: "LOG_PROJECT"
      value: <var>"LOG_PROJECT"</var>
    - name: "IBM_JAVA_OPTIONS"
      value: "-XX:+UseContainerSupport"
    command:
      gsutil cp gs://outputbucket/output
      --parallelism 8
      --maxChunkSize "512Mib"
      --parser_type=copybook
    

    Ersetzen Sie Folgendes:

    • INFILE: Der Name der Eingabedatei.
    • INFILE_DSN: Der Name der DSN-Datei (Datenquellenname).
    • INFILE_DSN_FILEPATH: Der Pfad zur DSN-Eingabedatei.
    • COPYBOOK_FILEPATH: Der Pfad zum Copybook-DD.
    • LOG_PROJECT: Der Name des Protokollprojekts.

    Hier sehen Sie eine YAML-Beispieldatei:

      environmentVariables:
      - name: "INFILE"
        value: "input.dat"
      - name: "INFILE_DSN"
        value: "input.dat"
      - name: "GCSDSNURI"
        value: "gs://inputbucket/inputfolder"
      - name: "COPYBOOK"
        value: "gs://inputbucket/copybook.cpy"
      - name: "LOG_PROJECT"
        value: "the log project"
      - name: "IBM_JAVA_OPTIONS"
        value: "-XX:+UseContainerSupport"
      command:
        gsutil cp gs://outputbucket/output
        --parallelism 8
        --maxChunkSize "512Mib"
        --parser_type=copybook
    

    Eine vollständige Liste der Umgebungsvariablen, die von Mainframe-Connector: siehe Umgebungsvariablen.

    Wenn Sie die während dieses Vorgangs ausgeführten Befehle protokollieren möchten, können Sie die Ladestatistiken aktivieren.

  2. Erstellen Sie mit dem folgenden Befehl eine job.yaml-Datei.

    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE
                command:
                - bash
                - /opt/mainframe-connector/standalone.sh
                - --argsFrom
                - LOCATION_OF_THE_COMMAND_YAML_FILE
    

    Ersetzen Sie Folgendes:

    • JOB durch den Namen Ihres Cloud Run-Jobs. Jobnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt eindeutig sein.
    • IMAGE durch die URL des Job-Container-Images, z. B. us-docker.pkg.dev/cloudrun/container/job:latest.
    • LOCATION_OF_THE_COMMAND_YAML_FILE durch den Standort des YAML-Datei, die Sie im vorherigen Schritt erstellt haben.
  3. Stellen Sie den neuen Job mit dem folgenden Befehl bereit:

    gcloud run jobs replace job.yaml
    
  4. Führen Sie den Job mit dem folgenden Befehl aus:

    gcloud run jobs execute JOB_NAME

    Ersetzen Sie JOB_NAME durch den Namen des Jobs.

Weitere Informationen zum Erstellen und Ausführen eines Cloud Run-Jobs finden Sie unter Neuen Job erstellen und Job ausführen.

BigQuery-Tabelle in Mainframe-Dataset exportieren

Sie können die BigQuery-Tabelle in ein Mainframe-Dataset exportieren, indem Sie eine YAML-Datei erstellen Datei, die einen SQL-Lesevorgang aus der QUERY DD-Datei ausführt, und exportiert das resultierende Dataset als Binärdatei in Cloud Storage folgt.

Die Schritte zum Erstellen und Ausführen des Cloud Run-Jobs entsprechen denen im Abschnitt Daten mit dem Mainframe-Connector im eigenständigen Modus in Cloud Run transkodieren. Der einzige Unterschied ist die Anleitung wie in der YAML-Datei erwähnt.

environmentVariables:
- name: "COPYBOOK"
  value: "<var>COPYBOOK_FILEPATH</var>"
- name: "LOG_PROJECT"
  value: "<var>LOG_PROJECT</var>"
- name: "IBM_JAVA_OPTIONS"
  value: "-XX:+UseContainerSupport"
command:
  bq export --project_id="<var>PROJECT_NAME</var>" --location=<var>LOCATION</var> --sql="select * from project.dataset.table" --bucket="<var>BUCKET</var>"

Ersetzen Sie Folgendes:

  • COPYBOOK_FILEPATH: Der Pfad zum Copybook-DD.
  • LOG_PROJECT: Der Name des Logprojekts.
  • PROJECT_NAME: der Name des Projekts, in dem Sie um die Abfrage auszuführen.
  • LOCATION: Der Ort, an dem die Abfrage ausgeführt wird. Es empfiehlt sich, die Abfrage an einem Ort in der Nähe des Daten.
  • BUCKET: Der Cloud Storage-Bucket, der die die Binärdatei der Ausgabe enthalten.

Hier ist eine Beispiel-YAML-Datei:

environmentVariables:
- name: "COPYBOOK"
  value: "gs://inputbucket/copybook.cpy"
- name: "LOG_PROJECT"
  value: "the log project"
- name: "IBM_JAVA_OPTIONS"
  value: "-XX:+UseContainerSupport"
command:
  bq export --project_id="<var>PROJECT_NAME</var>" --location=US --sql="select * from project.dataset.table" --bucket="<var>BUCKET</var>"