Cette page explique comment installer Mainframe Connector sur Cloud Run, transcoder des données, les enregistrer dans BigQuery et les exporter depuis BigQuery.
La version 5.13.0 et ultérieure de Mainframe Connector permet d'exécuter Mainframe Connector en tant que tâche autonome sur Google Cloud. Cette fonctionnalité vous permet d'exécuter Mainframe Connector en tant que job par lot conteneurisée, par exemple en tant que tâche Cloud Run, tâche Google Kubernetes Engine ou dans un conteneur Docker. Cette option vous évite d'installer le connecteur mainframe localement sur votre mainframe et vous permet d'intégrer plus facilement l'analyse de fichiers QSAM (queued sequential access method) de votre mainframe aux workflows d'extraction, de transformation et de chargement (ETL) existants.
Lorsque vous utilisez la version autonome du connecteur Mainframe, vous devez configurer vous-même le workflow ETL qui charge le fichier QSAM dans Google Cloud .
Avant de commencer
- Déployez Mainframe Connector sur Cloud Run.
- Créez un compte de service ou identifiez un compte de service existant à utiliser avec Mainframe Connector. Ce compte de service doit disposer d'autorisations pour accéder aux buckets Cloud Storage, aux ensembles de données BigQuery et à toute autre ressource Google Cloud que vous souhaitez utiliser.
- Assurez-vous que le compte de service que vous avez créé dispose du rôle Demandeur Cloud Run.
- Assurez-vous que les données du mainframe sont déjà disponibles sur Google Cloud en tant que fichier QSAM.
Transcoder des données à l'aide de Mainframe Connector en mode autonome sur Cloud Run
Pour transcoder vos données à l'aide de Mainframe Connector en mode autonome, procédez comme suit:
Créez un fichier YAML avec des commandes permettant de lire votre ensemble de données, de le transcoder au format ORC et de l'importer dans Cloud Storage. L'ensemble de données d'entrée doit être un fichier QSAM avec une longueur d'enregistrement fixe ou variable. Vous pouvez utiliser l'exemple de fichier YAML suivant pour lire votre ensemble de données, le transcoder au format ORC et l'importer dans Cloud Storage.
Dans l'exemple suivant, lisez les données de l'ensemble de données INFILE et la mise en page des enregistrements du DD COPYBOOK.
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
Remplacez les éléments suivants :
INFILE
: nom du fichier d'entrée.INFILE_DSN
: nom du fichier de nom de source de données (DSN) d'entrée.INFILE_DSN_FILEPATH
: chemin d'accès au fichier DSN d'entrée.COPYBOOK_FILEPATH
: chemin d'accès au fichier DD de livre de copie.LOG_PROJECT
: nom du projet de journal.
Voici un exemple de fichier YAML:
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
Pour obtenir la liste complète des variables d'environnement compatibles avec le connecteur Mainframe, consultez la section Variables d'environnement.
Si vous souhaitez consigner les commandes exécutées au cours de ce processus, vous pouvez activer les statistiques de charge.
Créez un fichier
job.yaml
à l'aide de la commande suivante.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
Remplacez les éléments suivants :
- JOB par le nom de votre tâche Cloud Run Les noms de tâche doivent comporter un maximum de 49 caractères et être uniques par région et par projet.
- IMAGE par l'URL de l'image de conteneur du job (par exemple,
us-docker.pkg.dev/cloudrun/container/job:latest
). - LOCATION_OF_THE_COMMAND_YAML_FILE par l'emplacement du fichier YAML que vous avez créé à l'étape précédente.
Déployez la nouvelle tâche à l'aide de la commande suivante :
gcloud run jobs replace job.yaml
Exécutez la tâche à l'aide de la commande suivante:
gcloud run jobs execute JOB_NAME
Remplacez JOB_NAME par le nom de la tâche.
Pour en savoir plus sur la création et l'exécution d'un job Cloud Run, consultez les pages Créer un job et Exécuter un job.
Exporter une table BigQuery vers un ensemble de données Mainframe
Vous pouvez exporter une table BigQuery vers un ensemble de données Mainframe en créant un fichier YAML qui exécute une lecture SQL à partir du fichier DD QUERY, puis exporte l'ensemble de données obtenu vers Cloud Storage en tant que fichier binaire, comme suit.
La procédure de création et d'exécution de la tâche Cloud Run est la même que celle décrite dans la section Transcoder des données à l'aide du connecteur Mainframe en mode autonome sur Cloud Run. La seule différence réside dans les instructions mentionnées dans le fichier YAML.
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>"
Remplacez les éléments suivants :
COPYBOOK_FILEPATH
: chemin d'accès au fichier DD de livre de copie.LOG_PROJECT
: nom du projet de journal.PROJECT_NAME
: nom du projet dans lequel vous souhaitez exécuter la requête.LOCATION
: emplacement où la requête sera exécutée. Nous vous recommandons d'exécuter la requête dans un emplacement proche des données.BUCKET
: bucket Cloud Storage qui contiendra le fichier binaire de sortie.
Voici un exemple de fichier YAML:
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>"