Procédure de chargement pour Datawarehouse SSIS ou procédure stockée?

Nous travaillons sur un projet d'entreposage de données où nous obtenons des données provenant de différentes sources. Nous utilisons SSIS packge pour get des données de la source au server d'entrepôt et charger la dimension et le fait en utilisant des procédures stockées. Nous pouvons append plus de bases de données à l'entrepôt existant que nous sums en train de créer.

Quel serait le process plus facile pour gérer les packages SSIS et les procédures stockées? Serait-il plus rapide d'appeler sp à partir du package SSIS ou de déployer le package SSIS sur le server et d'appeler les deux à l'aide de SQL Agent Job?

Que faisons-nous pour maintenir le package SSIS et les SP qui seront exécutés quotidiennement, hebdomadairement, mensuellement?

En règle générale, nous utilisons des packages SSIS pour gérer la journalisation de l'exécution, mais seulement pour être un 'wrapper' pour appeler les procédures stockées – même dans SQL 2012 et 2014.

Les avantages sont

  • SSIS est XML et faire une comparaison / fusion de code est impossible, alors gardez la complexité de SSIS
  • SSIS n'est généralement pas optimal pour les opérations basées sur un set. Le T-SQL natif est supérieur en règle générale
  • Les SP peuvent être contrôlés par code très facilement et faire des diff / fusion peut être fait rapidement
  • La création automatisée de SP est très simple à l'aide de métadonnées, par rapport à la génération automatique des mêmes types de logique au sein de SSIS (nous sums très intéressés par les systèmes générés par métadonnées)

En ce qui concerne l'exécution, nous appelons le packageage 'Master SSIS', qui contient un set de méta-données qui détermine quels packages enfants peuvent être appelés quand et quel degré de parallélisme vous voulez. Les méta-données contiennent également des informations sur le planning du package "Master SSIS" et sur le type de chargement quotidien, hebdomadaire, mensuel, adhoc, etc.