Tutorial: SQL-Entwicklung für R-Data-ScientistsTutorial: SQL development for R data scientists

Gilt für: JaSQL Server NeinAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

In diesem Tutorial für Data Scientists erfahren Sie, wie Sie eine umfassende Lösung für die Vorhersagemodellierung auf Grundlage der R-Unterstützung in SQL Server 2016 oder SQL Server 2017 erstellen.In this tutorial for data scientists, learn how to build end-to-end solution for predictive modeling based on R feature support in either SQL Server 2016 or SQL Server 2017. Für dieses Tutorial wird die Datenbank NYCTaxi_sample in SQL Server verwendet.This tutorial uses a NYCTaxi_sample database on SQL Server.

Sie verwenden eine Kombination aus R-Code, SQL ServerSQL Server-Daten und benutzerdefinierten SQL-Funktionen, um ein Klassifikationsmodell zu erstellen, das die Wahrscheinlichkeit angibt, dass der Fahrer ein Trinkgeld für eine bestimmte Taxifahrt erhält.You use a combination of R code, SQL ServerSQL Server data, and custom SQL functions to build a classification model that indicates the probability that the driver might get a tip on a particular taxi trip. Sie stellen außerdem Ihr R-Modell für SQL ServerSQL Server bereit und verwenden Serverdaten, um Bewertungen basierend auf dem Modell zu erstellen.You also deploy your R model to SQL ServerSQL Server and use server data to generate scores based on the model.

Dieses Beispiel kann einfach auf alle möglichen realen Situationen übertragen werden, wie die Vorhersage von Reaktionen von Kunden auf Verkaufsaktionen oder die Ausgaben oder Teilnehmerzahlen bei Veranstaltungen.This example can be extended to all kinds of real-life problems, such as predicting customer responses to sales campaigns, or predicting spending or attendance at events. Da das Modell aus einer gespeicherten Prozedur aufgerufen werden kann, können Sie es auch in eine Anwendung einbetten.Because the model can be invoked from a stored procedure, you can easily embed it in an application.

Da die exemplarische Vorgehensweise der Einführung von R-Entwicklern in R Services (In-Database)R Services (In-Database) dient, wird R so häufig wie möglich verwendet.Because the walkthrough is designed to introduce R developers to R Services (In-Database)R Services (In-Database), R is used wherever possible. Das bedeutet jedoch nicht, dass R zwangsläufig das beste Tool für die einzelnen Aufgaben ist.However, this does not mean that R is necessarily the best tool for each task. In vielen Fällen stellt SQL ServerSQL Server eine bessere Leistung bereit, besonders für Aufgaben wie Datenaggregation und Featureentwicklung.In many cases, SQL ServerSQL Server might provide better performance, particularly for tasks such as data aggregation and feature engineering. Solche Aufgaben profitieren besonders von neuen Funktionen in SQL Server 2019 (15.x)SQL Server 2019 (15.x), wie z.B. von speicheroptimierten Columnstore-Indizes.Such tasks can particularly benefit from new features in SQL Server 2019 (15.x)SQL Server 2019 (15.x), such as memory optimized columnstore indexes. Nebenbei wird auf mögliche Optimierungen hingewiesen.We try to point out possible optimizations along the way.

VoraussetzungenPrerequisites

Es wird empfohlen, diese exemplarische Vorgehensweise an einer Clientarbeitsstation durchzuführen.We recommend that you do this walkthrough on a client workstation. Sie müssen eine Verbindung zu einem SQL ServerSQL Server-Computer im selben Netzwerk herstellen können, auf dem SQL Server und R aktiviert sind.You must be able to connect, on the same network, to a SQL ServerSQL Server computer with SQL Server and the R language enabled. Anweisungen zur Konfiguration der Arbeitsstation finden Sie unter Einrichten eines Data-Science-Clients für die Entwicklung in R.For instructions on workstation configuration, see Set up a data science client for R development.

Alternativ können Sie die exemplarische Vorgehensweise auf einem Computer durchführen, auf dem SQL ServerSQL Server und eine R-Entwicklungsumgebung vorhanden sind. Diese Konfiguration wird jedoch für eine Produktionsumgebung nicht empfohlen.Alternatively, you can run the walkthrough on a computer that has both SQL ServerSQL Server and an R development environment, but we don't recommend this configuration for a production environment. Befinden sich Client und Server notwendigerweise auf demselben Computer, müssen Sie einen zweiten Satz Microsoft R-Bibliotheken installieren, um R-Skripts von einem Remoteclient senden zu können.If you need to put client and server on the same computer, be sure to install a second set of Microsoft R libraries for sending R script from a "remote" client. Verwenden Sie nicht die R-Bibliotheken, die in der SQL Server-Instanz unter „Programme“ installiert sind.Do not use the R libraries that are installed in the program files of the SQL Server instance. Insbesondere, wenn Sie nur einen Computer verwenden, benötigen Sie die RevoScaleR-Bibliothek an beiden der folgenden Speicherorten, um Client- und Servervorgänge zu unterstützen:Specifically, if you are using one computer, you need the RevoScaleR library in both of these locations to support client and server operations.

  • C:\Programme\Microsoft\R Client\R_SERVER\library\RevoScaleRC:\Program Files\Microsoft\R Client\R_SERVER\library\RevoScaleR
  • C:\Programme\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\RevoScaleRC:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\RevoScaleR

Hinweis

Wenn Sie Machine Learning Server oder Data Science Virtual Machine anstelle des R-Clients verwenden, lautet der Pfad zu RevoScaleR C:\Programme\Microsoft\ML Server\R_SERVER\library\RevoScaleR.If you are using Machine Learning Server or the Data Science Virtual Machine, instead of R Client, the path to RevoScaleR is C:\Program Files\Microsoft\ML Server\R_SERVER\library\RevoScaleR

Zusätzliche R-PaketeAdditional R packages

Für diese exemplarische Vorgehensweise sind mehrere R-Bibliotheken erforderlich, die nicht standardmäßig als Teil von R Services (In-Database)R Services (In-Database) installiert sind.This walkthrough requires several R libraries that are not installed by default as part of R Services (In-Database)R Services (In-Database). Sie müssen die Pakete jeweils auf dem Client installieren, auf dem Sie die Lösung entwickeln, und auf dem SQL ServerSQL Server-Computer, auf dem Sie die Lösung bereitstellen.You must install the packages both on the client where you develop the solution, and on the SQL ServerSQL Server computer where you deploy the solution.

Auf einer ClientarbeitsstationOn a client workstation

Kopieren Sie in Ihrer R-Umgebung folgende Zeilen, und führen Sie den Code in einem Konsolenfenster (in RGUI oder einer IDE) aus.In your R environment, copy the following lines and execute the code in a Console window (Rgui or an IDE). Von einigen Paketen werden auch erforderliche Pakete installiert.Some packages also install required packages. Insgesamt werden etwa 32 Pakete installiert.In all, about 32 packages are installed. Für diesen Schritt benötigen Sie eine Internetverbindung.You must have an internet connection to complete this step.

# Install required R libraries, if they are not already installed.
if (!('ggmap' %in% rownames(installed.packages()))){install.packages('ggmap')}
if (!('mapproj' %in% rownames(installed.packages()))){install.packages('mapproj')}
if (!('ROCR' %in% rownames(installed.packages()))){install.packages('ROCR')}
if (!('RODBC' %in% rownames(installed.packages()))){install.packages('RODBC')}

Auf dem ServerOn the server

Es gibt mehrere Möglichkeiten, Pakete in SQL Server zu installieren.You have several options for installing packages on SQL Server. SQL Server bietet beispielsweise ein Feature für die Verwaltung von R-Paketen, mit dem Datenbankadministratoren ein Paketrepository erstellen und Benutzern die Rechte erteilen können, eigene Pakete zu installieren.For example, SQL Server provides R package management feature that lets database administrators create a package repository and assign user the rights to install their own packages. Wenn Sie jedoch Administrator auf dem Computer sind, können Sie neue Pakete mit R installieren, solange Sie diese in der richtigen Bibliothek installieren.However, if you are an administrator on the computer, you can install new packages using R, as long as you install to the correct library.

Hinweis

Führen Sie auf dem Server keine Installation in einer Benutzerbibliothek aus, auch wenn Sie dazu aufgefordert werden.On the server, do not install to a user library even if prompted. Wenn Sie eine Installation in einer Benutzerbibliothek durchführen, kann die SQL Server-Instanz die Pakete nicht finden und ausführen.If you install to a user library, the SQL Server instance cannot find or run the packages. Weitere Informationen finden Sie unter Installieren neuer R-Pakete in SQL Server.For more information, see Installing new R Packages on SQL Server.

  1. Öffnen Sie auf dem SQL ServerSQL Server-Computer als Administrator RGui.exe.On the SQL ServerSQL Server computer, open RGui.exe as an administrator. Wenn Sie SQL Server R Services mithilfe der Standardeinstellungen installiert haben, finden Sie „Rgui.exe“ unter C:\Programme\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin\x64).If you have installed SQL Server R Services using the defaults, Rgui.exe can be found in C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\bin\x64).

  2. Führen Sie an einer R-Eingabeaufforderung die folgenden R-Befehle aus:At an R prompt, run the following R commands:

install.packages("ggmap", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("mapproj", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("ROCR", lib=grep("Program Files", .libPaths(), value=TRUE)[1])
install.packages("RODBC", lib=grep("Program Files", .libPaths(), value=TRUE)[1])

In diesem Beispiel wird die grep-Funktion in R verwendet, um den Vektor der verfügbaren Pfade zu durchsuchen und den Pfad zu finden, der „Programme“ enthält.This example uses the R grep function to search the vector of available paths and find the path that includes "Program Files". Weitere Informationen finden Sie unter https://www.rdocumentation.org/packages/base/functions/grep.For more information, see https://www.rdocumentation.org/packages/base/functions/grep.

Wenn Sie sicher sind, dass die Pakete bereits installiert wurden, überprüfen Sie die Liste der installierten Pakete, indem Sie installed.packages() ausführen.If you think the packages are already installed, check the list of installed packages by running installed.packages().

Nächste SchritteNext steps