Environnement: SQL Server 2008 R2 avec SSIS et SSAS.Composant de recherche SSIS - identifier les lignes ayant échoué/envoyer à la sortie de trace?
Courte question: Existe-t-il que SSIS envoie la ligne de données d'une recherche ayant échoué à un événement de trace?
Question longue: Je rassemble un certain nombre de packages SSIS qui effectuent un certain nombre de transformations sur des données à partir de tables contenant jusqu'à quelques millions de lignes. La destination finale est un cube SSAS. Toutes les recherches doivent réussir: l'échec indique qu'un problème de qualité des données s'est infiltré. L'échec de l'ensemble de l'ETL en cas de recherche échouée est donc correct.
Cependant, il ne semble pas y avoir de moyen facile de demander au composant SSIS Lookup de signaler quelle ligne a échoué lors de l'enregistrement dans le journal de suivi de la mention «Ligne écoulée sans correspondance pendant la recherche». Je cherche à voir s'il y a quelque chose que je peux faire pour attraper la ligne qui a échoué et obtenir les données de ligne enregistrées dans la trace en même temps.
Pour le moment, je dois utiliser des lignes non-assorties dans un fichier CSV pour l'analyse, mais cela signifie que le takeon continue le traitement, ce que je ne veux pas. En outre, accrocher un fichier sur chaque composant de recherche signifie gérer un grand nombre de fichiers supplémentaires (qui ont également besoin de la configuration des gestionnaires de connexions associés). Je pourrais, en théorie, gérer un seul fichier si j'alimentais toutes les sorties dans une transformation Union, mais quand je fais face à des paquets qui ont jusqu'à 10-15 transformations de recherche, cela devient désordonné très rapidement.
Je me demande s'il y a un moyen de me connecter à l'événement OnError pour obtenir ces données, mais si c'est le cas, ce n'est pas évident.
Toutes autres idées sont les bienvenues. Je ne peux pas croire que je sois le seul à me demander comment faire ça, mais mon stackoverflow-fu et google-fu m'ont abandonné et je ne peux (curieusement) rien y trouver ...
À votre santé!
Voulez-vous dire une trace SQL ou le journal/table d'erreur DTS? – Sam
Donc, vous voulez que votre 'takeon' arrête le traitement après la première recherche échouée? Ou voulez-vous qu'il affiche toutes les recherches échouées? Cela peut prendre beaucoup de temps si vous échouez sur la première erreur et que vous avez plusieurs problèmes de données dans le flux. – Sam
@Sam - soit. En fin de compte, puis-je tracer la ligne problématique sans avoir à ajouter des éléments de flux de données supplémentaires à la config. Pour un fichier journal/table serait le mieux car alors il peut être consulté historiquement, mais dans profiler va bien aussi tbh. –