2010-09-12 6 views
2

Je suis sûr que c'est une question assez vague qui est difficile à répondre mais je serais reconnaissant pour toute réflexion générale sur le sujet.DTS/SSIS vs Informatica Power Center

Laissez-moi vous donner un bref aperçu. Il y a une dizaine d'années, nous écrivions des charges de données en lisant des fichiers plats entrants à partir d'applications héritées et les chargions dans notre Datamart. À l'origine, nos programmes de chargement étaient écrits en VB6 et mis en forme à travers le fichier plat et, pour chaque enregistrement, exécutaient ce processus général:

1) Recherchez l'enregistrement. Si trouvé, mettez-le à jour 2) insérez le nouvel enregistrement

Puis nous avons fini par changer ce processus pour utiliser SQL Server pour DTS le fichier plat dans une table temporaire, puis nous effectuerions une jointure de base massive sur la table temporaire avec la table de production cible, en prenant les données de la table temporaire et en l'utilisant pour mettre à jour la table cible. Les enregistrements qui n'ont pas été joints ont été insérés.

Ceci est une simplification du processus, mais essentiellement, le processus est passé d'une approche itérative à "basé sur l'ensemble", ne plus effectuer les mises à jour 1 enregistrement à la fois. En conséquence, nous avons obtenu d'énormes gains de performance.

Ensuite, nous avons créé ce qui était à mon avis un ensemble puissant de fonctions partagées dans une DLL pour exécuter des fonctions communes/mise à jour des modèles en utilisant cette approche. Il a grandement abstrait le développement et a vraiment réduit le temps de développement.

Puis Informatica PowerCenter, un outil ETL, est apparu et mgt veut standardiser l'outil et réécrire les anciennes charges VB qui utilisaient DTS. J'ai entendu dire que PowerCenter traitait les enregistrements de manière itérative, mais je sais qu'il fait quelques astuces d'optimisation, donc je suis curieux de savoir comment effectuer Informatica.

Quelqu'un a-t-il une quelconque expérience de l'utilisation de DTS ou de SSIS pour être en mesure de faire une prédiction des performances de l'intestin quant à ce qui serait généralement plus performant?

Répondre

5

J'ai rejoint une organisation qui utilisait à la fois Informatica PowerCenter 8.1.1. Bien que je ne puisse pas parler pour les installations Informatica générales, je peux dire que dans cette entreprise, Informatica était extrêmement inefficace. Le principal problème est qu'Informatica a généré du code SQL vraiment honteux dans le back-end. Lorsque j'ai regardé ce qu'il faisait avec le profileur et en examinant les journaux de texte, il générait des instructions d'insertion, de mise à jour et de suppression séparées pour chaque ligne devant être insérée/mise à jour/supprimée. Au lieu d'essayer de corriger l'implémentation d'Informatica, je l'ai simplement remplacé par SSIS 2008.

Un autre problème que j'avais avec Informatica était la gestion de la parallélisation. Dans DTS et SSIS, la parallélisation des tâches était assez simple: ne définissez pas de contraintes de précédence et vos tâches s'exécuteront en parallèle. Dans Informatica, vous définissez un point de départ, puis définissez les branches pour l'exécution des processus en parallèle. Je ne pouvais pas trouver un moyen de limiter le nombre de processus parallèles à moins que je ne les définisse explicitement en enchaînant les worklets ou les tâches.

Dans mon cas, SSIS a largement surpassé Informatica. Notre processus de chargement avec Informatica a pris environ 8-12 heures. Notre processus de chargement avec SSIS et SQL Server Agent Jobs était d'environ 1 à 2 heures. Je suis certain que si nous avions réglé correctement Informatica, nous aurions pu réduire la charge à 3-4 heures, mais je ne pense toujours pas que cela aurait fait beaucoup mieux.

+1

Et bien sûr, SSIS est fourni avec SQL Server, vous pouvez donc l'utiliser sans frais supplémentaires. – HLGEM