So senden Sie die R- und Python-Ausführung von Jupyter-Notebooks remote an SQL Server

Import.png

Einführung

Wussten Sie, dass Sie R- und Python-Code remote in SQL Server von Jupyter Notebooks oder einer beliebigen IDE ausführen können? Dienste für maschinelles Lernen in SQL Server macht das Verschieben von Daten überflüssig. Anstatt große und sensible Daten über das Netzwerk zu übertragen oder beim ML-Training mit Beispiel-CSV-Dateien an Genauigkeit zu verlieren, können Sie Ihren R/Python-Code in Ihrer Datenbank ausführen lassen. Sie können in Jupyter Notebooks, RStudio, PyCharm, VSCode, Visual Studio arbeiten, wo immer Sie wollen, und dann die Funktionsausführung an SQL Server senden, um Informationen dorthin zu bringen, wo Ihre Daten gespeichert sind.

Dieses Tutorial zeigt Ihnen ein Beispiel dafür, wie Sie Ihren Python-Code von Juptyter-Notebooks senden können, um ihn in SQL Server auszuführen. Die gleichen Prinzipien gelten auch für R und jede andere IDE. Wenn Sie lieber durch Videos lernen, wird dieses Tutorial auch hier auf YouTube veröffentlicht:

Voraussetzungen für die Einrichtung der Umgebung

1. Installieren Sie ML-Dienste auf SQL Server

Damit R oder Python innerhalb von SQL ausgeführt werden können, müssen Sie zuerst die Machine Learning Services-Funktion installieren und konfigurieren. Sieh dir das an Anleitung.

2. Installieren Sie RevoscalePy über den Python-Client von Microsoft

Um die Python-Ausführung von Jupyter Notebooks an SQL zu senden, müssen Sie das RevoscalePy-Paket von Microsoft verwenden. Um RevoscalePy zu erhalten, laden Sie den ML Services Python Client von Microsoft herunter und installieren Sie ihn. Dokumentationsseite oder Direkter Download-Link (für Windows).

Öffnen Sie nach dem Herunterladen Powershell als Administrator und navigieren Sie zum Download-Ordner. Starten Sie die Installation mit diesem Befehl (Sie können den Installationsordner gerne anpassen):
.\Install-PyForMLS.ps1 -InstallFolder "C:\Program Files\MicrosoftPythonClient"

Seien Sie geduldig, während die Installation eine Weile dauern kann. Navigieren Sie nach der Installation zu dem neuen Pfad, in dem Sie installiert haben. Lassen Sie uns einen leeren Ordner erstellen und Jupyter Notebooks öffnen:
mkdir JupyterNotebooks; cd JupyterNotebooks; ..\Scripts\jupyter-notebook

Erstellen Sie ein neues Notebook mit dem Python 3-Interpreter:
NeuesNotebook.png
Um zu testen, ob alles eingerichtet ist, importieren Sie revoscalepy in die erste Zelle und führen Sie es aus. Wenn keine Fehlermeldungen angezeigt werden, können Sie fortfahren.
Import.png

Datenbankeinrichtung (nur für dieses Tutorial erforderlich)

Für den Rest des Tutorials können Sie klonen dieses Jupyter Notebook von Github Wenn Sie nicht den gesamten Code kopieren möchten, fügen Sie ihn ein. Diese Datenbankeinrichtung ist ein einmaliger Schritt, um sicherzustellen, dass Sie über dieselben Daten wie in diesem Tutorial verfügen. Sie müssen keinen dieser Einrichtungsschritte ausführen, um Ihre eigenen Daten zu verwenden.

1. Erstellen Sie eine Datenbank

Ändern Sie die Verbindungszeichenfolge für Ihren Server und erstellen Sie mit pyodbc eine neue Datenbank.

import pyodbc


new_db_name = "MLRemoteExec"
connection_string = "Driver=SQL Server;Server=localhost\MSSQLSERVER2017;Database={0};Trusted_Connection=Yes;"
cnxn = pyodbc.connect(connection_string.format("master"), autocommit=True)
cnxn.cursor().execute("IF EXISTS(SELECT * FROM sys.databases WHERE [name] = '{0}') DROP DATABASE {0}".format(new_db_name))
cnxn.cursor().execute("CREATE DATABASE " + new_db_name)
cnxn.close()

print("Database created")

2. Importieren Sie das Iris-Sample von SkLearn

Iris ist ein beliebter Datensatz für Data-Science-Tutorials für Anfänger. Es ist standardmäßig im sklearn-Paket enthalten.

from sklearn import datasets
import pandas as pd


iris = datasets.load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)

3. Verwenden Sie RecoscalePy-APIs, um eine Tabelle zu erstellen und die Iris-Daten zu laden

(Sie können dies auch mit pyodbc, sqlalchemy oder anderen Paketen tun)

from revoscalepy import RxSqlServerData, rx_data_step


table_ref = RxSqlServerData(connection_string=connection_string.format(new_db_name), table="Iris")
rx_data_step(input_data = df, output_file = table_ref, overwrite = True)

print("New Table Created: Iris")
print("Sklearn Iris sample loaded into Iris table")

Definieren Sie eine Funktion zum Senden an SQL Server

Schreiben Sie beliebigen Python-Code, den Sie in SQL ausführen möchten. In diesem Beispiel erstellen wir eine Scatter-Matrix für das Iris-Dataset und geben nur den Bytestream der PNG-Datei an Jupyter Notebooks zurück, um ihn auf unserem Client zu rendern.

defsend_this_func_to_sql():from revoscalepy import RxSqlServerData, rx_import
    from pandas.tools.plotting import scatter_matrix
    import matplotlib.pyplot as plt
    import io
    
    
    connection_string = "Driver=SQL Server;Server=localhost\MSSQLSERVER2017;Database=MLRemoteExec;Trusted_Connection=Yes;"
    sql_query = RxSqlServerData(connection_string=connection_string, sql_query = "select * from Iris")
    df = rx_import(sql_query)
    
    scatter_matrix(df)
    
    
    buf = io.BytesIO()
    plt.savefig(buf, format="png")
    buf.seek(0)
    
    return buf.getvalue()

Ausführung an SQL senden

Jetzt, da wir endlich eingerichtet sind, sehen Sie sich an, wie einfach das Senden einer Remote-Ausführung wirklich ist! Zuerst, import revoscalepy. Ein … kreieren sql_compute_contextund senden Sie dann die Ausführung einer beliebigen Funktion nahtlos an SQL Server mit RxExec. Es mussten keine Rohdaten von SQL auf das Jupyter Notebook übertragen werden. Alle Berechnungen fanden innerhalb der Datenbank statt und nur die Bilddatei wurde zur Anzeige zurückgegeben.

from IPython import display
import matplotlib.pyplot as plt 
from revoscalepy import RxInSqlServer, rx_exec


sql_compute_context = RxInSqlServer(connection_string=connection_string.format(new_db_name))


image = rx_exec(send_this_func_to_sql, compute_context=sql_compute_context)[0]


display.Image(data=image)

Während dieses Beispiel mit dem Iris-Dataset trivial ist, stellen Sie sich die zusätzlichen Skalierungs-, Leistungs- und Sicherheitsfunktionen vor, die Sie jetzt freigeschaltet haben. Sie können jedes der neuesten Open-Source-R/Python-Pakete verwenden, um Deep Learning- und KI-Anwendungen auf großen Datenmengen in SQL Server zu erstellen. Wir bieten auch VorderkanteHochleistungsalgorithmen in Microsofts RevoScaleR und RevoScalePy APIs. Wenn Sie diese mit den neuesten Innovationen in der Open-Source-Welt verwenden, können Sie Ihren Anwendungen eine beispiellose Auswahl, Leistung und Skalierbarkeit verleihen.

Lern mehr

Kasse SQL Machine Learning Services-Dokumentation um zu erfahren, wie Sie Ihren R/Python-Code einfach mit gespeicherten SQL-Prozeduren bereitstellen können, um sie in Ihren ETL-Prozessen oder für jede Anwendung zugänglich zu machen. Trainieren und speichern Sie Machine-Learning-Modelle in Ihrer Datenbank, um Intelligenz dorthin zu bringen, wo sich Ihre Daten befinden.

Grundlegende R- und Python-Ausführung in SQL Server:

Richten Sie Machine Learning Services in SQL Server ein:

End-to-End-Tutorial-Lösungen auf Github:

Weitere YouTube-Tutorials:

So installieren Sie SQL Server Machine Learning Services: So aktivieren Sie die SQL Server-Dienste für maschinelles Lernen: Grundlagen der R- und Python-Ausführung in SQL:

Schlüsselwörter: #MachineLearning #DataScience #Python #R #Jupyter #JupyterNotebook #JupyterNotebooks #RStudio #SQL #SQLServer #BigData #DataAnalytics #ScikitLearn #Data #AI #ArtificialIntelligence

Similar Posts

Leave a Reply

Your email address will not be published.