Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Trasferisci dati Db2 z/OS su larga scala su Amazon S3 in file CSV - Prontuario AWS

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à.

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 per aiutare a generare linguaggi di controllo del lavoro (JCLs) per scaricare e trasferire tutte le tabelle Db2 necessarie.

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.

Data flow from corporate data center to Cloud AWS, showing ETL process and analytics services.
  1. Viene selezionato un elenco di tabelle per la migrazione dei dati dal catalogo Db2.

  2. L'elenco viene utilizzato per guidare la generazione di lavori di scaricamento con le colonne numeriche e di dati in formato esterno.

  3. I dati vengono quindi trasferiti su Amazon S3 utilizzando AWS Transfer Family.

  4. 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.

  5. 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.

Process flow diagram showing JCL TABNAME, table list, JCL REXXEXEC, and JCL decks steps.
  1. 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.

  2. 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.

  3. 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àDescrizioneCompetenze richieste

Crea il bucket S3.

Per istruzioni, consulta Creare il tuo primo bucket S3.

Informazioni generali su AWS

Configura il bucket S3

AttivitàDescrizioneCompetenze richieste

Crea il bucket S3.

Per istruzioni, consulta Creare il tuo primo bucket S3.

Informazioni generali su AWS
AttivitàDescrizioneCompetenze richieste

Crea un server compatibile con SFTP.

Per aprire e creare un server SFTP sulla console AWS Transfer Family, procedi come segue:

  1. Nella pagina Scegli i protocolli, seleziona la casella di controllo SFTP (SSH File Transfer Protocol) — trasferimento di file tramite Secure Shell.

  2. Per il provider di identità, scegli Servizio gestito.

  3. Per l'endpoint, scegli Accessibile pubblicamente.

  4. Per il dominio, scegli Amazon S3.

  5. Nella pagina Configura dettagli aggiuntivi, mantieni le impostazioni predefinite.

  6. Crea il server.

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

Configurare il server Transfer Family

AttivitàDescrizioneCompetenze richieste

Crea un server compatibile con SFTP.

Per aprire e creare un server SFTP sulla console AWS Transfer Family, procedi come segue:

  1. Nella pagina Scegli i protocolli, seleziona la casella di controllo SFTP (SSH File Transfer Protocol) — trasferimento di file tramite Secure Shell.

  2. Per il provider di identità, scegli Servizio gestito.

  3. Per l'endpoint, scegli Accessibile pubblicamente.

  4. Per il dominio, scegli Amazon S3.

  5. Nella pagina Configura dettagli aggiuntivi, mantieni le impostazioni predefinite.

  6. Crea il server.

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àDescrizioneCompetenze richieste

Crea la chiave SSH.

Nel tuo ambiente USS mainframe, esegui il seguente comando.

ssh-keygen -t rsa
Nota

Quando 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 /u/home/username/.ssh utente.

È necessario fornire l'autorizzazione 644 ai file chiave e 700 alla cartella.

chmod 644 .ssh/id_rsa chmod 700 .ssh
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.

  1. Nel riquadro di navigazione, selezionare Servers (Server).

  2. Scegli l'identificatore nella colonna Server ID per visualizzare i dettagli del server

  3. In Utenti, scegli un nome utente per visualizzare i dettagli dell'utente

  4. In Chiavi pubbliche SSH, scegli Aggiungi chiave pubblica SSH per aggiungere la chiave pubblica a un utente. Per la chiave pubblica SSH, inserisci la tua chiave pubblica. La chiave viene convalidata dal servizio prima di poter aggiungere il nuovo utente.

  5. Scegliere Add key (Aggiungi chiave).

Sviluppatore di mainframe

Proteggi il protocollo di comunicazione

AttivitàDescrizioneCompetenze richieste

Crea la chiave SSH.

Nel tuo ambiente USS mainframe, esegui il seguente comando.

ssh-keygen -t rsa
Nota

Quando 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 /u/home/username/.ssh utente.

È necessario fornire l'autorizzazione 644 ai file chiave e 700 alla cartella.

chmod 644 .ssh/id_rsa chmod 700 .ssh
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.

  1. Nel riquadro di navigazione, selezionare Servers (Server).

  2. Scegli l'identificatore nella colonna Server ID per visualizzare i dettagli del server

  3. In Utenti, scegli un nome utente per visualizzare i dettagli dell'utente

  4. In Chiavi pubbliche SSH, scegli Aggiungi chiave pubblica SSH per aggiungere la chiave pubblica a un utente. Per la chiave pubblica SSH, inserisci la tua chiave pubblica. La chiave viene convalidata dal servizio prima di poter aggiungere il nuovo utente.

  5. Scegliere Add key (Aggiungi chiave).

Sviluppatore di mainframe
AttivitàDescrizioneCompetenze 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:

  1. Sostituiscilo <Jobcard>con una classe di lavoro e un utente autorizzato a eseguire le utilità Db2.

  2. Sostituisci < HLQ1 > o personalizza i nomi dei set di dati di output per soddisfare gli standard del tuo sito.

  3. Aggiorna lo stack STEPLIB di PDSEs (set di dati partizionato esteso) in base agli standard del tuo sito. L'esempio in questo modello utilizza i valori predefiniti IBM.

  4. Sostituisci il nome PLAN e LIB con i valori specifici dell'installazione.

  5. Sostituisci <Schema>e inserisci i <Prefix>tuoi criteri di selezione per il catalogo Db2.

  6. Salva il JCL risultante in una libreria PDS (partitioned data set).

  7. Invia il JCL.

Processo di estrazione dell'elenco delle tabelle Db2

<Jobcard> //* //* UNLOAD ALL THE TABLE NAMES FOR A PARTICULAR SCHEMA //* //STEP01 EXEC PGM=IEFBR14 //* //DD1 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(1000,(1,1)), // DSN=<HLQ1>.DSN81210.TABLIST //* //DD2 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(1000,(1,1)), // DSN=<HLQ1>.DSN81210.SYSPUNCH //* //UNLOAD EXEC PGM=IKJEFT01,DYNAMNBR=20 //SYSTSPRT DD SYSOUT=* //STEPLIB DD DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT // DD DISP=SHR,DSN=DSNC10.SDSNLOAD // DD DISP=SHR,DSN=CEE.SCEERUN // DD DISP=SHR,DSN=DSNC10.DBCG.RUNLIB.LOAD //SYSTSIN DD * DSN SYSTEM(DBCG) RUN PROGRAM(DSNTIAUL) PLAN(DSNTIB12) PARMS('SQL') - LIB('DSNC10.DBCG.RUNLIB.LOAD') END //SYSPRINT DD SYSOUT=* //* //SYSUDUMP DD SYSOUT=* //* //SYSREC00 DD DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(32760,(1000,500)), // DSN=<HLQ1>.DSN81210.TABLIST //* //SYSPUNCH DD DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(32760,(1000,500)), // VOL=SER=SCR03,RECFM=FB,LRECL=120,BLKSIZE=12 // DSN=<HLQ1>.DSN81210.SYSPUNCH //* //SYSIN DD * SELECT CHAR(CREATOR), CHAR(NAME) FROM SYSIBM.SYSTABLES WHERE OWNER = '<Schema>' AND NAME LIKE '<Prefix>%' AND TYPE = 'T'; /*
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 SYS1 da, che è l'impostazione predefinita di IBM. Pertanto, personalizza i modelli per tenere conto degli standard specifici del sito prima di eseguirli.

Apportate le seguenti modifiche allo scheletro JCL UNLDSKEL:

  1. Modifica la scheda lavoro con una classe di lavoro e un utente autorizzati a eseguire le utilità Db2.

  2. Personalizza i nomi dei set di dati di output per soddisfare gli standard del tuo sito.

  3. Aggiorna lo stack STEPLIB in PDSEs base agli standard del tuo sito. L'esempio in questo modello utilizza i valori predefiniti IBM.

  4. Sostituiscilo <DSN> con il nome del sottosistema Db2 e l'ID di correlazione.

  5. Salvate il JCL risultante in una libreria PDS che fa parte dello stack ISPSLIB, che è la libreria di modelli scheletro standard per ISPF.

Unload e SFTP (JCL skeleton)

//&USRPFX.U JOB (DB2UNLOAD),'JOB',CLASS=A,MSGCLASS=A, // TIME=1440,NOTIFY=&USRPFX //* DELETE DATASETS //STEP01 EXEC PGM=IEFBR14 //DD01 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(TRK,(1,1)), // DSN=&USRPFX..DB2.PUNCH.&JOBNAME //DD02 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(TRK,(1,1)), // DSN=&USRPFX..DB2.UNLOAD.&JOBNAME //* //* RUNNING DB2 EXTRACTION BATCH JOB FOR AWS DEMO //* //UNLD01 EXEC PGM=DSNUTILB,REGION=0M, // PARM='<DSN>,UNLOAD' //STEPLIB DD DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT // DD DISP=SHR,DSN=DSNC10.SDSNLOAD //SYSPRINT DD SYSOUT=* //UTPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSPUN01 DD DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(1,1),RLSE), // DSN=&USRPFX..DB2.PUNCH.&JOBNAME //SYSREC01 DD DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,50),RLSE), // DSN=&USRPFX..DB2.UNLOAD.&JOBNAME //SYSPRINT DD SYSOUT=* //SYSIN DD * UNLOAD DELIMITED COLDEL ',' FROM TABLE &TABNAME UNLDDN SYSREC01 PUNCHDDN SYSPUN01 SHRLEVEL CHANGE ISOLATION UR; /* //* //* FTP TO AMAZON S3 BACKED FTP SERVER IF UNLOAD WAS SUCCESSFUL //* //SFTP EXEC PGM=BPXBATCH,COND=(4,LE),REGION=0M //STDPARM DD * SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'" &TABNAME..csv; echo "ascii " >> uplcmd; echo "PUT &TABNAME..csv " >>>> uplcmd; sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTPSITE; rm &TABNAME..csv; //SYSPRINT DD SYSOUT=* //STDOUT DD SYSOUT=* //STDENV DD * //STDERR DD SYSOUT=*

 

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. TABLIST DD Il JCL genererà un nuovo JCL per nome di tabella in un set di dati partizionato specificato dall'utente specificato in base al nome. ISPFILE DD Alloca prima questa libreria. Ogni nuovo JCL avrà due passaggi: un passaggio per scaricare la tabella Db2 in un file e un passaggio per inviare il file al bucket S3.

Apporta le seguenti modifiche in JCL REXXEXEC (puoi cambiare il nome):

  1. Sostituitelo Job card user ID con un ID utente del mainframe che abbia l'autorità di scaricamento sulle tabelle. SostituisciliSYSPROC,ISPPLIB, ISPSLIBISPMLIB, e ISPTLIB <HLQ1> valorizzali o personalizzali DSN per soddisfare gli standard del tuo sito. Per scoprire i valori specifici dell'installazione, utilizzate il comando. TSO ISRDDN

  2. Sostituiscilo <MFUSER> con un ID utente con privilegi di esecuzione del lavoro nell'installazione.

  3. <FTPUSER>Sostituiscilo con un ID utente con privilegi USS e FTP nell'installazione. Si presume che questo ID utente e le relative chiavi di sicurezza SSH siano presenti nella directory Unix Systems Services appropriata sul mainframe.

  4. Sostituiscilo <AWS TransferFamily IP> con l'indirizzo IP o il nome di dominio di AWS Transfer Family. Questo indirizzo verrà utilizzato per la fase SFTP.

  5. Invia il JCL dopo aver richiesto la sistemazione standard del sito e aver aggiornato il programma REXX come descritto di seguito.

Lavoro nella generazione di massa di JCL

//RUNREXX JOB (CREATEJCL),'RUNS ISPF TABLIST',CLASS=A,MSGCLASS=A, // TIME=1440,NOTIFY=&SYSUID //* Most of the values required can be updated to your site specific //* values using the command 'TSO ISRDDN' in your ISPF session. //* Update all the lines tagged with //update marker to desired //* site specific values. //ISPF EXEC PGM=IKJEFT01,REGION=2048K,DYNAMNBR=25 //SYSPROC DD DISP=SHR,DSN=USER.Z23D.CLIST //SYSEXEC DD DISP=SHR,DSN=<HLQ1>.TEST.REXXLIB //ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU //ISPSLIB DD DISP=SHR,DSN=ISP.SISPSENU // DD DISP=SHR,DSN=<HLQ1>.TEST.ISPSLIB //ISPMLIB DD DSN=ISP.SISPMENU,DISP=SHR //ISPTLIB DD DDNAME=ISPTABL // DD DSN=ISP.SISPTENU,DISP=SHR //ISPTABL DD LIKE=ISP.SISPTENU,UNIT=VIO //ISPPROF DD LIKE=ISP.SISPTENU,UNIT=VIO //ISPLOG DD SYSOUT=*,RECFM=VA,LRECL=125 //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSDBOUT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSDBOUT DD SYSOUT=* //SYSHELP DD DSN=SYS1.HELP,DISP=SHR //SYSOUT DD SYSOUT=* //* Input list of tablenames //TABLIST DD DISP=SHR,DSN=<HLQ1>.DSN81210.TABLIST //* Output pds //ISPFILE DD DISP=SHR,DSN=<HLQ1>.TEST.JOBGEN //SYSTSIN DD * ISPSTART CMD(ZSTEPS <MFUSER> <FTPUSER> <AWS TransferFamily IP>) /*

Prima di utilizzare lo script REXX, apportate le seguenti modifiche:

  1. Salvate lo script REXX in una libreria PDS definita sotto lo SYSEXEC stack nel JCL REXXEXEC modificato nel passaggio precedente con ZSTEPS come nome del membro. Se vuoi rinominarlo, devi aggiornare il JCL per adattarlo alle tue esigenze.

  2. Questo script utilizza l'opzione trace per stampare informazioni aggiuntive in caso di errori. È invece possibile aggiungere il EXECIO codice di gestione degli errori dopo TSO le istruzioni, e e rimuovere la riga di traccia. ISPEXEC

  3. Questo script genera i nomi dei membri utilizzando la convenzione LODnnnnn di denominazione, che può supportare fino a 100.000 membri. Se hai più di 100.000 tabelle, usa un prefisso più breve e modifica i numeri nell'istruzione. tempjob

Script STEPS REX

/*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* 10/27/2021 - added new parms to accommodate ftp */ Trace "o" parse arg usrpfx ftpuser ftpsite Say "Start" Say "Ftpuser: " ftpuser "Ftpsite:" ftpsite Say "Reading table name list" "EXECIO * DISKR TABLIST (STEM LINE. FINIS" DO I = 1 TO LINE.0 Say I suffix = I Say LINE.i Parse var LINE.i schema table rest tabname = schema !! "." !! table Say tabname tempjob= "LOD" !! RIGHT("0000" !! i, 5) jobname=tempjob Say tempjob ADDRESS ISPEXEC "FTOPEN " ADDRESS ISPEXEC "FTINCL UNLDSKEL" /* member will be saved in ISPDSN library allocated in JCL */ ADDRESS ISPEXEC "FTCLOSE NAME("tempjob")" END ADDRESS TSO "FREE F(TABLIST) " ADDRESS TSO "FREE F(ISPFILE) " exit 0
Sviluppatore di mainframe

Genera il JCLs

AttivitàDescrizioneCompetenze 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:

  1. Sostituiscilo <Jobcard>con una classe di lavoro e un utente autorizzato a eseguire le utilità Db2.

  2. Sostituisci < HLQ1 > o personalizza i nomi dei set di dati di output per soddisfare gli standard del tuo sito.

  3. Aggiorna lo stack STEPLIB di PDSEs (set di dati partizionato esteso) in base agli standard del tuo sito. L'esempio in questo modello utilizza i valori predefiniti IBM.

  4. Sostituisci il nome PLAN e LIB con i valori specifici dell'installazione.

  5. Sostituisci <Schema>e inserisci i <Prefix>tuoi criteri di selezione per il catalogo Db2.

  6. Salva il JCL risultante in una libreria PDS (partitioned data set).

  7. Invia il JCL.

Processo di estrazione dell'elenco delle tabelle Db2

<Jobcard> //* //* UNLOAD ALL THE TABLE NAMES FOR A PARTICULAR SCHEMA //* //STEP01 EXEC PGM=IEFBR14 //* //DD1 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(1000,(1,1)), // DSN=<HLQ1>.DSN81210.TABLIST //* //DD2 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(1000,(1,1)), // DSN=<HLQ1>.DSN81210.SYSPUNCH //* //UNLOAD EXEC PGM=IKJEFT01,DYNAMNBR=20 //SYSTSPRT DD SYSOUT=* //STEPLIB DD DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT // DD DISP=SHR,DSN=DSNC10.SDSNLOAD // DD DISP=SHR,DSN=CEE.SCEERUN // DD DISP=SHR,DSN=DSNC10.DBCG.RUNLIB.LOAD //SYSTSIN DD * DSN SYSTEM(DBCG) RUN PROGRAM(DSNTIAUL) PLAN(DSNTIB12) PARMS('SQL') - LIB('DSNC10.DBCG.RUNLIB.LOAD') END //SYSPRINT DD SYSOUT=* //* //SYSUDUMP DD SYSOUT=* //* //SYSREC00 DD DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(32760,(1000,500)), // DSN=<HLQ1>.DSN81210.TABLIST //* //SYSPUNCH DD DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA,SPACE=(32760,(1000,500)), // VOL=SER=SCR03,RECFM=FB,LRECL=120,BLKSIZE=12 // DSN=<HLQ1>.DSN81210.SYSPUNCH //* //SYSIN DD * SELECT CHAR(CREATOR), CHAR(NAME) FROM SYSIBM.SYSTABLES WHERE OWNER = '<Schema>' AND NAME LIKE '<Prefix>%' AND TYPE = 'T'; /*
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 SYS1 da, che è l'impostazione predefinita di IBM. Pertanto, personalizza i modelli per tenere conto degli standard specifici del sito prima di eseguirli.

Apportate le seguenti modifiche allo scheletro JCL UNLDSKEL:

  1. Modifica la scheda lavoro con una classe di lavoro e un utente autorizzati a eseguire le utilità Db2.

  2. Personalizza i nomi dei set di dati di output per soddisfare gli standard del tuo sito.

  3. Aggiorna lo stack STEPLIB in PDSEs base agli standard del tuo sito. L'esempio in questo modello utilizza i valori predefiniti IBM.

  4. Sostituiscilo <DSN> con il nome del sottosistema Db2 e l'ID di correlazione.

  5. Salvate il JCL risultante in una libreria PDS che fa parte dello stack ISPSLIB, che è la libreria di modelli scheletro standard per ISPF.

Unload e SFTP (JCL skeleton)

//&USRPFX.U JOB (DB2UNLOAD),'JOB',CLASS=A,MSGCLASS=A, // TIME=1440,NOTIFY=&USRPFX //* DELETE DATASETS //STEP01 EXEC PGM=IEFBR14 //DD01 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(TRK,(1,1)), // DSN=&USRPFX..DB2.PUNCH.&JOBNAME //DD02 DD DISP=(MOD,DELETE,DELETE), // UNIT=SYSDA, // SPACE=(TRK,(1,1)), // DSN=&USRPFX..DB2.UNLOAD.&JOBNAME //* //* RUNNING DB2 EXTRACTION BATCH JOB FOR AWS DEMO //* //UNLD01 EXEC PGM=DSNUTILB,REGION=0M, // PARM='<DSN>,UNLOAD' //STEPLIB DD DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT // DD DISP=SHR,DSN=DSNC10.SDSNLOAD //SYSPRINT DD SYSOUT=* //UTPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSPUN01 DD DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(1,1),RLSE), // DSN=&USRPFX..DB2.PUNCH.&JOBNAME //SYSREC01 DD DISP=(NEW,CATLG,DELETE), // SPACE=(CYL,(10,50),RLSE), // DSN=&USRPFX..DB2.UNLOAD.&JOBNAME //SYSPRINT DD SYSOUT=* //SYSIN DD * UNLOAD DELIMITED COLDEL ',' FROM TABLE &TABNAME UNLDDN SYSREC01 PUNCHDDN SYSPUN01 SHRLEVEL CHANGE ISOLATION UR; /* //* //* FTP TO AMAZON S3 BACKED FTP SERVER IF UNLOAD WAS SUCCESSFUL //* //SFTP EXEC PGM=BPXBATCH,COND=(4,LE),REGION=0M //STDPARM DD * SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'" &TABNAME..csv; echo "ascii " >> uplcmd; echo "PUT &TABNAME..csv " >>>> uplcmd; sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTPSITE; rm &TABNAME..csv; //SYSPRINT DD SYSOUT=* //STDOUT DD SYSOUT=* //STDENV DD * //STDERR DD SYSOUT=*

 

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. TABLIST DD Il JCL genererà un nuovo JCL per nome di tabella in un set di dati partizionato specificato dall'utente specificato in base al nome. ISPFILE DD Alloca prima questa libreria. Ogni nuovo JCL avrà due passaggi: un passaggio per scaricare la tabella Db2 in un file e un passaggio per inviare il file al bucket S3.

Apporta le seguenti modifiche in JCL REXXEXEC (puoi cambiare il nome):

  1. Sostituitelo Job card user ID con un ID utente del mainframe che abbia l'autorità di scaricamento sulle tabelle. SostituisciliSYSPROC,ISPPLIB, ISPSLIBISPMLIB, e ISPTLIB <HLQ1> valorizzali o personalizzali DSN per soddisfare gli standard del tuo sito. Per scoprire i valori specifici dell'installazione, utilizzate il comando. TSO ISRDDN

  2. Sostituiscilo <MFUSER> con un ID utente con privilegi di esecuzione del lavoro nell'installazione.

  3. <FTPUSER>Sostituiscilo con un ID utente con privilegi USS e FTP nell'installazione. Si presume che questo ID utente e le relative chiavi di sicurezza SSH siano presenti nella directory Unix Systems Services appropriata sul mainframe.

  4. Sostituiscilo <AWS TransferFamily IP> con l'indirizzo IP o il nome di dominio di AWS Transfer Family. Questo indirizzo verrà utilizzato per la fase SFTP.

  5. Invia il JCL dopo aver richiesto la sistemazione standard del sito e aver aggiornato il programma REXX come descritto di seguito.

Lavoro nella generazione di massa di JCL

//RUNREXX JOB (CREATEJCL),'RUNS ISPF TABLIST',CLASS=A,MSGCLASS=A, // TIME=1440,NOTIFY=&SYSUID //* Most of the values required can be updated to your site specific //* values using the command 'TSO ISRDDN' in your ISPF session. //* Update all the lines tagged with //update marker to desired //* site specific values. //ISPF EXEC PGM=IKJEFT01,REGION=2048K,DYNAMNBR=25 //SYSPROC DD DISP=SHR,DSN=USER.Z23D.CLIST //SYSEXEC DD DISP=SHR,DSN=<HLQ1>.TEST.REXXLIB //ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU //ISPSLIB DD DISP=SHR,DSN=ISP.SISPSENU // DD DISP=SHR,DSN=<HLQ1>.TEST.ISPSLIB //ISPMLIB DD DSN=ISP.SISPMENU,DISP=SHR //ISPTLIB DD DDNAME=ISPTABL // DD DSN=ISP.SISPTENU,DISP=SHR //ISPTABL DD LIKE=ISP.SISPTENU,UNIT=VIO //ISPPROF DD LIKE=ISP.SISPTENU,UNIT=VIO //ISPLOG DD SYSOUT=*,RECFM=VA,LRECL=125 //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSDBOUT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSDBOUT DD SYSOUT=* //SYSHELP DD DSN=SYS1.HELP,DISP=SHR //SYSOUT DD SYSOUT=* //* Input list of tablenames //TABLIST DD DISP=SHR,DSN=<HLQ1>.DSN81210.TABLIST //* Output pds //ISPFILE DD DISP=SHR,DSN=<HLQ1>.TEST.JOBGEN //SYSTSIN DD * ISPSTART CMD(ZSTEPS <MFUSER> <FTPUSER> <AWS TransferFamily IP>) /*

Prima di utilizzare lo script REXX, apportate le seguenti modifiche:

  1. Salvate lo script REXX in una libreria PDS definita sotto lo SYSEXEC stack nel JCL REXXEXEC modificato nel passaggio precedente con ZSTEPS come nome del membro. Se vuoi rinominarlo, devi aggiornare il JCL per adattarlo alle tue esigenze.

  2. Questo script utilizza l'opzione trace per stampare informazioni aggiuntive in caso di errori. È invece possibile aggiungere il EXECIO codice di gestione degli errori dopo TSO le istruzioni, e e rimuovere la riga di traccia. ISPEXEC

  3. Questo script genera i nomi dei membri utilizzando la convenzione LODnnnnn di denominazione, che può supportare fino a 100.000 membri. Se hai più di 100.000 tabelle, usa un prefisso più breve e modifica i numeri nell'istruzione. tempjob

Script STEPS REX

/*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ /* 10/27/2021 - added new parms to accommodate ftp */ Trace "o" parse arg usrpfx ftpuser ftpsite Say "Start" Say "Ftpuser: " ftpuser "Ftpsite:" ftpsite Say "Reading table name list" "EXECIO * DISKR TABLIST (STEM LINE. FINIS" DO I = 1 TO LINE.0 Say I suffix = I Say LINE.i Parse var LINE.i schema table rest tabname = schema !! "." !! table Say tabname tempjob= "LOD" !! RIGHT("0000" !! i, 5) jobname=tempjob Say tempjob ADDRESS ISPEXEC "FTOPEN " ADDRESS ISPEXEC "FTINCL UNLDSKEL" /* member will be saved in ISPDSN library allocated in JCL */ ADDRESS ISPEXEC "FTCLOSE NAME("tempjob")" END ADDRESS TSO "FREE F(TABLIST) " ADDRESS TSO "FREE F(ISPFILE) " exit 0
Sviluppatore di mainframe
AttivitàDescrizioneCompetenze 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 scopoDELIMITED, utilizzare il parametro DSNUTILB.

Il DELIMITED parametro supporta lo scaricamento dei dati in formato CSV aggiungendo un carattere come delimitatore e virgolette doppie per il campo di testo, rimuovendo la spaziatura interna nella colonna VARCHAR e convertendo tutti i campi numerici in FORMATO ESTERNO, inclusi i campi DATE.

L'esempio seguente mostra l'aspetto della fase di scaricamento nel JCL generato, utilizzando il carattere virgola come delimitatore.

UNLOAD DELIMITED COLDEL ',' FROM TABLE SCHEMA_NAME.TBNAME UNLDDN SYSREC01 PUNCHDDN SYSPUN01 SHRLEVEL CHANGE ISOLATION UR;
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 (cp) per copiare il file &USRPFX..DB2.UNLOAD.&JOBNAME sequenziale nella directory USS, dove diventa. &TABNAME..csv

Esegui il sftp comando utilizzando la chiave privata (id_rsa) e utilizzando l'ID utente RACF come nome utente per connetterti all'indirizzo IP di AWS Transfer Family.

SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'" &TABNAME..csv; echo "ascii " >> uplcmd; echo "PUT &TABNAME..csv " >>>> uplcmd; sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTP_TF_SITE; rm &TABNAME..csv;
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 submit comando su tutto ciò che è stato generato. JCLs

Sviluppatore di mainframe, ingegnere di sistema

Esegui il JCLs

AttivitàDescrizioneCompetenze 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 scopoDELIMITED, utilizzare il parametro DSNUTILB.

Il DELIMITED parametro supporta lo scaricamento dei dati in formato CSV aggiungendo un carattere come delimitatore e virgolette doppie per il campo di testo, rimuovendo la spaziatura interna nella colonna VARCHAR e convertendo tutti i campi numerici in FORMATO ESTERNO, inclusi i campi DATE.

L'esempio seguente mostra l'aspetto della fase di scaricamento nel JCL generato, utilizzando il carattere virgola come delimitatore.

UNLOAD DELIMITED COLDEL ',' FROM TABLE SCHEMA_NAME.TBNAME UNLDDN SYSREC01 PUNCHDDN SYSPUN01 SHRLEVEL CHANGE ISOLATION UR;
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 (cp) per copiare il file &USRPFX..DB2.UNLOAD.&JOBNAME sequenziale nella directory USS, dove diventa. &TABNAME..csv

Esegui il sftp comando utilizzando la chiave privata (id_rsa) e utilizzando l'ID utente RACF come nome utente per connetterti all'indirizzo IP di AWS Transfer Family.

SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'" &TABNAME..csv; echo "ascii " >> uplcmd; echo "PUT &TABNAME..csv " >>>> uplcmd; sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTP_TF_SITE; rm &TABNAME..csv;
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 submit comando su tutto ciò che è stato generato. JCLs

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.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.