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 () e Abhijit Kshirsagar () AWS AWS
Archivio di codiceDB2: Unload | Ambiente: produzione | Fonte: Db2 |
Obiettivo: Amazon S3 | Tipo R: Replatform | Carico di lavoro: IBM |
Tecnologie: mainframe; data lake; database; migrazione DevelopmentAndTesting | AWSservizi: Amazon Aurora; AWS Glue; Amazon S3; Transfer AWS Family; Amazon Athena |
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'AWSambiente Cloud.
Poiché Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) è uno dei servizi più AWS integrati, puoi accedere ai dati da lì e raccogliere informazioni direttamente utilizzando AWS altri servizi come Amazon Athena, le funzioni AWS Lambda o Amazon. QuickSight Puoi anche caricare i dati su Amazon Aurora o Amazon DynamoDB AWS utilizzando Glue o Database AWS Migration Service (). AWS DMS Con questo obiettivo in mente, questo descrive come scaricare i dati Db2 in CSV file in ASCII formato 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 Restructured Extended Executor () e script. REXX JCL
Accesso a z/OS Unix System Services (USS) per generare chiavi private e pubbliche (Secure ShellSSH).
Un bucket S3 scrivibile. Per ulteriori informazioni, consulta Crea il tuo primo bucket S3 nella documentazione di Amazon S3.
Un server abilitato al AWS Transfer Family SSH File Transfer Protocol (SFTP) che utilizza Service managed come provider di identità e Amazon S3 come AWS servizio di storage. Per ulteriori informazioni, consulta Creare un server SFTP abilitato 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 (AmazonRDS)
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 ASCII CSV formato 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 primoJCL, chiamatoTABNAME, 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'SQLinput per selezionare e aggiungere criteri di filtro per includere uno o più schemi Db2.
Il secondoJCL, chiamatoREXXEXEC, utilizzerà uno JCL scheletro e il REXX programma fornito per elaborare l'elenco di tabelle creato da JCL TABNAME e generarne uno JCL per nome di tabella. Ciascuno 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 il comando JCL per scaricare la tabella e trasferire il file in. AWS L'intero processo può essere automatizzato utilizzando uno scheduler in sede o in locale. AWS
Strumenti
AWSservizi
Amazon Athena è un servizio di query interattivo che ti aiuta ad analizzare i dati direttamente in Amazon Simple Storage Service (Amazon S3) utilizzando standard. SQL
Amazon Aurora è un motore di database relazionale completamente gestito creato per il cloud e compatibile con My SQL e Postgre. SQL
AWSGlue è 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 (RDSAmazon) ti aiuta a configurare, gestire e scalare un database relazionale nel AWS cloud.
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.
AWSTransfer Family è un servizio di trasferimento sicuro che consente di trasferire file da e verso i servizi di AWS archiviazione.
Strumenti mainframe
SSHFile Transfer Protocol (SFTP)
è un protocollo di trasferimento file sicuro che consente l'accesso remoto e il trasferimento di file tra server. SSHfornisce 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 IBM per scaricare dati con diverse opzioni da. DSNTIAUL z/OS Open SSH
è una porta di software Open Source SSH in esecuzione su Unix System Service con il sistema operativo z/OS. IBM SSHè un programma di connessione sicuro e crittografato tra due computer in esecuzione su una rete /IP. TCP Fornisce diverse utilità, tra cui ssh-keygen. REXXLo script (Restructured Extended Executor)
viene utilizzato per JCL automatizzare la generazione con Db2 Unload e steps. 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 SQL query nel template per adattarla a eventuali modifiche al processo di JCL scaricamento.
È possibile convertire lo schema manualmente o utilizzando uno script su Lambda con Db2 SYSPUNCH come input. Per un processo industriale, AWSSchema Conversion Tool (SCT) è l'opzione preferita.
Infine, utilizzate uno scheduler basato su mainframe o uno scheduler attivo 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. | Generale AWS |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea un server SFTP abilitato. | Per aprire e creare un SFTP server sulla console AWS Transfer Family
| Generale AWS |
Crea un IAM ruolo 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 IAM ruolo e una policy. | AWSamministratore |
Aggiungi un utente gestito dal servizio Amazon S3. | Per aggiungere l'utente gestito dal servizio Amazon S3, segui le istruzioni nella AWSdocumentazione e usa il tuo ID utente mainframe. | Generale AWS |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea la SSH chiave. | Nel tuo USS ambiente mainframe, esegui il seguente comando.
Nota: quando viene richiesta una passphrase, lasciatela vuota. | Sviluppatore di mainframe |
Assegna i giusti livelli di autorizzazione alla SSH cartella e ai file chiave. | Per impostazione predefinita, le chiavi pubbliche e private verranno archiviate nella directory utente È 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 USS generato, apri la console AWS Transfer Family
| Sviluppatore di mainframe |
Attività | Descrizione | Competenze richieste |
---|---|---|
Genera l'elenco delle tabelle Db2 pertinenti. | Fornisci input SQL 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 SYSTABLESutilizzando una clausola SQL where. I filtri possono essere personalizzati per includere uno schema o nomi di tabella 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 sequenziali fisici (PS) sul mainframe. Questo set di dati fungerà da input per la prossima fase di generazione. JCL Prima di utilizzare il JCL TABNAME (È possibile rinominarlo se necessario), apportate le seguenti modifiche:
Processo di estrazione di elenchi di tabelle Db2
| Sviluppatore di mainframe |
Modifica i JCL modelli. | I JCL modelli forniti con questo modello contengono una scheda 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 da, che è l'impostazione predefinita. Apportate le seguenti modifiche allo scheletro: JCL UNLDSKEL
SFTPJCLScarico e scheletro
| Sviluppatore di mainframe |
Genera il Mass JCL Unload. | Questo passaggio prevede l'esecuzione di uno REXX script in un ISPF ambiente utilizzandoJCL. Fornisci l'elenco delle tabelle relative all'ambito create nel primo passaggio come input per la JCL generazione di massa in base al Apporta le seguenti modifiche in JCL REXXEXEC (puoi cambiare il nome):
Lavoro di JCL generazione di massa
Prima di utilizzare lo REXX script, apportate le seguenti modifiche:
ZSTEPSREXXsceneggiatura
| sviluppatore mainframe |
Attività | Descrizione | Competenze richieste |
---|---|---|
Eseguire la fase Db2 Unload. | Dopo la JCL generazione, ne avrai tante JCLs quante sono le tabelle da scaricare. Questa storia utilizza un esempio JCL generato 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'LODnnnnnJCLsattività. Quando si scaricano dati Db2 utilizzando a JCL con l'utilità DSNUTILB Db2 IBM fornita, è necessario assicurarsi che i dati scaricati non contengano dati numerici compressi. A tale scopo, utilizzate il parametro. DSNUTILB Il L'esempio seguente mostra l'JCLaspetto della fase di scaricamento nella finestra generata, utilizzando il carattere virgola come delimitatore.
| Sviluppatore di mainframe, ingegnere di sistema |
Esegui il SFTP passaggio. | Per utilizzare il SFTP protocollo da aJCL, utilizzare l'BPXBATCHutilità. L'SFTPutilità non può accedere direttamente ai MVS set di dati. È possibile utilizzare il comando copy ( Esegui il
| Sviluppatore di mainframe, ingegnere di sistema |
Invia il. LODnnnnn JCLs | Il precedente JCL ha generato tutte le LODnnnnn JCL tabelle che devono essere scaricateCSV, trasformate 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 AWS dei dati, 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 Transfer AWS Family. Sviluppa nuovi microservizi per accedere ai dati in Amazon S3 o in database completamente gestiti
utilizzando AWSGlue , un servizio di integrazione dei dati senza server che semplifica l'individuazione, 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 AWS altri servizi, come S3 Glacier e Amazon Elastic File System (EFSAmazon), per aumentare o sostituire le funzionalità locali esistenti.