2011-05-06 5 views
0

Je voudrais apporter une source XML et faire la conversion de données et mettre à jour dans une table. Les données de cette table seront utilisées pour mettre à jour une autre table. Comment accomplir cela dans SSIS?SSIS deux tables de transfert

Je comprends les deux premières étapes. Mais perdu après ça.

  1. Source XML (sous tâche de flux de données)
  2. Conversion de données

  3. OLE DB destination? (Si j'utilise la destination OLE DB, je ne peux plus l'utiliser comme source pour mettre à jour une autre table). Quel composant devrais-je utiliser pour accomplir ceci?

TIA

Répondre

0

Utilisez la destination OLE DB pour injecter vos données source XML dans votre table de mise en scène. Ensuite, dans votre flux de contrôle, exécutez une tâche Exécuter SQL après votre tâche de flux de données pour exécuter une procédure stockée ou un script T-SQL pour déplacer vos données de la table intermédiaire dans les tables de production et tronquer la table intermédiaire si nécessaire. J'ai trouvé que SSIS est excellent pour le travail ETL, mais le déplacement de données dans une BD ou un travail d'agrégation est mieux réalisé en utilisant T-SQL dans les process stockés. Plus facile à écrire, à contrôler et vous savez que vous n'aurez pas de manigances RBAR sur lesquelles vous pouvez vous retrouver dans une DFT.

YMMV

2

Au sein d'un flux de données, vous pouvez diviser les enregistrements pour aller à plusieurs tables en utilisant soit un fractionnement conditionnel (si vous voulez des enregistrements pour aller dans un sens et certains d'aller d'une autre manière) ou une tâche mulicast si vous veulent que tous les enregistrements soient dirigés vers les deux destinations. Nous utilisons une multidiffusion pour créer deux tables de transfert, l'une où les données brutes du fichier resteront et l'autre où les données seront nettoyées et transformées avant d'entrer dans nos tables prod. Cela nous permet de rechercher facilement si certaines données problématiques sont dues à notre processus de transformation (un bogue) ou à l'envoi de mauvaises données (un problème du côté client, mais qui pourrait nécessiter plus d'étapes si elles ne peuvent pas être réparées).).

Vous pouvez également avoir plusieurs flux de données ayant tous la même source. Ou vous pouvez insérer dans une table de transfert, puis avoir un second flux de données ou une tâche SQL exécutée pour déplacer ces données là où vous le souhaitez.

Questions connexes