Domanda

Stiamo valutando SSIS per vedere se sarà appropriato per un nuovo progetto in arrivo. Uno dei processi dovrà elaborare un file flat con record delimitati. Il file conterrà gli ordini. C'è una riga di intestazione, una riga (facoltativa) dell'indirizzo di spedizione e una o più righe di dettaglio. I campi di ogni riga sono delimitati ma non hanno lo stesso formato.

Ho letto questa risposta:

Dati transazionali SSIS (diversi tipi di record, un file)

E posso dividere i dati usando l'attività Dividi condizionale per produrre diversi output, ma non sono sicuro di come procedere da lì. Ho due problemi che devo risolvere:

  1. L'intestazione dell'ordine deve essere inserita per prima, prima dell'indirizzo e dei dettagli poiché l'indirizzo e i dettagli faranno riferimento al record dell'ordine, quindi penso di dover prima elaborare quell'output, ma non sono sicuro in SSIS come per fare in modo che quel ramo dell'attività di suddivisione condizionale venga elaborato prima degli altri rami. Idealmente, vorrei elaborare l'intestazione dell'ordine e quindi archiviare l'id ordine in una variabile utente in modo che durante l'elaborazione dei dettagli, possa fare riferimento a quella variabile.

  2. Ci saranno più ordini nel file, quindi dividerlo è più complesso.

Potrei sempre scrivere un'applicazione in C # che preelaborerà il file o leggerà il file in una tabella di gestione temporanea, ma non sono sicuro che mi piaccia questo approccio.

Qualcuno che ha superato questo processo può condividere alcuni spunti su come lo ha affrontato?

Grazie,

Chris

È stato utile?

Soluzione

Dopo la suddivisione, depositare ciascun tipo di record nella propria tabella di gestione temporanea o in una destinazione di dati grezzi ssis, che è più veloce e utile per passaggi intermedi come questo. Quindi carica tutte le intestazioni nella loro tabella finale e procedi senza errori referenziali.

Suppongo che i record di dettaglio abbiano un headerID in essi? Ciò dovrebbe semplificare la gestione della seconda domanda. In caso contrario, faccelo sapere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top