2017-09-13 2 views
0

J'essaie de créer des tests raisonnables pour nos processus ETL. Je pense qu'un jeu de données d'ingestion de référence/test est nécessaire. Je ne veux pas utiliser les données client (ce qui est l'autre alternative ici).Ensembles de données de test ETL/Framework

Je lancerais alors l'ETL actuel sur ce jeu de données de test pour obtenir des transformations de référence. Ainsi, lorsque le code source change, nous pouvons tester les références à ce qui est actuellement produit dans l'ETL et nous assurer qu'aucune régression n'a été créée.

Je ne suis pas sûr que ce soit la bonne approche. Par exemple, si une transformation est modifiée dans le code source, les tests qui se comparent à la transformation de référence échoueront à juste titre. Nous devrions créer un nouveau jeu de données de transformation de référence pour cette transformation. Vous pouvez voir cela devenir fou une fois qu'une équipe de développeurs commence à apporter des modifications à des transformations séparées. En fin de compte, j'ai besoin d'un moyen de produire un ensemble de données de test et de tester les transformations. Des idées?

+1

Je produirais votre ensemble de données de test et produirais ensuite un ensemble de tests qui vérifieraient les résultats finaux selon la logique que l'ETL devrait suivre, plutôt que de les comparer à vos résultats finaux ETL actuels. Les tests pourraient être des choses comme des requêtes SQL qui recherchent un résultat spécifique, et pourraient être automatisées. Les tests de ce type nécessitent beaucoup d'engagement et prennent beaucoup de temps: vous devez élaborer les scénarios de données de test et les tests eux-mêmes. Mais cela aide à vérifier que votre ETL fait ce qu'il devrait faire. – Rich

Répondre

0

Créez un ensemble de données de test contenant au moins une ligne pour chaque résultat de transformation possible. Vous utiliserez cet ensemble de données de test comme source pour chaque test ETL. À mesure que de nouvelles transformations ou bogues apparaissent, ajoutez des lignes supplémentaires à l'ensemble de données de test pour couvrir ces transformations.

Dans votre destination ETL, créez des tests qui vérifient la transformation de l'ensemble de données source. Vous aurez besoin d'un test pour chaque résultat de transformation afin d'assurer une couverture complète du code. Puisque votre ensemble de données de test est une source connue et cohérente, les tests doivent toujours avoir un résultat prévisible.

Le test ETL automatisé n'est pas complexe, mais il est compliqué et peut prendre beaucoup de temps à être configuré. Cela nécessite également une équipe de développement très disciplinée à maintenir. Bonne chance.