Trasferimento di più righe da un file XML o JSON alla fase gerarchica ( DataStage )
È possibile trasferire più righe da un file XML o JSON alla fase gerarchica come un unico record. Questo metodo è necessario quando il file XML o JSON si trova in un connettore di archiviazione file.
Quando si crea un DataStage® flusso per analizzare un file XML o JSON che si trova nel connettore di archiviazione file (ad esempio IBM Cloud® Object Storage, Amazon S3, o Google Cloud Storage ) nell' Hierarchical Data stage, è necessario passare l'intera stringa XML o JSON come un unico record. Normalmente un file XML o JSON contiene più righe.
Specificare le proprietà del formato file per il file XML o JSON
Imposta il formato file del connettore su delimitato e imposta i valori per il delimitatore di campo e il delimitatore di riga in modo che il connettore legga il formato file come una riga e una colonna.I diversi connettori hanno impostazioni diverse, quindi assicurati di fare riferimento alla documentazione del connettore per i valori corretti.
| Impostazione | Valore |
|---|---|
| Formato file | Delimitato |
| Definizione di record | Nessuno |
| Delimitatore di campo | ~ Nota: il delimitatore di campo può essere ~ o qualsiasi altro carattere che non sia già presente nel file XML o JSON, che imposta l'intera riga come delimitatore di campo.
|
| Delimitatore riga | <CRLF> |
| Tutte le altre impostazioni | Lasciare come impostazione predefinita. |
Utilizzo di " Transformer stage " per unire tutte le righe in un'unica riga
- Apri la scheda Connettore Stage, quindi apri la sezione Avanzate. Quindi, imposta la modalità di esecuzione su "Sequenziale" e fai clic su Salva.
- Configurare l' Transformer stage e per unire tutte le righe in un'unica riga.
Nell'esempio seguente, si imposta un DataStage flusso in modo che abbia un Amazon S3 connettore per un'origine, che si collega a un Transformer stage, che a sua volta si collega a una fase gerarchica, che si collega a un file sequenziale come destinazione.
In " Transformer stage " (Visualizza/Modifica/Esporta/Importa), fare clic sulla scheda "Output" (Output), aprire la sezione "Columns" (Colonne), quindi fare clic su "Edit" (Modifica). Imposta l'elenco delle colonne in modo che contenga una sola colonna.
- Specificare le seguenti impostazioni:
Tabella 2. Impostazione Valore Formato file Delimitato Definizione di record Nessuno Delimitatore di campo ~ Delimitatore riga <CR> - Fai clic sulla scheda Output, apri la sezione Colonne, quindi fai clic su Modifica. Quindi, imposta l'elenco delle colonne in modo che contenga una sola colonna.
È possibile impostare il nome della colonna come " COLUMN_1 " e il tipo come VARCHAR. Impostare il valore della lunghezza in modo che sia maggiore della lunghezza massima delle righe nel file XML.
- Clicca su Applica e torna indietro.
- Apri l' Transformer stage, quindi fai clic su Aggiungi variabile di fase +. Assegna alla nuova variabile il nome "combined"
- Clicca sull'icona della calcolatrice per aprire il generatore di espressioni. Quindi, impostare la derivazione su
if combined="" then Link_1.COLUMN_1 else combined:Link_1.COLUMN_1, doveLink_1è il nome del collegamento che collega il connettore e l' Transformer stage e. Quindi, clicca su Applica e torna indietro. - Apri la scheda Transformer Stage, quindi apri la sezione Avanzate. Quindi, imposta la modalità di esecuzione su "Sequenziale" e fai clic su Salva.
- Aprire la scheda Output, quindi aggiungere un'impostazione di vincolo di
LastRow(). - Nella sezione Output imposta la derivazione su
combined, il nome della variabile di fase che hai creato in precedenza. Modifica il nome della colonna inoutputStringe imposta la lunghezza su un numero elevato superiore alla lunghezza totale della stringa del file. - Clicca su Salva e torna indietro.
- Specificare le seguenti impostazioni: