Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Trasferisci dati Db2 z/OS su larga scala su Amazon S3 in file CSV
Creato da Bruno Sahinoglu (AWS), Ivan Schuster (AWS) e Abhijit Kshirsagar (AWS)
Riepilogo
Un mainframe è ancora un sistema di registrazione in molte aziende, che contiene un'enorme quantità di dati, tra cui entità di dati master con registrazioni delle transazioni commerciali correnti e storiche. Spesso è isolato e non è facilmente accessibile dai sistemi distribuiti all'interno della stessa azienda. Con l'avvento della tecnologia cloud e la democratizzazione dei big data, le aziende sono interessate a utilizzare le informazioni nascoste nei dati del mainframe per sviluppare nuove funzionalità aziendali.
Con questo obiettivo, le aziende stanno cercando di aprire i dati mainframe Db2 all'ambiente cloud Amazon Web Services (AWS). Le ragioni commerciali sono diverse e i metodi di trasferimento variano da caso a caso. Potresti preferire connettere l'applicazione direttamente al mainframe oppure replicare i dati quasi in tempo reale. Se il caso d'uso è quello di alimentare un data warehouse o un data lake, avere una up-to-date copia non è più un problema e la procedura descritta in questo schema potrebbe essere sufficiente, soprattutto se si desidera evitare i costi di licenza di prodotti di terze parti. Un altro caso d'uso potrebbe essere il trasferimento di dati su mainframe per un progetto di migrazione. In uno scenario di migrazione, i dati sono necessari per eseguire il test di equivalenza funzionale. L'approccio descritto in questo post è un modo conveniente per trasferire i dati Db2 all'ambiente cloud AWS.
Poiché Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) è uno dei servizi AWS più integrati, puoi accedere ai dati da lì e raccogliere informazioni direttamente utilizzando altri servizi AWS come Amazon Athena, le funzioni AWS Lambda o Amazon. QuickSight Puoi anche caricare i dati su Amazon Aurora o Amazon DynamoDB utilizzando AWS Glue o AWS Database Migration Service (AWS DMS). Con questo obiettivo in mente, questo descrive come scaricare i dati Db2 in file CSV in formato ASCII sul mainframe e trasferire i file su Amazon S3.
A tal fine, sono stati sviluppati script mainframe
Prerequisiti e limitazioni
Prerequisiti
Un utente del sistema operativo IBM z/OS con autorizzazione a eseguire script Restructured Extended Executor (REXX) e JCL.
Accesso a z/OS Unix System Services (USS) per generare chiavi private e pubbliche SSH (Secure Shell).
Un bucket S3 scrivibile. Per ulteriori informazioni, consulta Crea il tuo primo bucket S3 nella documentazione di Amazon S3.
Un server abilitato al protocollo SFTP (SSH File Transfer Protocol) di AWS Transfer Family che utilizza Service gestito come provider di identità e Amazon S3 come servizio di storage AWS. Per ulteriori informazioni, consulta Creare un server compatibile con SFTP nella documentazione di AWS Transfer Family.
Limitazioni
Questo approccio non è adatto per la sincronizzazione dei dati quasi in tempo reale o in tempo reale.
I dati possono essere spostati solo da Db2 z/OS ad Amazon S3, non viceversa.
Architettura
Stack tecnologico di origine
Mainframe che esegue Db2 su z/OS
Stack tecnologico Target
AWS Transfer Family
Amazon S3
Amazon Athena
Amazon QuickSight
AWS Glue
Amazon Relational Database Service (Amazon RDS)
Amazon Aurora
Amazon Redshift
Architettura di origine e destinazione
Il diagramma seguente mostra il processo di generazione, estrazione e trasferimento dei dati Db2 z/OS in formato ASCII CSV su un bucket S3.

Viene selezionato un elenco di tabelle per la migrazione dei dati dal catalogo Db2.
L'elenco viene utilizzato per guidare la generazione di lavori di scaricamento con le colonne numeriche e di dati in formato esterno.
I dati vengono quindi trasferiti su Amazon S3 utilizzando AWS Transfer Family.
Un job di estrazione, trasformazione e caricamento (ETL) di AWS Glue può trasformare i dati e caricarli in un bucket elaborato nel formato specificato, oppure AWS Glue può inserire i dati direttamente nel database.
Amazon Athena e Amazon QuickSight possono essere utilizzati per interrogare ed eseguire il rendering dei dati per favorire l'analisi.
Il diagramma seguente mostra un flusso logico dell'intero processo.

Il primo JCL, chiamato TABNAME, utilizzerà l'utilità Db2 DSNTIAUL per estrarre e generare l'elenco di tabelle che intendi scaricare da Db2. Per scegliere le tabelle, è necessario adattare manualmente l'input SQL per selezionare e aggiungere criteri di filtro per includere uno o più schemi Db2.
Il secondo JCL, chiamato REXXEXEC, utilizzerà uno scheletro JCL e il programma REXX forniti per elaborare l'elenco di tabelle creato da JCL TABNAME e generare un JCL per nome di tabella. Ogni JCL conterrà un passaggio per lo scaricamento della tabella e un altro passaggio per l'invio del file al bucket S3 utilizzando il protocollo SFTP.
L'ultimo passaggio consiste nell'eseguire JCL per scaricare la tabella e trasferire il file su AWS. L'intero processo può essere automatizzato utilizzando uno scheduler locale o su AWS.
Strumenti
Servizi AWS
Amazon Athena è un servizio di query interattivo che ti aiuta ad analizzare i dati direttamente in Amazon Simple Storage Service (Amazon S3) utilizzando SQL standard.
Amazon Aurora è un motore di database relazionale completamente gestito creato per il cloud e compatibile con MySQL e PostgreSQL.
AWS Glue è un servizio di estrazione, trasformazione e caricamento (ETL) completamente gestito. Ti aiuta a classificare, pulire, arricchire e spostare i dati in modo affidabile tra archivi di dati e flussi di dati.
Amazon QuickSight è un servizio di business intelligence (BI) su scala cloud che ti aiuta a visualizzare, analizzare e riportare i tuoi dati in un'unica dashboard.
Amazon Redshift è un servizio di data warehouse gestito su scala petabyte nel cloud AWS.
Amazon Relational Database Service (Amazon RDS) ti aiuta a configurare, gestire e scalare un database relazionale nel cloud AWS.
Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
AWS Transfer Family è un servizio di trasferimento sicuro che consente di trasferire file da e verso i servizi di storage AWS.
Strumenti mainframe
SSH File Transfer Protocol (SFTP)
è un protocollo di trasferimento file sicuro che consente l'accesso remoto e il trasferimento di file tra server. SSH fornisce sicurezza crittografando tutto il traffico. DSNTIAUL
è un programma di esempio fornito da IBM per lo scaricamento dei dati. DSNUTILB
è un programma batch di utilità fornito da IBM per lo scarico di dati con diverse opzioni di DSNTIAUL. z/OS OpenSSH è una porta del software Open Source
SSH in esecuzione su Unix System Service con il sistema operativo IBM z/OS. SSH è un programma di connessione sicuro e crittografato tra due computer in esecuzione su una rete TCP/IP. Fornisce diverse utilità, tra cui ssh-keygen. Lo script REXX (Restructured Extended Executor)
viene utilizzato per automatizzare la generazione di JCL con i passaggi Db2 Unload e SFTP.
Codice
Il codice per questo pattern è disponibile nel repository unloaddb2. GitHub
Best practice
Per il primo scaricamento, i dati generati JCLs dovrebbero scaricare l'intera tabella.
Dopo il primo scaricamento completo, esegui scaricamenti incrementali per migliorare le prestazioni e risparmiare sui costi. Aggiorna la query SQL nel deck JCL del modello per adattare eventuali modifiche al processo di scaricamento.
È possibile convertire lo schema manualmente o utilizzando uno script su Lambda con Db2 SYSPUNCH come input. Per un processo industriale, AWS Schema Conversion Tool (SCT) è l'opzione preferita.
Infine, utilizza uno scheduler basato su mainframe o uno scheduler su AWS con un agente sul mainframe per gestire e automatizzare l'intero processo.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea il bucket S3. | Per istruzioni, consulta Creare il tuo primo bucket S3. | Informazioni generali su AWS |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea un server compatibile con SFTP. | Per aprire e creare un server SFTP sulla console AWS Transfer Family
| Informazioni generali su AWS |
Crea un ruolo IAM per Transfer Family. | Per creare un ruolo AWS Identity and Access Management (IAM) per Transfer Family per accedere ad Amazon S3, segui le istruzioni in Creare un ruolo e una policy IAM. | Amministratore AWS |
Aggiungi un utente gestito dal servizio Amazon S3. | Per aggiungere l'utente gestito dal servizio Amazon S3, segui le istruzioni nella documentazione AWS e usa il tuo ID utente mainframe. | Informazioni generali su AWS |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea la chiave SSH. | Nel tuo ambiente USS mainframe, esegui il seguente comando.
NotaQuando viene richiesta una passphrase, lasciatela vuota. | Sviluppatore di mainframe |
Assegna i giusti livelli di autorizzazione alla cartella SSH e ai file chiave. | Per impostazione predefinita, le chiavi pubbliche e private verranno archiviate nella directory È necessario fornire l'autorizzazione 644 ai file chiave e 700 alla cartella.
| Sviluppatore di mainframe |
Copia il contenuto della chiave pubblica sul tuo utente gestito dal servizio Amazon S3. | Per copiare il contenuto della chiave pubblica generato da USS, apri la console AWS Transfer Family
| Sviluppatore di mainframe |
Attività | Descrizione | Competenze richieste |
---|---|---|
Genera l'elenco di tabelle Db2 relativo all'ambito. | Fornisci un codice SQL di input per creare un elenco delle tabelle destinate alla migrazione dei dati. Questo passaggio richiede di specificare i criteri di selezione per interrogare la tabella del catalogo Db2 SYSIBM.SYSTABLES utilizzando una clausola SQL where. I filtri possono essere personalizzati per includere uno schema o nomi di tabelle specifici che iniziano con un prefisso particolare o basati su un timestamp per lo scaricamento incrementale. L'output viene acquisito in un set di dati sequenziale fisico (PS) sul mainframe. Questo set di dati fungerà da input per la fase successiva della generazione di JCL. Prima di utilizzare JCL TABNAME (puoi rinominarlo se necessario), apporta le seguenti modifiche:
Processo di estrazione dell'elenco delle tabelle Db2
| Sviluppatore di mainframe |
Modifica i modelli JCL. | I modelli JCL forniti con questo modello contengono una scheda di lavoro generica e nomi di librerie. Tuttavia, la maggior parte dei siti mainframe avrà i propri standard di denominazione per i nomi dei set di dati, i nomi delle librerie e le job card. Ad esempio, potrebbe essere necessaria una classe di job specifica per eseguire i job Db2. Il Job Entry Subsystem implementa JES2 e JES3 può imporre ulteriori modifiche. Le librerie di caricamento standard potrebbero avere un primo qualificatore diverso Apportate le seguenti modifiche allo scheletro JCL UNLDSKEL:
Unload e SFTP (JCL skeleton)
| Sviluppatore di mainframe |
Genera il Mass Unload JCL. | Questo passaggio prevede l'esecuzione di uno script REXX in un ambiente ISPF utilizzando JCL. Fornisci l'elenco delle tabelle relative all'ambito create nel primo passaggio come input per la generazione di massa di JCL in base al nome. Apporta le seguenti modifiche in JCL REXXEXEC (puoi cambiare il nome):
Lavoro nella generazione di massa di JCL
Prima di utilizzare lo script REXX, apportate le seguenti modifiche:
Script STEPS REX
| Sviluppatore di mainframe |
Attività | Descrizione | Competenze richieste |
---|---|---|
Eseguire la fase Db2 Unload. | Dopo la generazione di JCL, ne avrai tante JCLs quante sono le tabelle da scaricare. Questa storia utilizza un esempio generato da JCL per spiegare la struttura e i passaggi più importanti. Non è richiesta nessuna azione da parte tua. Le seguenti informazioni sono solo di riferimento. Se intendi inviare JCLs ciò che hai generato nel passaggio precedente, vai alla sezione Invia l' LODnnnnn JCLsattività. Quando si scaricano dati Db2 utilizzando un JCL con l'utilità DSNUTILB Db2 fornita da IBM, è necessario assicurarsi che i dati scaricati non contengano dati numerici compressi. A tale scopo Il L'esempio seguente mostra l'aspetto della fase di scaricamento nel JCL generato, utilizzando il carattere virgola come delimitatore.
| Sviluppatore di mainframe, ingegnere di sistema |
Esegui la fase SFTP. | Per utilizzare il protocollo SFTP di un JCL, utilizzate l'utilità BPXBATCH. L'utilità SFTP non può accedere direttamente ai set di dati MVS. È possibile utilizzare il comando copy ( Esegui il
| Sviluppatore di mainframe, ingegnere di sistema |
Invia il. LODnnnnn JCLs | Il JCL precedente ha generato tutte le tabelle LODnnnnn JCL che devono essere scaricate, trasformate in CSV e trasferite nel bucket S3. Esegui il | Sviluppatore di mainframe, ingegnere di sistema |
Risorse correlate
Per ulteriori informazioni sui diversi strumenti e soluzioni utilizzati in questo documento, consultate quanto segue:
Informazioni aggiuntive
Dopo aver archiviato i dati Db2 su Amazon S3, hai a disposizione molti modi per sviluppare nuove informazioni. Poiché Amazon S3 si integra con i servizi di analisi dei dati AWS, puoi utilizzare o esporre liberamente questi dati sul lato distribuito. Ad esempio, puoi eseguire le operazioni seguenti:
Crea un data lake su Amazon S3
ed estrai informazioni preziose utilizzando query-in-place strumenti di analisi e apprendimento automatico senza spostare i dati. Avvia una funzione Lambda
configurando un flusso di lavoro di elaborazione post-caricamento integrato con AWS Transfer Family. Sviluppa nuovi microservizi per accedere ai dati in Amazon S3 o in database completamente gestiti
utilizzando AWS Glue , un servizio di integrazione dei dati senza server che semplifica la scoperta, la preparazione e la combinazione di dati per l'analisi, l'apprendimento automatico e lo sviluppo di applicazioni.
In un caso di migrazione, poiché puoi trasferire qualsiasi dato dal mainframe a S3, puoi fare quanto segue:
Elimina l'infrastruttura fisica e crea una strategia di archiviazione dei dati conveniente con Amazon S3 Glacier e S3 Glacier Deep Archive.
Crea soluzioni di backup e ripristino scalabili, durevoli e sicure con Amazon S3 e altri servizi AWS, come S3 Glacier e Amazon Elastic File System (Amazon EFS), per aumentare o sostituire le funzionalità locali esistenti.