Riferimento all'API Mainframe Connector

La tabella seguente elenca BigQuery, Cloud Storage e altre Comandi Google Cloud che puoi utilizzare con Mainframe Connector.

Prodotto Comando Descrizione Supporta la transcodifica da remoto
Comandi BigQuery Utilizza questo comando per creare un file binario. Il comando accetta un COPYBOOK DD come input.

Il comando bq export supporta alcune ottimizzazioni delle prestazioni le funzionalità di machine learning. Per ulteriori informazioni, vedi Miglioramenti delle prestazioni per bq export.

Nota: il comando bq export non va a buon fine delle richieste per esportare tabelle Bigtable di grandi dimensioni. Per evitare errori, aggiungi il flag -allowLargeResults al comando bq export quando vuoi esportare tabelle di grandi dimensioni.
Utilizza questo comando per caricare i dati in una tabella. Per ulteriori informazioni, consulta bq load. No
Utilizza questo comando per creare risorse BigQuery, ad esempio integrate o esterne, che richiedono il partizionamento e il clustering la configurazione iniziale. Per ulteriori informazioni, vedi bq mk.

Puoi anche usare il comando bq mk per generare Tabella BigQuery direttamente dall'analisi dei copybook COBOL. Per ulteriori informazioni, consulta Creare una tabella BigQuery da un archivio.
No
Utilizza questo comando per creare un job di query che esegue la query SQL specificata. Il comando legge la query SQL dal flag --sql oppure da QUERY DD. Se vengono forniti entrambi, la query nel flag --sql ha la precedenza.

Utilizza il flag --follow=true per generare un report che mostri i risultati di una query select. Per scrivere questo report in un file nel mainframe, definisci un'istruzione DD AUDITL che indichi il file che deve contenere il report sugli audit log. Non utilizzare il --follow flag se vuoi un comportamento di registrazione normale.

Alcuni risultati di query possono restituire un numero elevato di righe, a volte milioni. Affinché l'output rimanga leggibile, il numero di righe visualizzate è limitato. Per controllare il numero di righe visualizzate, utilizza il flag --report_row_limit. Ad esempio, utilizza --report_row_limit 10 per limitare i risultati a 10 righe. Di per impostazione predefinita, il numero di righe visualizzate è limitato a 30.

Per utilizzare la parametrizzazione bq query, consulta Parametrizzazione delle query bq.

Per ulteriori informazioni, consulta query bq.
Utilizza questo comando per eliminare definitivamente una risorsa BigQuery. Come questo comando elimina definitivamente una risorsa, ti consigliamo di usarlo con cautela. Per ulteriori informazioni, consulta bq rm. No
Comandi Cloud Storage Utilizza questo comando per copiare dati di testo o binari in Cloud Storage. Tu puoi usare la modalità di copia binaria semplice per copiare da IBM z/OS a Cloud Storage non modificato come parte di una pipeline di dati. Facoltativamente, puoi convertire la codifica dei caratteri dal codice di interscambio decimale codificato in binario (EBCDIC) in ASCII UTF-8 e aggiungere interruzioni di riga.

Puoi utilizzare questo comando anche per copiare il codice sorgente dell'applicazione definito in JCL (Job Control Language).
No
Società di servizi gsutil Utilizza questo comando per transcodificare un set di dati e scriverlo in Cloud Storage in Optimized Row Columnar (ORC) . Il comando legge i dati dal DD INFILE e il layout dei record dal file COPYBOOK. Se vuoi che il comando legga i dati di un file nome origine dati (DSN), usa i seguenti flag:
  • --inDsn: il DSN del set di dati di input. Se fornito, questo flag esegue l'override di INFILE DD.
  • --cobDsn: il DSN del copybook. Se specificato, questo flag sostituisce COPYBOOK DD.
Il comando quindi apre un numero configurabile di connessioni parallele l'API Cloud Storage e transcodifica il set di dati COBOL nei Formato file ORC compresso con GZIP. È previsto un rapporto di compressione di circa il 35%.

Se vuoi, puoi utilizzare questo comando per interagire con il servizio gRPC di Mainframe Connector in esecuzione su una VM sul mainframe. Per farlo, imposta SRVHOST e SRVPORT oppure fornisci il nome host e di una porta utilizzando le opzioni della riga di comando. Quando viene utilizzato il servizio gRPC, viene copiato per la prima volta in Cloud Storage dal Connettore del mainframe, quindi viene effettuata una chiamata di procedura remota (RPC) per indicare al servizio gRPC di transcodificare il file.

Puoi anche utilizzare il comando gsutil cp per effettuare le seguenti operazioni:
Utilizza questo comando per eliminare bucket o oggetti all'interno di un bucket. Per maggiori informazioni informazioni, consulta la sezione rm - Rimuovere oggetti. No
Utilità gszutil L'utilità gszutil viene eseguita utilizzando l'SDK Java IBM JZOS e fornisce un emulatore shell che accetta gsutil e la riga di comando BigQuery per le chiamate utilizzando JCL.

L'utilità gszutil estende la funzionalità della utilità gsutil accettando uno schema sotto forma di TESTO DA PARTE DEL TESTO, utilizzandolo per transcodificare i set di dati COBOL direttamente in ORC prima di caricarli sul di archiviazione ideale in Cloud Storage. L'utilità gszutil consente inoltre di eseguire BigQuery query e load utilizzando JCL.

L'utilità gszutil funziona con gRPC che aiuta a ridurre il numero di milioni di istruzioni al secondo (MIPS) il consumo eccessivo. Ti consigliamo di utilizzare l'utilità gszutil nelle di produzione per convertire i file binari di Cloud Storage formato ORC.
No
Altri comandi Utilizza questo comando per inviare un messaggio a un argomento Pub/Sub. Puoi fornire il messaggio utilizzando la riga di comando o un set di dati. No
Utilizza questo comando per attivare l'esecuzione di un Modello flessibile Dataflow. Il comando esegue un job dal percorso del modello flessibile specificato. Per Per ulteriori informazioni, consulta gcloud dataflow flex-template run. No
Utilizza questo comando per effettuare una richiesta HTTP a un servizio web o alle API REST. No
Utilizza questo comando per stampare i dati di sistema necessari nell'output standard (stdout). Ciò consente al team di assistenza di Mainframe Connector raccogliere le informazioni richieste per diagnosticare un problema senza la necessità di un'ampia interazione con il cliente.
A seconda del flag utilizzato, il comando systemreport stampa i seguenti dati di sistema:
  • --supported_ciphers: crittografi supportati
  • --available_security_providers: fornitori di sicurezza disponibili
No

Configurazione dell'ottimizzazione delle prestazioni per il comando bq export

Mainframe Connector supporta la seguente configurazione di ottimizzazione delle prestazioni per il comando bq export:

  • exporter_thread_count: (facoltativo) imposta il numero di worker thread. Il valore predefinito è 4.
  • max_read_streams: (facoltativo) imposta il numero massimo di stream di lettura. La valore predefinito è uguale al valore impostato per exporter_thread_count.
  • order_response: (Facoltativo) se imposti questo flag su true, l'esportatore mantiene l'ordine dei risultati della query. Questo flag influisce sulle prestazioni dell'esportazione. Il valore predefinito è false.
  • max_read_queue: (facoltativo) imposta il numero massimo di record di lettura code. Il valore predefinito è il doppio del numero di thread.
  • transcoding_buffer: (Facoltativo) Imposta le dimensioni del buffer di transcodifica per thread in MB. Il valore predefinito è 20 MB.

Tieni presente che puoi anche provare ad aumentare le dimensioni della finestra di trasporto impostando la variabile di ambiente OVERRIDE_GRPC_WINDOW_MB per migliorare le prestazioni. La dimensione predefinita della finestra è 4 MB.

Creare una tabella BigQuery da un copybook

Puoi utilizzare il comando bq mk per generare una tabella BigQuery direttamente dall'analisi dei copybook COBOL. Il parser nativo del copybook estrae valori predefiniti dalla clausola VALUE all'interno di un copybook e assegna alle colonne corrispondenti in una tabella BigQuery appena creata.

Per aiutarti a testare questa funzionalità, il comando bq mk fornisce anche in modalità dry run. Questa modalità ti consente di visualizzare l'anteprima CREATE TABLE SQL senza creare effettivamente la tabella in BigQuery.

Il comando bq mk fornisce le seguenti opzioni di configurazione per supportare questa funzionalità:

  • --schema_from_copybook: specifica il modello da utilizzare per creare la tabella.
  • --dry_run: (facoltativo) se è abilitato, il comando stampa solo il valore generato il comando CREATE TABLE SQL senza eseguirlo. Questo flag è impostato su false per impostazione predefinita.
  • --tablespec "[PROJECT_ID]:[DATASET].[TABLE]": specifica il parametro ID progetto BigQuery, set di dati e nome tabella per la tabella di destinazione.
  • --encoding: specifica la codifica utilizzata per leggere il file del libro mastro. Il valore predefinito è CP037.

Sono supportate le seguenti clausole VALUE:

VAR1   PIC 9(5) VALUE 55.
*-- Set VAR1 to 55
VAR1   PIC X(5) VALUE aaaa. Set VAR1 to aaaa
VAR1   PIC 9(3) COMP VALUE 3. Set VAR1 to 3 (binary)
VAR1   PIC [9(5), X(5)] VALUE <literal>. Set VAR1 to <literal>
VAR1   PIC [9(5), X(5)] VALUE ZERO. Set VAR1 to 0 or "0"
VAR1   PIC [9(5), X(5)] VALUE ZEROS. Set VAR1 to 0 or "00000"
VAR1   PIC [9(5), X(5)] VALUE ZEROES. Set VAR1 to 0 or "00000"
VAR1   PIC X(5) VALUE SPACE. Set VAR1 to  " "
VAR1   PIC X(5) VALUE SPACES. Set VAR1 to  "     "

Le clausole HIGH-VALUE e LOW-VALUE sono supportate solo per le variabili alfanumeriche.

VAR1   PIC X(5) VALUE HIGH-VALUE. Set VAR1 to `X"FF "
VAR1   PIC X(5) VALUE HIGH-VALUES. Set VAR1 to 0 or `X"FFFFFFFFFF"
VAR1   PIC X(5) VALUE LOW-VALUE. Set VAR1 to `X"00" (NULL)
VAR1   PIC X(5) VALUE LOW-VALUES. Set VAR1 to `X"0000000000" (NULL)
VAR1   PIC X(5) VALUE QUOTE. Set VAR1 to `"`
VAR1   PIC X(5) VALUE `QUOTES`. Set VAR1 to 0 or `""""`
VAR1   PIC [9(5), X(5)] VALUE NULL. Not defined and won't be supported
VAR1   PIC [9(5), X(5)] VALUE ALL <literal>. Set all fields with the value ALL to <literal>

Parametrizzazione di bq query

Il connettore mainframe ti consente di utilizzare query con parametri bq query.

Di seguito è riportato un esempio di come utilizzare un modello bq query query:

File di query

SELECT * FROM `bigquery-public-data.samples.wikipedia` WHERE title = @xtitle

Di seguito è riportato un esempio con più parametri.

File di query

SELECT * FROM bigquery-public-data.samples.wikipedia WHERE title = @mytitle AND num_characters > @min_chars;

Esempio di esecuzione

bq query \
--project_id=mainframe-connector-dev \
--location="US" \
--parameters=mytitle::Hippocrates,min_chars:INT64:42600

Copia un file da Cloud Storage nel tuo mainframe

Puoi utilizzare il comando gsutil cp per copiare un file da da Cloud Storage a un set di dati mainframe. Tieni presente che non puoi copiare i set di dati partitioned (PDS).

Per copiare un file da Cloud Storage a un set di dati mainframe, specifica il DSN e i requisiti di spazio del file che vuoi scaricare sul mainframe in JCL, come mostrato nell'esempio seguente:

//OUTFILE  DD DSN=MAINFRAME.DSN.FILE,DISP=(,CATLG),
//            RECFM=FB,DSORG=PS,
//            SPACE=(10,(2,1),RLSE),
//            AVGREC=M,
//            UNIT=SYSDA
//SYSPRINT DD SYSOUT=*
//SYSDUMP  DD SYSOUT=*
//STDIN DD *

Specifica il comando gsutil cp nel formato seguente. Se il file esiste già sul mainframe, assicurati di aggiungere l'elemento --replace al comando.

gsutil cp GCS_URI DSN --recfm=RECFM --lrecl=LRECL --blksize=BLKSIZE --noseek

Sostituisci quanto segue:

  • GCS_URI: l'URI (Uniform Resource Identifier) di Cloud Storage di il file Cloud Storage. Ad esempio, gs://bucket/sample.mainframe.dsn.
  • DSN: la posizione di destinazione DSN nel mainframe.
  • RECFM: il formato di registrazione (RECFM) del file mainframe. Il valore sono F, FB e U. Tieni presente che questi valori non fanno distinzione tra maiuscole e minuscole.
  • LRECL: (Facoltativo) La lunghezza del record (LRECL) del file. Il valore deve essere un numero intero maggiore o uguale a 0. Se LRECL non viene specificato, si presume che il file sia nel formato di record di lunghezza non definita (U).
  • BLKSIZE: (facoltativo) la dimensione del blocco del file. Se impostato su 0, il sistema determina la dimensione ottimale del blocco. Il valore deve essere un numero intero maggiore o uguale a 0. Se non specifichi un valore, il file viene considerato come un file sbloccato.
  • noseek: (Facoltativo) Includi questo parametro se vuoi migliorare il rendimento del download. Per impostazione predefinita, questo flag è impostato su false, ovvero cerca le operazioni sono abilitate.

Esempio di esecuzione

gsutil cp gs://sample-bucket/MAINFRAME.DSN.FILE MAINFRAME.DSN.FILE \
--lrecl=16 --blksize=0 --recfm=fb

Configurazione dell'ottimizzazione delle prestazioni per il comando gsutil cp

Mainframe Connector supporta la seguente configurazione di ottimizzazione delle prestazioni per il comando gsutil cp.

  • Utilizza il flag --parallelism per impostare il numero di thread. Il valore predefinito è 1 (monothread).
  • Utilizza l'argomento --maxChunkSize per impostare la dimensione massima di ogni un blocco note. Ogni blocco avrà il proprio file ORC (Optimized Row Columnar). Aumenta questo valore per ridurre il numero di blocchi creati al costo di durante il processo di transcodifica. Per maggiori dettagli, consulta Eseguire l'analisi dell'argomento maxChunkSize. Il valore predefinito è 128 MiB.
  • Utilizza l'argomento --preload_chunk_count per impostare la quantità di dati da precaricare nella memoria quando tutti i worker sono occupati. Questo argomento può migliorare e prestazioni elevate a scapito della memoria. Il valore predefinito è 2.

Esempio di esecuzione

gsutil cp \
  --replace \
  --parser_type=copybook \
  --parallelism=8 \
  --maxChunkSize=256MiB \
  gs://$BUCKET/test.orc

In questo esempio abbiamo considerato un file di grandi dimensioni e quindi abbiamo utilizzato 8 thread nella quale frequenza di linea viene raggiunta. Se hai abbastanza memoria, ti consigliamo aumenta la dimensione del chunk a 256 MiB o anche 512 MiB poiché riduce la creazione l'overhead e la finalizzazione degli oggetti Cloud Storage. Per i file di piccole dimensioni, l'utilizzo di meno thread e chunk più piccoli potrebbe produrre risultati migliori.

Analizza l'argomento maxChunkSize

Il flag maxChunkSize accetta valori sotto forma di importo e unità di misura, ad esempio 5 MiB. Puoi utilizzare uno spazio vuoto tra quantità e grandezza.

Puoi fornire il valore nei seguenti formati:

  • Formato Java: b/k/m/g/t, rispettivamente per byte, kibibyte, mebibyte, gibibyte e tebibyte
  • Formato internazionale: KiB/MiB/GiB/TiB, rispettivamente per kibibyte, mebibyte, gibibyte e tebibyte
  • Formato metrico: b/kb/mb/gb/tb, rispettivamente per kilobyte, megabyte, gigabyte e terabyte

L'analisi delle dimensioni dei dati non fa distinzione tra maiuscole e minuscole. Tieni presente che non puoi specificare importi corrispondenti. Ad esempio, utilizza 716 KiB anziché 0,7 MiB.