Fase Sorgente esterna: Sezione formato scheda OutputDataStage®)
Utilizzare la sezione Formato per fornire informazioni sul formato dei dati di origine che si stanno leggendo.
Questa scheda sezione ha un formato simile alla sezione Proprietà.
Se non si modificano le impostazioni del formato, lo stage produce un file con il seguente formato:
- Il file comprende le colonne a lunghezza variabile contenute tra virgolette.
- Tutte le colonne sono delimitate da una virgola, ad eccezione della colonna finale in una riga.
- Le righe sono delimitate da una nuova riga UNIX.
Per modificare le singole proprietà, specificare i valori per le opzioni nella sezione Livello record, nella sezione Impostazioni predefinite campo o in altre sezioni visualizzate.
Qualsiasi proprietà impostata in questa scheda può essere sovrascritta a livello di colonna impostando le proprietà per le singole colonne nella finestra di dialogo Modifica metadati di colonna .
Questa descrizione utilizza i termini "record" e "riga" e "campo" e "colonna" in modo intercambiabile.
Le seguenti sezioni elencano i tipi di proprietà e le proprietà disponibili per ogni tipo.
Livello record
Queste proprietà definiscono i dettagli sul modo in cui i record di dati vengono formattati nel file flat. Dove è possibile immettere un carattere, di solito può essere un carattere ASCII. Le proprietà disponibili vengono visualizzate nel seguente elenco:
- Delimitatore finale. Specificare il singolo carattere scritto dopo l'ultima colonna di un record al posto del delimitatore di campo. Immettere un carattere o selezionare uno dei seguenti valori: spazio vuoto, fine, nessuno, null, tabulazione o virgola. IBM DataStage ignora la stringa delimitatore specificata durante la lettura del file. Consultare il seguente diagramma per un'illustrazione.
- spazio. L'ultima colonna di ogni record non includerà gli spazi vuoti finali che si trovano alla fine del record.
- fine. L'ultima colonna di ogni record non contiene il delimitatore di campo. Questa è l'impostazione predefinita.
- nessuno. L'ultima colonna di ogni record non ha un delimitatore, che viene utilizzato per i campi a larghezza fissa.
- null. L'ultima colonna di ciascun record è delimitata dal carattere null ASCII.
- virgola. L'ultima colonna di ogni record è delimitata dalla virgola ASCII.
- scheda. L'ultima colonna di ogni record è delimitata dal carattere di tabulazione ASCII.
- Intatto. La proprietà intatta specifica un identificativo di uno schema parziale. Uno schema parziale specifica che solo una o più colonne denominate nello schema possono essere modificate dallo stage. Tutte le altre colonne nella riga vengono trasmesse senza modifiche. Il file contenente lo schema parziale viene specificato nella proprietà File di schema nella scheda Output . Questa proprietà ha una proprietà dipendente:
- Controlla intatto. Selezionare questa impostazione per forzare la convalida dello schema parziale quando il file o i file vengono importati. Questa impostazione può ridurre le prestazioni.
- Stringa delimitatore di record. Specificare la stringa alla fine di ogni record. Immettere uno o più caratteri. Questa impostazione si esclude reciprocamente con il delimitatore Record, che è il valore predefinito, e il tipo di record e il prefisso del record.
- Delimitatore record. Specificare il carattere singolo alla fine di ogni record. Immettere un carattere o selezionare una delle seguenti opzioni:
- Nuova riga UNIX (impostazione predefinita)
- null
(Per specificare una nuova riga DOS, utilizzare la proprietà Stringa delimitatore record impostata su "\R\N" oppure scegliere
dal menu.)Il delimitatore di record si esclude reciprocamente con la stringa del delimitatore di record, il prefisso di record e il tipo di record.
- Lunghezza record. Selezionare Fisso dove vengono letti i campi a lunghezza fissa. IBM DataStage calcola la lunghezza appropriata per il record. In alternativa, specificare la lunghezza dei record fissi come numero di byte. Questa impostazione non viene utilizzata per impostazione predefinita (i file predefiniti sono delimitati da virgole).
- Prefisso record. Specifica che un record a lunghezza variabile ha come prefisso un prefisso di lunghezza di 1, 2 o 4 byte. È impostato su 1 per impostazione predefinita. Questa impostazione si esclude reciprocamente con il delimitatore di record, che è il valore predefinito, e la stringa del delimitatore di record e il tipo di record.
- Tipo di record. Specifica che i dati sono costituiti da record bloccati a lunghezza variabile (variabili) o impliciti (impliciti). Se si sceglie la proprietà implicita, i dati vengono scritti come un flusso senza limiti di record espliciti. La fine del record viene dedotta quando tutte le colonne definite dallo schema vengono analizzate. È possibile utilizzare la proprietà variabile per specificare uno dei seguenti formati IBM bloccati o estesi: V, VB, VS, VBS o VR. I dati vengono importati utilizzando uno di tali formati. Questi formati non sono disponibili per l'esportazione.
Questa proprietà si esclude reciprocamente con Lunghezza record, Delimitatore record, Stringa delimitatore record e Prefisso record e per impostazione predefinita non viene utilizzato.
Valori predefiniti del campo
Definisce le proprietà predefinite per le colonne lette dal file o dai file. Queste proprietà vengono applicate a tutte le colonne, ma possono essere sovrascritte per le singole colonne dalla scheda Colonne utilizzando la finestra di dialogo Modifica metadati di colonna. Un motivo comune per sovrascrivere una proprietà per una singola colonna si verifica quando vengono letti file CSV (comma - separated values). I file CSV spesso racchiudono i campi tra virgolette quando i campi potrebbero contenere un carattere speciale, ad esempio il delimitatore di campo. In questo caso, la proprietà Quote per le colonne in questione deve essere sovrascritta.
Dove è possibile immettere un carattere, di solito può essere un carattere ASCII. Le proprietà disponibili sono:
- Lunghezza campo effettiva. Specifica il numero effettivo di byte da ignorare se la lunghezza del campo è uguale all'impostazione della proprietà di lunghezza del campo null.
- Delimitatore. Specifica il delimitatore finale di tutti i campi nel record. Immettere un carattere ASCII o selezionare uno tra spazi, fine, nessuno, null, virgola o tabulazione. IBM DataStage ignora il delimitatore durante la lettura.
- spazio. Gli spazi alla fine di una colonna vengono ignorati, ovvero non vengono considerati come parte della colonna.
- fine. La fine di un campo viene presa come delimitatore, pertanto non esiste un delimitatore separato. Questa non è la stessa impostazione di ` Nessuno ', che viene utilizzata per i campi con colonne a larghezza fissa.
- nessuno. Nessun delimitatore (utilizzato per la larghezza fissa).
- null. Viene utilizzato il carattere null ASCII.
- virgola. Viene utilizzato il carattere ASCII virgola.
- scheda. Viene utilizzato il carattere di tabulazione ASCII.
- Stringa delimitatore. Specificare la stringa alla fine di ogni campo. Immettere uno o più caratteri. Questo è reciprocamente esclusivo con Delimitatore, che è il valore predefinito. Ad esempio, specificando `, ` (spazio virgola - non è necessario immettere le virgole invertite) si specifica che ogni campo è delimitato da `, ` a meno che non venga sovrascritto per singoli campi. IBM DataStage ignora la stringa del delimitatore durante la lettura.
- Lunghezza campo null La lunghezza in byte di un campo a lunghezza variabile che contiene un valore null. Quando viene letto un campo a lunghezza variabile, una lunghezza di campo null nel campo origine indica che contiene un valore null. Questa proprietà si esclude reciprocamente con un valore campo null.
- Valore campo null Specifica il valore fornito a un campo null se l'origine è impostata su null. Può essere un numero, una stringa o un carattere escape letterale di tipo C. Ad esempio, è possibile rappresentare un valore byte per \ooo, dove ogni o è una cifra ottale compresa tra 0 e 7 e la prima o è < 4 oppure per \xhh, dove ogni h è una cifra esadecimale compresa tra 0 e F. È necessario utilizzare questo modulo per codificare i valori byte non stampabili.
Questa proprietà si esclude reciprocamente con la lunghezza del campo Null e la lunghezza effettiva. Per una rappresentazione di dati a larghezza fissa, è possibile utilizzare Pad char (dalla sezione generale dei valori predefiniti del tipo) per specificare un carattere finale ripetuto se il valore specificato è più breve della larghezza fissa del campo.
È possibile specificare un elenco di valori null che una colonna potrebbe contenere e che rappresentano null. Specificare un carattere separatore nella proprietà dipendente Separatore valore campo null e utilizzare questo separatore per delimitare i valori null nella proprietà Valore campo null . Ad esempio, se si imposta Separatore valore campo null per contenere il carattere barra (/), è possibile specificare NULL/null/NUL/nul per specificare che una di queste stringhe potrebbe rappresentare un valore null in questa colonna.
- Separatore valore campo null
Questa è una proprietà dipendente di Valore campo null. È possibile specificare un separatore che può essere utilizzato nella proprietà Valore campo null per specificare un intervallo di valori che potrebbero rappresentare il valore null. È possibile specificare un numero, una stringa o un carattere escape letterale di tipo C (come per Valore campo null) come separatore, ma un singolo carattere come una virgola (,) o una barra (/) è la scelta migliore. È necessario specificare un separatore solo se si specificano più valori in Valore campo null; specificare un separatore senza utilizzarlo causerà un errore di runtime.
- Byte prefisso. È possibile utilizzare questa opzione con campi a lunghezza variabile. I campi a lunghezza variabile possono essere delimitati da un carattere o preceduti da un prefisso a 1, 2 o 4 byte che contiene la lunghezza del campo. IBM DataStage legge il prefisso della lunghezza ma non include il prefisso come campo separato nel dataset che legge dal file.
Questa proprietà si esclude reciprocamente con le proprietà Delimitatore, Virgolette e Delimitatore finale, che sono utilizzate per impostazione predefinita.
- Stampa campo. Questa proprietà è destinata ad essere utilizzata durante il debug dei lavori. Impostarlo in modo che IBM DataStage produca un messaggio per ogni campo che legge. Il messaggio ha il formato:
Importing N: D
dove:- N è il nome del campo.
- D sono i dati importati del campo. I caratteri non stampabili contenuti in D sono preceduti da un carattere escape e scritti come valori letterali della stringa C; se il campo contiene dati binari, viene emesso in formato ottale.
- virgolette. Specifica che i campi a lunghezza variabile sono racchiusi tra virgolette singole, virgolette doppie o un altro carattere o coppia di caratteri. Scegliere Single o Double, oppure inserire un carattere. Questa opzione è impostata su virgolette doppie per impostazione predefinita.
Durante la lettura, IBM DataStage ignora il carattere di virgoletta iniziale e legge tutti i byte fino a ma non includendo il carattere di virgoletta finale.
- Prefisso vettore. Per i campi che sono vettori di lunghezza variabile, specificare che un prefisso di 1, 2 o 4 byte contiene il numero di elementi nel vettore. È possibile sovrascrivere questo prefisso predefinito per singoli vettori.
I vettori a lunghezza variabile devono utilizzare un prefisso sul vettore o un collegamento ad un altro campo per specificare il numero di elementi nel vettore. Se il vettore a lunghezza variabile ha un prefisso, utilizzare questa proprietà per indicare la lunghezza del prefisso. IBM DataStage legge il prefisso della lunghezza ma non lo include come campo separato nel dataset. Per impostazione predefinita, la lunghezza del prefisso viene assunta a 1 byte.
Valori predefiniti tipo
Queste proprietà si applicano a tutte le colonne di un tipo di dati specifico a meno che non vengano specificamente sovrascritte a livello di colonna. Sono divisi in un numero di sottogruppi in base ai tipi di dati.
Informazioni generali
- Ordine byte. Specifica come vengono ordinati i tipi di dati a più byte (tranne i tipi di dati stringa e non elaborati). Scegliere tra:
- little - endian. Il byte alto è a destra.
- big - endian. Il byte alto è sulla sinistra.
- native - endian. Come definito dal formato nativo della macchina. Questa è l'impostazione predefinita.
- Formato dati. Specifica il formato di rappresentazione dati di un campo. Si applica ai campi di tutti i tipi di dati tranne stringa, ustring e raw e ai campi record, subrec o con tag che contengono almeno un campo che non è stringa o raw. Scegliere tra:
- binario
- testo (impostazione predefinita)
Un'impostazione di binario ha significati diversi quando viene applicata a tipi di dati differenti:
- Per i decimali, binary indica packed.
- Per altri tipi di dati numerici, binario significa "non testo".
- Per le date, binario è equivalente a specificare la proprietà juliana per il campo data.
- Per il tempo, binario è equivalente a midnight_seconds.
- Per la registrazione data / ora, il binario specifica che il primo numero intero contiene un conteggio del giorno giuliano per la parte data della registrazione data / ora e il secondo numero intero specifica la parte ora della registrazione data / ora come numero di secondi dalla mezzanotte. Una data / ora binaria specifica che vengono scritti due numeri interi di 32.
Per impostazione predefinita i dati sono formattati come testo, come segue:
- Per il tipo di dati data, il testo specifica che i dati sono letti, contengono una data basata sul testo nel formato %yyyy - %mm -%dd o nel formato data predefinito se ne è stata definita una nuova su un sistema NLS.
- Per il tipo di dati decimali: un campo rappresenta un decimale in un formato stringa con uno spazio iniziale o '-' seguito da cifre decimali con un punto decimale incorporato se la scala è diversa da zero. Il formato della stringa di destinazione è: [ + | - ]ddd. [ ddd] e tutti gli argomenti di precisione e scala vengono ignorati.
- Per i campi numerici (int8, int16, int32, uint8, uint16, uint32, sfloat e dfloat): IBM DataStage presuppone che i campi numerici siano rappresentati come testo.
- Per il tipo di dati dell'ora: text specifica che il campo rappresenta l'ora nel formato basato sul testo %hh: %nn:%ss.
- Per il tipo di dati data / ora: text specifica una data / ora basata sul testo nel formato %yyyy - %mm -%dd %hh: %nn:%ss.
- Larghezza massima campo. Il numero massimo di byte in una colonna rappresentato come stringa. Immettere un numero. Questo è utile quando si memorizzano dei numeri come testo. Se si sta utilizzando una serie di caratteri a larghezza fissa, è possibile calcolare esattamente la lunghezza. Se si sta utilizzando una serie di caratteri a lunghezza variabile, calcolare una larghezza massima adeguata per i campi. Si applica ai campi di tutti i tipi di dati eccetto data, ora, data/ora e raw, nonché a record, record secondario o con tag, se contengono almeno un campo di questo tipo.
- Larghezza campo. Il numero di byte in un campo rappresentato come stringa. Immettere un numero. Questo è utile quando si memorizzano dei numeri come testo. Se si utilizza una serie di caratteri a larghezza fissa, è possibile calcolare esattamente il numero di byte. Se si tratta di una codifica a lunghezza variabile, basare il calcolo sulla larghezza e sulla frequenza dei caratteri a larghezza variabile. Si applica ai campi di tutti i tipi di dati eccetto data, ora, data/ora e raw, nonché a record, record secondario o con tag, se contengono almeno un campo di questo tipo.
Se non si specifica né la larghezza del campo né la larghezza massima del campo, i campi numerici scritti come testo avranno il seguente numero di byte come larghezza massima:
- Numeri interi con segno o senza segno a 8 bit: 4 byte
- Numeri interi con segno o senza segno a 16 bit: 6 byte
- Numeri interi con o senza segno a 32 bit: 11 byte
- Numeri interi con segno o senza segno a 64 bit: 21 byte
- mobile a precisione singola: 14 byte (segno, cifra, punto decimale, 7 frazione, "E", segno, 2 esponente)
- virgola mobile a doppia precisione: 24 byte (segno, cifra, virgola decimale, 16 frazione, "E", segno, 3 esponente)
- Carattere di riempimento. Questa proprietà viene ignorata per i collegamenti di output.
- Serie di caratteri. Specifica la serie di caratteri. Scegliere tra ASCII o EBCDIC. Il valore predefinito è ASCII. Si applica a tutti i tipi di dati tranne raw e ustring e record, subrec o con tag che non contengono campi diversi da raw o ustring.
Stringa
- Esportare EBCDIC come ASCII. Non rilevante per i collegamenti di output.
- Importa ASCII come EBCDIC. Selezionare questa opzione per indicare che i caratteri ASCII vengono letti come caratteri EBCDIC.
Decimale
- Consenti tutti zeri. Specifica se trattare o meno un campo decimale compresso contenente tutti zeri (che normalmente non è lecito) come rappresentazione valida e pari a zero. Selezionare Sì o No. Il valore predefinito è No.
- Separatore decimale. Specificare il carattere ASCII che agisce come separatore decimale (punto per impostazione predefinita).
- Compito. Selezionare un'opzione per specificare cosa contengono le colonne decimali, scegliere tra:
- Sì per specificare che i campi decimali contengono dati in formato decimale compresso (il valore predefinito). Ha le seguenti proprietà secondarie:
Controllare. Selezionare Sì per verificare che i dati siano compressi oppure No per non verificarlo.
Firmato. Selezionare Sì per utilizzare il segno esistente durante la lettura dei campi decimali. Selezionare No per scrivere un segno positivo (0xf) indipendentemente dal valore del segno effettivo dei campi.
- No (separato) per specificare che contengono decimali non compressi con un byte di segno separato. Questo ha la seguente proprietà secondaria:
Posizione segno. Scegliere l'inizio o la fine a seconda del caso.
- No (a zone) per specificare che contengono un decimale non compresso in testo ASCII o EBCDIC. Questo ha la seguente proprietà secondaria:
Posizione segno. Scegliere l'inizio o la fine a seconda del caso.
- No (overpunch) per specificare che il campo ha un byte iniziale o finale che contiene un carattere che specifica sia il valore numerico di quel byte che se il numero nel suo insieme è con segno negativo o positivo. Questo ha la seguente proprietà secondaria:
Posizione segno. Scegliere l'inizio o la fine a seconda del caso.
- Sì per specificare che i campi decimali contengono dati in formato decimale compresso (il valore predefinito). Ha le seguenti proprietà secondarie:
- Precisione Specifica la precisione di un decimale compresso. Immettere un numero.
- Arrotondamento. Specifica come arrotondare il campo sorgente per adattarlo al decimale di destinazione quando si legge un campo sorgente in un decimale. Scegliere tra:
- up (soffitto). Troncare la colonna di origine verso l'infinito positivo. Questa modalità corrisponde alla modalità Round Up IEEE 754. Per esempio, 1.4 diventa 2, -1.6 diventa -1.
- giù (pavimento). Troncare la colonna di origine verso l'infinito negativo. Questa modalità corrisponde alla modalità IEEE 754 Round Down. Per esempio, 1.6 diventa 1, -1.4 diventa -2.
- valore più vicino. Arrotondare la colonna di origine verso il valore rappresentabile più vicino. Questa modalità corrisponde alla modalità ARROTONDATA COBOL. Ad esempio, 1.4 diventa 1, 1.5 diventa 2, -1.4 diventa -1, -1.5 diventa -2.
- tronca verso zero. Questa è l'impostazione predefinita. Eliminare le cifre frazionarie alla destra della cifra frazionaria più a destra supportata dalla destinazione, indipendentemente dal segno. Ad esempio, se la destinazione è un numero intero, tutte le cifre frazionali sono troncate. Se la destinazione è un altro decimale con una scala più piccola, tronca alla dimensione della scala del decimale di destinazione. Questa modalità corrisponde alla funzione COBOL INTEGER - PART. Utilizzando questo metodo 1,6 diventa 1, -1,6 diventa -1.
- Scala. Specifica la scala di un decimale compresso di origine.
Numerico
- formato_C. Eseguire la conversione non predefinita dei dati da dati stringa a un numero intero o a virgola mobile. Questa proprietà specifica una stringa di formato in linguaggio C utilizzata per la lettura di stringhe di numeri interi o a virgola mobile. Viene passato a sscanf(). Ad esempio, specificando un formato C di %x e una larghezza campo di 8, si garantisce che un numero intero a 32 bit sia formattato come stringa esadecimale a 8 byte.
- In_format. Stringa di formato utilizzata per la conversione dei dati da stringa a dati interi o a virgola mobile. Viene passata a sscanf(). Per impostazione predefinita, IBM DataStage avvia la funzione C sscanf() per convertire un campo numerico formattato come stringa in dati interi o a virgola mobile. Se questa funzione non emette dati in un formato soddisfacente, è possibile specificare la proprietà in_format per passare gli argomenti di formattazione a sscanf().
- Out_format. Questa proprietà non è rilevante per i collegamenti di output.
Data
- Giorni a partire da. Le date vengono scritte come un numero intero con segno che contiene il numero di giorni dalla data specificata. Immettere una data nel formato%yyyy-%mm-%dg o nel formato data predefinito se è stata definita una nuova data su un sistema NLS.
- Stringa formato. Il formato della stringa di una data. Per impostazione predefinita questo è %yyyy-%mm-%dd.
- È Giuliano. Selezionare questo per specificare che le date sono scritte come valore numerico contenente il giorno Giuliano. Un giorno Giuliano specifica la data come numero di giorni dal 1° gennaio del 4713 a.C. alle ore 12:00 (mezzogiorno) GMT.
Data/ora
- Stringa formato. Specifica il formato delle colonne che rappresentano l'ora come stringa. Per impostazione predefinita, è %hh - %mm -%ss.
- È mezzanotte secondi. Selezionalo per specificare che i tempi sono scritti come un intero binario a 32 bit contenente il numero di secondi trascorsi dalla mezzanotte precedente.
Data/ora
- Stringa formato. Specifica il formato di una colonna che rappresenta una data / ora come stringa. Il formato combina il formato per le stringhe di data e ora.