Créer des workflows SSIS et SSRS avec R sur SQL Server

  • 08/28/2020
  • 5 minutes à lire
    • d
    • M
    • a
    • D
    • c
    • +2

S’applique à : SQL Server 2016 (13.x) et plus tard

Cet article explique comment utiliser le script R et Python intégré en utilisant les capacités de langage et de science des données des services d’apprentissage automatique SQL Server avec deux fonctionnalités importantes de SQL Server : SQL Server Integration Services (SSIS) et SQL Server Reporting Services SSRS. Les bibliothèques R et Python de SQL Server fournissent des fonctions statistiques et prédictives. SSIS et SSRS fournissent respectivement une transformation et des visualisations ETL coordonnées. Cet article explique comment regrouper toutes ces fonctionnalités dans ce modèle de flux de travail:

  • Créer une procédure stockée contenant l’exécutable R ou Python
  • Exécuter la procédure stockée à partir de SSIS ou SSRS

Les exemples de cet article concernent principalement R et SSIS, mais les concepts et les étapes s’appliquent également à Python. La deuxième section fournit des conseils et des liens pour les visualisations SSRS.

Utiliser SSIS pour l’automatisation

Les workflows de science des données sont hautement itératifs et impliquent de nombreuses transformations des données, notamment la mise à l’échelle, les agrégations, le calcul des probabilités, le renommage et la fusion des attributs. Les data scientists sont habitués à effectuer un grand nombre de ces tâches en R, en Python ou dans un autre langage ; cependant, l’exécution de tels flux de travail sur des données d’entreprise nécessite une intégration transparente avec les outils et processus ETL.

Comme les services R (en base de données) vous permettent d’exécuter des opérations complexes dans R via Transact-SQL et des procédures stockées, vous pouvez intégrer des tâches de science des données aux processus ETL existants. Plutôt que d’effectuer une chaîne de tâches gourmandes en mémoire, la préparation des données peut être optimisée à l’aide des outils les plus efficaces, notamment Integration Services et Transact-SQL.

Voici quelques idées pour automatiser vos pipelines de traitement de données et de modélisation à l’aide de Services d’intégration:

  • Extraire des données à partir de sources sur site ou dans le cloud pour créer des données d’entraînement
  • Construire et exécuter des modèles R ou Python dans le cadre d’un flux de travail d’intégration de données
  • Recycler les modèles sur une base régulière (planifiée)
  • Charger les résultats du script R ou Python vers d’autres destinations telles qu’Excel, Power BI, Oracle et Teradata, pour n’en nommer que quelques-unes
  • Utiliser les tâches SSIS pour créer des entités de données dans la base de données SQL
  • Utiliser la ramification conditionnelle pour changer de contexte de calcul pour les travaux R et Python

Exemple SSIS

Cet exemple vous montre comment : automatisez les tâches à l’aide de SSIS. Vous créez des procédures stockées avec embedded R à l’aide de SQL Server Management Studio, puis exécutez ces procédures stockées à partir d’Execute T-SQL tasks dans un package SSIS.

Pour parcourir cet exemple, vous devez vous familiariser avec Management Studio, SSIS, SSIS Designer, package design et T-SQL. Le package SSIS utilise trois tâches Execute T-SQL qui insèrent des données d’entraînement dans une table, modélisent les données et marquent les données pour obtenir une sortie de prédiction.

Charger les données d’entraînement

Exécutez le script suivant dans SQL Server Management Studio pour créer une table de stockage des données. Vous devez créer et utiliser une base de données de test pour cet exercice.

Créez une procédure stockée qui charge les données d’entraînement dans la trame de données. Cet exemple utilise l’ensemble de données Iris intégré.

Dans SSIS Designer, créez une tâche Execute SQL qui exécute la procédure stockée que vous venez de définir. Le script pour SQLStatement supprime les données existantes, spécifie les données à insérer, puis appelle la procédure stockée pour fournir les données.

Générer un modèle

Exécutez le script suivant dans SQL Server Management Studio pour créer une table qui stocke un modèle.

Créez une procédure stockée qui génère un modèle linéaire à l’aide de rxLinMod. Les bibliothèques RevoScaleR et revoscalepy sont automatiquement disponibles dans les sessions R et Python sur SQL Server, il n’est donc pas nécessaire d’importer la bibliothèque.

Dans SSIS Designer, créez une tâche Execute SQL pour exécuter la procédure stockée generate_iris_rx_model. Le modèle est sérialisé et enregistré dans la table ssis_iris_models. Le script pour SQLStatement est le suivant:

En tant que point de contrôle, une fois cette tâche terminée, vous pouvez interroger ssis_iris_models pour voir qu’il contient un modèle binaire.

Prédire (marquer) les résultats à l’aide du modèle « entraîné »

Maintenant que vous disposez d’un code qui charge les données d’entraînement et génère un modèle, la seule étape qui reste consiste à utiliser le modèle pour générer des prédictions.

Pour ce faire, placez le script R dans la requête SQL pour déclencher la fonction R intégrée à rxPredict sur ssis_iris_model. Une procédure stockée appelée predict_species_length accomplit cette tâche.

Dans SSIS Designer, créez une tâche SQL Execute qui exécute la procédure stockée predict_species_length pour générer la longueur de pétale prévue.

exec predict_species_length 'rxLinMod';

Exécutez la solution

Dans SSIS Designer, appuyez sur F5 pour exécuter le package. Vous devriez voir un résultat similaire à la capture d’écran suivante.

Utilisez SSRS pour les visualisations

Bien que R puisse créer des graphiques et des visualisations intéressantes, il n’est pas bien intégré aux sources de données externes, ce qui signifie que chaque graphique ou graphique doit être produit individuellement. Le partage peut également être difficile.

En utilisant R Services (en base de données), vous pouvez exécuter des opérations complexes dans R via des procédures stockées Transact-SQL, qui peuvent facilement être utilisées par divers outils de reporting d’entreprise, notamment Reporting Services et Power BI.

Les exemples SSIS et SSRS de cet article illustrent deux cas d’exécution de procédures stockées contenant un script R ou Python intégré. Un élément clé à retenir est que vous pouvez rendre le script R ou Python disponible pour toute application ou outil pouvant envoyer une demande d’exécution sur une procédure stockée. Un autre avantage pour SSIS est que vous pouvez créer des packages qui automatisent et planifient une large gamme d’opérations, telles que l’acquisition de données, le nettoyage, la manipulation, etc., avec la fonctionnalité de science des données R ou Python incluse dans la chaîne d’opérations. Pour plus d’informations et d’idées, consultez Opérationnaliser le code R à l’aide de procédures stockées dans les services d’apprentissage automatique SQL Server.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.