Pergunta

Estamos avaliando SSIS para ver se ele será adequado para um novo projeto que está chegando. Um dos processos terão de processar um arquivo simples com registros delimitados. O arquivo conterá ordens. Há uma linha de cabeçalho, um (opcional) linha de endereço de entrega, e uma ou mais linhas de detalhe. campos de cada linha são delimitadas, mas não são o mesmo formato.

Eu li esta resposta:

dados

SSIS transacionais (diferentes tipos de registro, um arquivo)

E eu posso dividir os dados usando a tarefa condicional Dividir para produzir várias saídas, mas não sei como proceder a partir daí. Eu tenho duas questões que eu preciso para resolver:

  1. O cabeçalho da ordem deve ser inserido primeiro, antes de o endereço e detalhes desde o endereço e detalhes fará referência ao registro de pedido, então eu acho que eu preciso para processar que a saída primeiro, mas eu não tenho certeza no SSIS como para fazer esse ramo da tarefa condicional Dividir ser processado antes os outros ramos. Idealmente, gostaria de processar o cabeçalho da ordem e, em seguida, armazena o ID de ordem em uma variável de utilizador, de modo que, quando o processamento dos dados, que pode fazer referência a essa variável.

  2. Haverá vários pedidos no arquivo, assim que a divisão é mais complexa.

Eu sempre poderia escrever um aplicativo em C # que irá pré-processar o arquivo ou ler o arquivo em uma tabela de teste, mas eu não tenho certeza se eu gosto dessa abordagem.

Pode alguém que tenha sido através deste processo compartilham alguns insights sobre como eles lidaram com isso?

Obrigado,

Chris

Foi útil?

Solução

Após a separação, depositar cada tipo de registro em seu próprio tabela de teste - ou em um destino de dados brutos ssis, que é mais rápido e bom para etapas intermediárias como este. Em seguida, carregar todos os cabeçalhos em sua mesa final e prosseguir sem erros referenciais.

Estou assumindo os registros de detalhes têm um headerID neles? Isso deve fazer lidar com a sua 2ª pergunta fácil. Se não, deixe-nos saber.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top