Le transcodage des données en local sur un mainframe est un processus gourmand en ressources de processeur. en consommation d'un million d'instructions par seconde (MIPS). Pour éviter cela, vous pouvez utiliser Cloud Run pour déplacer et transcoder des données de mainframe à distance sur Google Cloud. Cela libère votre mainframe pour des tâches critiques de l'entreprise et réduit la consommation de MIPS.
Le schéma suivant montre comment déplacer vos données de mainframe vers un bucket Cloud Storage, transcoder les données au format ORC à l'aide de Cloud Run, puis déplacez le contenu vers BigQuery.
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 être autorisé à accéder aux buckets Cloud Storage, Ensembles de données BigQuery et toute autre ressource Google Cloud de votre choix utiliser.
- Assurez-vous que le compte de service que vous avez créé dispose du rôle Demandeur Cloud Run.
Migrer les données du mainframe vers Google Cloud et les transcoder à distance à l'aide de Cloud Run
Pour déplacer vos données de mainframe vers Google Cloud et les transcoder à distance à l'aide de Cloud Run, vous devez effectuer les tâches suivantes :
- Lire et transcoder un ensemble de données sur un mainframe, puis l'importer dans Cloud Storage
au format ORC. La transcodage est effectuée lors de l'opération
cp
, où un ensemble de données EBCDIC (Extended Binary Coded Decimal Interchange Code) de mainframe est converti au format ORC en UTF-8 lors de la copie dans un bucket Cloud Storage. - Chargez l'ensemble de données dans une table BigQuery.
- (Facultatif) Exécutez une requête SQL sur la table BigQuery.
- (Facultatif) Exporter des données de BigQuery vers un fichier binaire dans Cloud Storage.
Pour effectuer ces tâches, procédez comme suit :
Sur votre mainframe, créez un job pour lire le jeu de données sur votre mainframe et et les convertir au format ORC, comme indiqué ci-dessous. Lire les données à partir du Ensemble de données INFILE et les la disposition d'enregistrement du COPYBOOK DD. L'ensemble de données d'entrée doit être un fichier QSAM (méthode d'accès séquentiel en file d'attente) comportant une longueur d'enregistrement fixe ou variable.
Pour obtenir la liste complète des variables d'environnement compatibles avec le connecteur Mainframe, consultez la section Variables d'environnement.
//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 /*
Si vous souhaitez consigner les commandes exécutées au cours de ce processus, vous pouvez activer les statistiques de charge.
(Facultatif) Créez et envoyez une tâche de requête BigQuery qui exécute une lecture SQL à partir du fichier DD QUERY. Généralement, la requête est de type
MERGE
ouSELECT INTO DML
. entraînant la transformation d'une table BigQuery. Remarque que Mainframe Connector consigne les métriques de job, mais n'écrit pas de requête dans un fichier.Vous pouvez interroger BigQuery de différentes manières de façon intégrée, avec un ensemble de données à l'aide du DD, ou avec un ensemble de données distinct en utilisant le 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/* /*
Remplacez les éléments suivants :
PROJECT_NAME
: nom du projet dans lequel vous voulez exécuter la requête.LOCATION
: emplacement correspondant à la requête exécuté. Nous vous recommandons d'exécuter la requête dans un endroit proche du données.
(Facultatif) Créez et envoyez une tâche d'exportation qui exécute une lecture SQL à partir du fichier DD QUERY et exporte le jeu de données obtenu vers Cloud Storage en tant que fichier binaire.
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 /*
Remplacez les éléments suivants :
PROJECT_NAME
: nom du projet dans lequel vous voulez exécuter la requête.DATASET_ID
: ID de l'ensemble de données BigQuery qui contient la table que vous souhaitez exporter.DESTINATION_TABLE
: table BigQuery que vous souhaitez exporter.BUCKET
: bucket Cloud Storage qui contenant le fichier binaire de sortie.
Étape suivante
- Transférer des données de mainframe transcodées localement vers Google Cloud
- Transcoder des données de mainframe à distance sur Google Cloud
- Transcoder des données de mainframe déplacées vers Google Cloud à l'aide d'une bibliothèque de bandes virtuelles