Serveur d'impression

L'importance de Python dans l'administration de SQL Server – Serveur d’impression

Par Titanfall , le 3 mai 2019 - 11 minutes de lecture

Certains de mes articles précédents sur Python donnaient un aperçu des bases et de l'utilisation de Python dans SQL Server 2017.

Cet article vise à rassembler toutes les pièces manquantes et à démontrer l’importance de l’utilisation de la programmation Python dans SQL Server.

Beaucoup disent que PowerShell a l'avantage sur Python dans certains aspects de l'administration de la base de données. Moi aussi, je ressens la même impression que de nombreux passionnés de technique, mais avec une connaissance très limitée, nous pouvons également voir le pouvoir de Python. Peut-être, au lieu de comparer PowerShell et Python, nous pouvons les considérer comme des technologies complémentaires.

En 2016, R, le langage de programmation informatique statistique a été intégré à la version de SQL Server, nommée pour la même année. L’autre côté de la médaille était absent, car Python est également un langage de premier plan pour l’apprentissage automatique et compte même un grand nombre d’utilisateurs. Dans SQL Server 2017, Python est intégré. Maintenant, R et Python sont sous le même parapluie de la fonctionnalité appelée services d'apprentissage automatique.

Comme Python est un langage de programmation commun adopté par les scientifiques de données et les administrateurs de base de données, la possibilité d’exécuter du code Python en tant que script T-SQL permet aux fonctions d’apprentissage automatique de traiter directement de grandes quantités de données. Premièrement, il n'est plus nécessaire d'extraire des données de la base de données avant de pouvoir les traiter via un programme client. Cela nous offre des avantages importants en termes de sécurité, d'intégrité et de conformité, qui surviennent lorsque des données sont par ailleurs déplacées en dehors de l'environnement hautement contrôlé dans le moteur de base de données. De plus, les calculs sont effectués sur le serveur lui-même sans avoir à transférer les données à un client, ce qui impose une charge importante sur le trafic réseau. Cela signifie également que vous pouvez effectuer des calculs sur l'intégralité du jeu de données sans avoir à prélever des échantillons représentatifs, ce qui est courant lors du traitement de données sur une machine distincte. Et comme les données restent en place, vous pouvez tirer pleinement parti des avantages en termes de performances apportés par les technologies SQL Server telles que les tables en mémoire et les index de magasin de colonnes. Le code Python est également très facile à déployer et peut être écrit directement dans une commande Transact-SQL.

Ensuite, SQL Server 2017 prend en charge l'installation de tous les packages Python dont nous pourrions avoir besoin afin que vous puissiez vous appuyer sur la vaste collection de fonctionnalités Open Source développées par la communauté Python plus large. Enfin, l'intégration Python est disponible dans toutes les éditions de SQL Server 2017, y compris l'édition Express gratuite. Ainsi, quelle que soit l'ampleur de votre application, vous pouvez tirer parti de l'intégration Python.

Pour vous aider à démarrer, SQL Server 2017 inclut un certain nombre de bibliothèques d'Anaconda, une plate-forme de science de données très populaire. De plus, Microsoft a créé deux bibliothèques installées avec Machine Learning Services.

  1. Revoscalepy

    Revoscalepy est une bibliothèque de fonctions prenant en charge l'informatique distribuée, les contextes de calcul à distance et les algorithmes hautes performances.

  2. Microsoftml

    La bibliothèque Microsoftml contient des fonctions pour les algorithmes d’apprentissage automatique, notamment la création de modèles linéaires, d’arbres de décision, de régression logistique, de réseaux de neurones et de détection d’anomalies.

Commençons

Les méthodes d'analyse traditionnelles au sein de SQL Server utilisant divers composants Microsoft tels que SQL, MDX, DAX dans PowerPivot offrent la flexibilité nécessaire pour transformer des données. Désormais, le langage R, un autre riche ensemble de modules d'apprentissage automatique pour l'analyse de données, est directement intégré à SQL Server 2016. R est un autre langage qui possède une base d'utilisateurs importante, avec Python. Avec les modules disponibles en Python, l'analyse des données devient plus efficace.

Permettez-moi de vous donner quelques exemples pour prouver que l'utilisation de Python dans SQL Server est un moyen efficace d'extraire des données de serveurs distants.

  1. Voir comment se connecter à une source de données SQL Server à l'aide de pyodbc

  2. Exécutez la requête SQL, dans ce cas, créez la chaîne de connexion qui pointe vers une instance SQL distante et exécutez la requête Dynamic Management View sys.dm_os_waitstas.

  3. Attribuer la sortie SQL aux trames de données

  4. Afficher les 10 premières lignes du jeu de résultats SQL à l'aide de la fonction head
    La commande head permet d’afficher les premières «n» lignes du cadre de données. Cela ressemble à la commande supérieure de SQL Server. La première colonne (montrant 0 à 9) est l'index par défaut pour le cadre de données

  5. Afin de convertir les données du cadre de données en colonnes SQL associées, la clause WITH RESULTS SET est définie à la fin du code. Cela nous donne la possibilité de définir la colonne et les types associés de chaque colonne.

  6. WITH RESULT SETS requiert que le nombre de colonnes de la définition de résultat soit égal au nombre de colonnes renvoyées par la procédure stockée / requête SQL. Dans les exemples suivants, la sortie de la requête SQL renvoie quatre colonnes: nom_serveur, type_attente, nombre_attentes_attente, nombre_attendus. Celles-ci correspondent à la définition de la clause with result sets.

La sortie de requête SQL ci-dessus peut également être renvoyée sous forme de table SQL à l'aide de avec clause de résultat.

Examinons un exemple pour insérer les exemples de données dans le tableau. L'exemple de requête SQL suivant fournit les informations internes à la base de données, imprimées sous forme de sortie chaîne.

Le code SQL suivant crée une table de démonstration sur l'instance cible. SQLShackDemoDB est le nom de la base de données cible.

La procédure stockée nommée P_SampleDBInventory_Python est créé avec deux connexions.

  1. Charger le pyodbc Module Python pour la connectivité de données

  2. Construisez la chaîne de connexion cible. Il inclut les détails de l'objet de destination tels que l'instance cible, la base de données et la table.

  3. Pour la chaîne de connexion cible,

  4. Ouvre le curseur

  5. La deuxième chaîne de connexion est construite à l'aide d'un fichier. Le fichier est la source des noms de serveur d'entrée. La requête doit traverser les listes pour générer les ensembles de données. Ensuite, l'ensemble de données est parcouru pour extraire les détails de la colonne dans la destination à l'aide de la chaîne de connexion cible

  6. Générez l'instruction SQL à l'aide de guillemets triples. Les triples guillemets sont utilisés pour créer des chaînes régulières pouvant s'étendre sur plusieurs lignes.

  7. L'instruction SQL est exécutée à l'aide du curseur défini

  8. Les résultats sont chargés dans la table de destination

  9. Appeler la procédure stockée

  10. Vérifier la sortie SQL

Sortie:

Emballer

Donc là vous l'avez. Bien que les exemples fournis soient assez simples, j'espère que vous pourrez voir à quel point Python pourrait être utile pour un administrateur de base de données également, et pas seulement pour un spécialiste en informatique ou en données.

La vraie beauté est que tout ce code pourrait s'asseoir dans une procédure stockée; quelque chose que vous ne pouvez pas tout faire aussi bien avec PowerShell.

L'intégration de Python dans SQL Server 2017 offre aux chercheurs en données un moyen simple d'interagir avec leurs données directement dans le moteur de base de données, ainsi qu'aux développeurs un moyen simple d'intégrer des modèles Python à leur application via de simples procédures stockées.

Prashanth Jayaram

Prashanth Jayaram

Je suis un technologue en bases de données ayant plus de 11 ans d’expérience pratique et riche en technologies de bases de données. Je suis un professionnel certifié Microsoft et je suis titulaire d'un diplôme en maîtrise d'applications informatiques.

Ma spécialité réside dans la conception et la mise en œuvre de solutions de haute disponibilité et de migration multi-plateformes de bases de données. Les technologies actuellement utilisées sont SQL Server, PowerShell, Oracle et MongoDB.

Voir tous les messages de Prashanth Jayaram

Prashanth Jayaram

Derniers articles de Prashanth Jayaram (voir tout)

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.