Bekannte Probleme in SQL Server-Machine Learning ServicesKnown issues in SQL Server Machine Learning Services

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

Dieser Artikel beschreibt bekannte Probleme oder Einschränkungen bei Machine Learning-Komponenten, die als Option in SQL Server-Machine Learning Services und SQL Server 2016 R Services bereitgestellt werden.This article describes known problems or limitations with machine learning components that are provided as an option in SQL Server Machine Learning Services and SQL Server 2016 R Services.

Einrichtungs- und KonfigurationsproblemeSetup and configuration issues

Eine Beschreibung der Prozesse und häufig gestellten Fragen im Zusammenhang mit der anfänglichen Einrichtung und Konfiguration finden Sie unter Häufig gestellte Fragen zu Upgrade und Installation.For a description of processes and common questions that are related to initial setup and configuration, see Upgrade and installation FAQ. Sie enthält Informationen über Upgrades, parallele Installationen und die Installation neuer R- oder Python-Komponenten.It contains information about upgrades, side-by-side installation, and installation of new R or Python components.

1. Inkonsistente Ergebnisse in MKL-Berechnungen aufgrund fehlender Umgebungsvariablen1. Inconsistent results in MKL computations due to missing environment variable

Gilt für: R_SERVER-Binärdateien 9.0, 9.1, 9.2 oder 9.3.Applies to: R_SERVER binaries 9.0, 9.1, 9.2 or 9.3.

R_SERVER verwendet die Intel Math Kernel Library (MKL).R_SERVER uses the Intel Math Kernel Library (MKL). Bei Berechnungen unter Einbeziehung der MKL können inkonsistente Ergebnisse auftreten, wenn in Ihrem System eine Umgebungsvariable fehlt.For computations involving MKL, inconsistent results can occur if your system is missing an environment variable.

Legen Sie die Umgebungsvariable 'MKL_CBWR'=AUTO fest, um die bedingte numerische Reproduzierbarkeit in R_SERVER sicherzustellen.Set the environment variable 'MKL_CBWR'=AUTO to ensure conditional numerical reproducibility in R_SERVER. Weitere Informationen finden Sie unter Introduction to Conditional Numerical Reproducibility (CNR) (Einführung in die bedingte numerische Reproduzierbarkeit).For more information, see Introduction to Conditional Numerical Reproducibility (CNR).

ProblemumgehungWorkaround

  1. Klicken Sie in der Systemsteuerung auf System und Sicherheit > System > Erweiterte Systemeinstellungen > Umgebungsvariablen.In Control Panel, click System and Security > System > Advanced System Settings > Environment Variables.

  2. Erstellen Sie eine neue Benutzer- oder Systemvariable.Create a new User or System variable.

    • Legen Sie den Variablennamen auf „MKL_CBWR“ fest.Set variable name to 'MKL_CBWR'.
    • Legen Sie den „Variablenwert“ auf „AUTO“ fest.Set the 'Variable value' to 'AUTO'.
  3. Starten Sie R_SERVER neu.Restart R_SERVER. Auf SQL Server können Sie den SQL Server-Launchpad-Dienst neu starten.On SQL Server, you can restart SQL Server Launchpad Service.

Hinweis

Wenn Sie die SQL Server 2019 unter Linux ausführen, bearbeiten oder erstellen Sie .bash_profile in Ihrem Benutzerstammverzeichnis, und fügen Sie die Zeile export MKL_CBWR="AUTO" hinzu.If you are running the SQL Server 2019 on Linux, edit or create .bash_profile in your user home directory, adding the line export MKL_CBWR="AUTO". Führen Sie diese Datei aus, indem Sie source .bash_profile in der Bash-Eingabeaufforderung eingeben.Execute this file by typing source .bash_profile at a bash command prompt. Starten Sie R_SERVER neu, indem Sie an der R-Eingabeaufforderung Sys.getenv() eingeben.Restart R_SERVER by typing Sys.getenv() at the R command prompt.

2. Runtimefehler des R-Skripts (SQL Server 2017: Regression in CU5-CU7)2. R Script runtime error (SQL Server 2017 CU5-CU7 Regression)

Bei SQL Server 2017 tritt in den kumulativen Updates 5 bis 7 eine Regression in der Datei rlauncher.config auf, wo der Dateipfad des temporären Verzeichnisses ein Leerzeichen enthält.For SQL Server 2017, in cumulative updates 5 through 7, there is a regression in the rlauncher.config file where the temp directory file path includes a space. Diese Regression wurde in CU8 korrigiert.This regression is corrected in CU8.

Beim Ausführen des R-Skripts werden folgende Fehlermeldungen angezeigt:The error you will see when running R script includes the following messages:

Fehler beim Kommunizieren mit der Runtime für das „R“-Skript. Überprüfen Sie die Anforderungen der „R“-Runtime.Unable to communicate with the runtime for 'R' script. Please check the requirements of 'R' runtime.

STDERR-Meldung(en) vom externen Skript:STDERR message(s) from external script:

Schwerwiegender Fehler: „R_TempDir“ kann nicht erstellt werden.Fatal error: cannot create 'R_TempDir'

ProblemumgehungWorkaround

Wenden Sie CU8 an, wenn es verfügbar ist.Apply CU8 when it becomes available. Alternativ können Sie rlauncher.config neu erstellen, indem Sie registerrext mit „uninstall/install“ an einer Eingabeaufforderung mit erhöhten Rechten ausführen.Alternatively, you can recreate rlauncher.config by running registerrext with uninstall/install on an elevated command prompt.

<SQLInstancePath>\R_SERVICES\library\RevoScaleR\rxLibs\x64\RegisterRExt.exe /uninstall /sqlbinnpath:<SQLInstanceBinnPath> /userpoolsize:0 /instance:<SQLInstanceName>

<SQLInstancePath>\R_SERVICES\library\RevoScaleR\rxLibs\x64\RegisterRExt.exe /install /sqlbinnpath:<SQLInstanceBinnPath> /userpoolsize:0 /instance:<SQLInstanceName>

Im folgenden Beispiel werden die Befehle mit „C:\Programme\Microsoft SQL Server" als Installationsort der Standardinstanz „MSSQL14.MSSQLSERVER“ angezeigt:The following example shows the commands with the default instance "MSSQL14.MSSQLSERVER" installed into "C:\Program Files\Microsoft SQL Server":

"C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\RevoScaleR\rxLibs\x64\RegisterRext.exe" /uninstall /sqlbinnpath:"C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn" /userpoolsize:0 /instance:MSSQLSERVER

"C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\R_SERVICES\library\RevoScaleR\rxLibs\x64\RegisterRext.exe" /install /sqlbinnpath:"C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn" /userpoolsize:0 /instance:MSSQLSERVER

3. Machine Learning-Features von SQL Server können nicht auf einem Domänencontroller installiert werden3. Unable to install SQL Server machine learning features on a domain controller

Wenn Sie versuchen, SQL Server 2016 R Services oder SQL Server-Machine Learning Services auf einem Domänencontroller zu installieren, treten beim Setup folgende Fehler auf:If you try to install SQL Server 2016 R Services or SQL Server Machine Learning Services on a domain controller, setup fails, with these errors:

Fehler während des Setupvorgangs für die FunktionAn error occurred during the setup process of the feature

Gruppe mit Identität kann nicht gefunden werdenCannot find group with identity

Komponentenfehlercode: 0x80131509Component error code: 0x80131509

Der Fehler tritt auf, weil der Dienst auf einem Domänencontroller nicht die zum Ausführen von Machine Learning erforderlichen 20 lokalen Konten erstellen kann.The failure occurs because, on a domain controller, the service cannot create the 20 local accounts required to run machine learning. Im Allgemeinen sollten Sie SQL Server nicht auf einem Domänencontroller installieren.In general, we do not recommend installing SQL Server on a domain controller. Weitere Informationen finden Sie im Supportbulletin 2032911.For more information, see Support bulletin 2032911.

4. Installieren des aktuellsten Service Release, um die Kompatibilität mit Microsoft R Client sicherzustellen4. Install the latest service release to ensure compatibility with Microsoft R Client

Wenn Sie die neueste Version von Microsoft R Client installieren und anschließend verwenden, um R in einem Remotecomputekontext auf SQL Server auszuführen, erhalten Sie möglicherweise folgende Fehlermeldung:If you install the latest version of Microsoft R Client and use it to run R on SQL Server in a remote compute context, you might get an error like the following:

Sie führen Version 9.x.x von Microsoft R Client auf Ihrem Computer aus. Diese ist nicht mit der Microsoft R Server-Version 8.x.x kompatibel. Laden Sie eine kompatible Version herunter und installieren Sie sie.You are running version 9.x.x of Microsoft R Client on your computer, which is incompatible with Microsoft R Server version 8.x.x. Download and install a compatible version.

SQL Server 2016 erfordert, dass die R-Bibliotheken auf dem Client exakt mit den R-Bibliotheken auf dem Server übereinstimmen.SQL Server 2016 requires that the R libraries on the client exactly match the R libraries on the server. Die Einschränkung wurde für spätere Releases als R Server 9.0.1 aufgehoben.The restriction has been removed for releases later than R Server 9.0.1. Wenn dieser Fehler auftritt, überprüfen Sie jedoch die Version der R-Bibliotheken, die von Ihrem Client und dem Server verwendet werden, und aktualisieren Sie ggf. den Client entsprechend der Serverversion.However, if you encounter this error, verify the version of the R libraries that's used by your client and the server and, if necessary, update the client to match the server version.

Die Version von R, die mit SQL Server R Services installiert ist, wird aktualisiert, wenn ein Service Release für SQL Server installiert wird.The version of R that is installed with SQL Server R Services is updated whenever a SQL Server service release is installed. Installieren Sie unbedingt alle Servicepacks, um sicherzustellen, dass Sie stets über die aktuellsten Versionen von R-Komponenten verfügen.To ensure that you always have the most up-to-date versions of R components, be sure to install all service packs.

Um die Kompatibilität mit Microsoft R Client 9.0.0 sicherzustellen, installieren Sie die Updates, die in diesem Supportartikel beschrieben werden.To ensure compatibility with Microsoft R Client 9.0.0, install the updates that are described in this support article.

Um Probleme mit R-Paketen zu vermeiden, können Sie auch die Version der R-Bibliotheken aktualisieren, die auf dem Server installiert sind, indem Sie den Servicevertrag so ändern, dass die Modern Lifecycle Support-Richtlinie angewendet wird, wie im nächsten Abschnitt beschrieben.To avoid problems with R packages, you can also upgrade the version of the R libraries that are installed on the server, by changing your servicing agreement to use the Modern Lifecycle Support policy, as described in the next section. In diesem Fall wird die mit SQL Server installierte Version von R nach dem gleichen Zeitplan aktualisiert, der für Updates von Machine Learning Server (früher Microsoft R Server) verwendet wird.When you do so, the version of R that's installed with SQL Server is updated on the same schedule used for updates of machine Learning Server (formerly Microsoft R Server).

Gilt für: SQL Server 2016 R Services mit R Server Version 9.0.0 oder früherApplies to: SQL Server 2016 R Services, with R Server version 9.0.0 or earlier

5. R-Komponenten fehlen im CU3-Setup5. R components missing from CU3 setup

Eine begrenzte Anzahl von virtuellen Azure-Computern wurde ohne die R-Installationsdateien bereitgestellt, die in SQL Server eingeschlossen werden sollten.A limited number of Azure virtual machines were provisioned without the R installation files that should be included with SQL Server. Das Problem betrifft virtuelle Computer, die vom 05.01.2018 bis 23.01.2018 bereitgestellt wurden.The issue applies to virtual machines provisioned in the period from 2018-01-05 to 2018-01-23. Dieses Problem könnte sich auch auf lokale Installationen auswirken, wenn Sie das CU3-Update für SQL Server 2017 vom 05.01.2018 bis 23.01.2018 angewendet haben.This issue might also affect on-premises installations, if you applied the CU3 update for SQL Server 2017 during the period from 2018-01-05 to 2018-01-23.

Es wurde ein Service Release bereitgestellt, das die richtige Version der R-Installationsdateien enthält.A service release has been provided that includes the correct version of the R installation files.

Zum Installieren der Komponenten und Reparieren von SQL Server 2017 CU3 müssen Sie CU3 deinstallieren und die aktualisierte Version neu installieren:To install the components and repair SQL Server 2017 CU3, you must uninstall CU3, and reinstall the updated version:

  1. Laden Sie die aktualisierte CU3-Installationsdatei herunter, die die R-Installationsprogramme enthält.Download the updated CU3 installation file, which includes the R installers.
  2. Deinstallieren Sie CU3.Uninstall CU3. Suchen Sie in der Systemsteuerung nach Update deinstallieren , und wählen Sie dann „Hotfix 3015 für SQL Server 2017 (KB4052987) (64-Bit)“ aus.In Control Panel, search for Uninstall an update, and then select "Hotfix 3015 for SQL Server 2017 (KB4052987) (64-bit)". Fahren Sie mit der Deinstallation fort.Proceed with uninstall steps.
  3. Installieren Sie das CU3-Update neu, indem Sie auf das soeben heruntergeladene Update für KB4052987 doppelklicken: SQLServer2017-KB4052987-x64.exe.Reinstall the CU3 update, by double-clicking on the update for KB4052987 that you just downloaded: SQLServer2017-KB4052987-x64.exe. Befolgen Sie die Installationsanweisungen.Follow the installation instructions.

6. Python-Komponenten können nicht in Offlineinstallationen von SQL Server 2017 CTP 2.0 oder höher installiert werden6. Unable to install Python components in offline installations of SQL Server 2017 CTP 2.0 or later

Wenn Sie eine Vorabversion von SQL Server 2017 auf einem Computer ohne Internetzugriff installieren, kann das Installationsprogramm möglicherweise nicht die Seite anzeigen, auf der Sie zur Eingabe des Speicherorts der heruntergeladenen Python-Komponenten aufgefordert werden.If you install a pre-release version of SQL Server 2017 on a computer without internet access, the installer might fail to display the page that prompts for the location of the downloaded Python components. In diesem Fall können Sie das Machine Learning Services-Feature installieren, aber nicht die Python-Komponenten.In such an instance, you can install the Machine Learning Services feature, but not the Python components.

Dieses Problem wurde in der endgültigen Produktversion behoben.This issue is fixed in the release version. Außerdem gilt diese Einschränkung nicht für R-Komponenten.Also, this limitation does not apply to R components.

Gilt für: SQL Server 2017 mit PythonApplies to: SQL Server 2017 with Python

Warnung vor einer inkompatiblen Version beim Herstellen einer Verbindung mit einer älteren Version von SQL Server R Services von einem Client mithilfe von SQL Server 2017 (14.x)SQL Server 2017 (14.x)Warning of incompatible version when you connect to an older version of SQL Server R Services from a client by using SQL Server 2017 (14.x)SQL Server 2017 (14.x)

Wenn Sie R-Code in einem SQL Server 2016-Computekontext ausführen, wird möglicherweise folgende Fehlermeldung angezeigt:When you run R code in a SQL Server 2016 compute context, you might see the following error:

Sie führen Version 9.0.0 von Microsoft R Client auf Ihrem Computer aus. Diese ist nicht mit der Microsoft R Server-Version 8.0.3 kompatibel. Laden Sie eine kompatible Version herunter und installieren Sie sie.You are running version 9.0.0 of Microsoft R Client on your computer, which is incompatible with the Microsoft R Server version 8.0.3. Download and install a compatible version.

Diese Meldung wird angezeigt, wenn eine der beiden folgenden Aussagen zutrifft:This message is displayed if either of the following two statements is true,

  • Sie haben R Server (eigenständig) mithilfe des Setup-Assistenten für SQL Server 2017 (14.x)SQL Server 2017 (14.x) auf einem Clientcomputer installiert.You installed R Server (Standalone) on a client computer by using the setup wizard for SQL Server 2017 (14.x)SQL Server 2017 (14.x).
  • Sie haben Microsoft R Server mithilfe des separaten Windows-Installationsprogramms installiert.You installed Microsoft R Server by using the separate Windows installer.

Um sicherzustellen, dass Server und Client dieselbe Version verwenden, müssen Sie möglicherweise binding verwenden, was für Microsoft R Server 9.0 und spätere Versionen unterstützt wird, um die R-Komponenten in SQL Server 2016-Instanzen zu aktualisieren.To ensure that the server and client use the same version you might need to use binding, supported for Microsoft R Server 9.0 and later releases, to upgrade the R components in SQL Server 2016 instances. Ob für Ihre Version von R Services Support für Upgrades verfügbar ist, erfahren Sie unter Aktualisieren von Machine Learning-Komponenten (R und Python) in SQL Server-Instanzen.To determine if support for upgrades is available for your version of R Services, see Upgrade an instance of R Services using SqlBindR.exe.

Gilt für: SQL Server 2016 R Services mit R Server Version 9.0.0 oder früherApplies to: SQL Server 2016 R Services, with R Server version 9.0.0 or earlier

7. Setup für SQL Server 2016 Service Releases kann unter Umständen keine neueren R-Komponenten installieren7. Setup for SQL Server 2016 service releases might fail to install newer versions of R components

Wenn Sie ein kumulatives Update installieren oder ein Servicepack für SQL Server 2016 auf einem Computer installieren, der nicht mit dem Internet verbunden ist, zeigt der Setup-Assistent möglicherweise nicht die Aufforderung an, mit der Sie die R-Komponenten mithilfe heruntergeladener CAB-Dateien aktualisieren können.When you install a cumulative update or install a service pack for SQL Server 2016 on a computer that is not connected to the internet, the setup wizard might fail to display the prompt that lets you update the R components by using downloaded CAB files. Dieser Fehler tritt üblicherweise auf, wenn mehrere Komponenten zusammen mit der Datenbank-Engine installiert wurden.This failure typically occurs when multiple components were installed together with the database engine.

Um dieses Problem zu umgehen, können Sie das Service Release installieren, indem Sie die Befehlszeile verwenden und das Argument MRCACHEDIRECTORY, das CU1-Updates installiert, wie in diesem Beispiel gezeigt angeben:As a workaround, you can install the service release by using the command line and specifying the MRCACHEDIRECTORY argument as shown in this example, which installs CU1 updates:

C:\<path to installation media>\SQLServer2016-KB3164674-x64.exe /Action=Patch /IACCEPTROPENLICENSETERMS /MRCACHEDIRECTORY=<path to CU1 CAB files>

Wie Sie aktuelle Installationsprogramme erhalten, erfahren Sie unter Installieren von Machine Learning-Komponenten ohne Internetzugang.To get the latest installers, see Install machine learning components without internet access.

Gilt für: SQL Server 2016 R Services mit R Server Version 9.0.0 oder früherApplies to: SQL Server 2016 R Services, with R Server version 9.0.0 or earlier

8. Launchpad-Dienste werden nicht gestartet, wenn die Version von der R-Version abweicht8. Launchpad services fails to start if the version is different from the R version

Wenn Sie SQL Server R Services getrennt von der Datenbank-Engine installieren und die Buildversionen unterschiedlich sind, wird möglicherweise der folgende Fehler im Systemereignisprotokoll angezeigt:If you install SQL Server R Services separately from the database engine, and the build versions are different, you might see the following error in the System Event log:

Der Dienst SQL Server-Launchpad wurde aufgrund folgenden Fehlers nicht gestartet: Der Dienst antwortete nicht rechtzeitig auf die Start- oder Steuerungsanforderung.The SQL Server Launchpad service failed to start due to the following error: The service did not respond to the start or control request in a timely fashion.

Dieser Fehler tritt möglicherweise auf, wenn Sie die Datenbank-Engine mithilfe der endgültigen Produktversion installieren, einen Patch anwenden, um die Datenbank-Engine zu aktualisieren, und anschließend das R Services-Feature mithilfe der endgültigen Produktversion hinzufügen.For example, this error might occur if you install the database engine by using the release version, apply a patch to upgrade the database engine, and then add the R Services feature by using the release version.

Um dieses Problem zu vermeiden, verwenden Sie ein Hilfsprogramm wie den Datei-Manager, um die Versionen von „Launchpad. exe“ mit einer Version von SQL-Binärdateien wie „sqldk.dll“ zu vergleichen.To avoid this problem, use a utility such as File Manager to compare the versions of Launchpad.exe with version of SQL binaries, such as sqldk.dll. Alle Komponenten sollten dieselbe Versionsnummer aufweisen.All components should have the same version number. Wenn Sie eine Komponente aktualisieren, müssen Sie dasselbe Upgrade auf alle anderen installierten Komponenten anwenden.If you upgrade one component, be sure to apply the same upgrade to all other installed components.

Suchen Sie im Binn-Ordner der Instanz nach Launchpad.Look for Launchpad in the Binn folder for the instance. In einer Standardinstallation von SQL Server 2016 kann der Pfad beispielsweise C:\Program Files\Microsoft SQL Server\MSSQL.13.InstanceNameMSSQL\Binn lauten.For example, in a default installation of SQL Server 2016, the path might be C:\Program Files\Microsoft SQL Server\MSSQL.13.InstanceNameMSSQL\Binn.

9. Remotecomputekontexte werden in SQL Server-Instanzen, die auf virtuellen Azure-Computern ausgeführt werden, durch die Firewall blockiert9. Remote compute contexts are blocked by a firewall in SQL Server instances that are running on Azure virtual machines

Falls Sie SQL Server 2019 (15.x)SQL Server 2019 (15.x) auf einem virtuellen Azure-Computer installiert haben, können Sie Computekontexte, die die Verwendung des Arbeitsbereichs des virtuellen Computers erfordern, möglicherweise nicht verwenden.If you have installed SQL Server 2019 (15.x)SQL Server 2019 (15.x) on an Azure virtual machine, you might not be able to use compute contexts that require the use of the virtual machine's workspace. Der Grund ist, dass die Firewall auf virtuellen Azure-Computern standardmäßig eine Regel enthält, die den Netzwerkzugriff für lokale R-Benutzerkonten blockiert.The reason is that, by default, the firewall on Azure virtual machines includes a rule that blocks network access for local R user accounts.

Um dieses Problem zu umgehen, öffnen Sie auf der Azure-VM Windows Firewall mit erweiterter Sicherheit, wählen Sie Ausgehende Regel aus, und deaktivieren Sie die folgende Regel: Netzwerkzugriff für lokale R-Benutzerkonten in der SQL Server-Instanz MSSQLSERVER blockieren.As a workaround, on the Azure VM, open Windows Firewall with Advanced Security, select Outbound Rules, and disable the following rule: Block network access for R local user accounts in SQL Server instance MSSQLSERVER. Sie können die Regel auch aktiviert lassen, aber ändern Sie dann die Sicherheitseigenschaft in Zulassen, falls sicher.You can also leave the rule enabled, but change the security property to Allow if secure.

10. Implizite Authentifizierung in SQLEXPRESS10. Implied authentication in SQLEXPRESS

Beim Ausführen von R-Aufträgen auf einer Data Science-Remotearbeitsstation mithilfe der integrierten Windows-Authentifizierung verwendet SQL Server die implizite Authentifizierung, um lokale ODBC-Aufrufe zu generieren, die das Skript möglicherweise benötigt.When you run R jobs from a remote data-science workstation by using Integrated Windows authentication, SQL Server uses implied authentication to generate any local ODBC calls that might be required by the script. Im RTM-Build der SQL Server Express Edition funktionierte diese Funktion jedoch nicht.However, this feature did not work in the RTM build of SQL Server Express Edition.

Um das Problem zu beheben, empfehlen wir die Aktualisierung auf ein neueres Service Release.To fix the issue, we recommend that you upgrade to a later service release.

Wenn ein Upgrade nicht möglich ist, können Sie als Problemumgehung eine SQL-Anmeldung verwenden, um R-Remoteaufträge auszuführen, die unter Umständen eingebettete ODBC-Aufrufe benötigen.If upgrade is not feasible, as a workaround, use a SQL login to run remote R jobs that might require embedded ODBC calls.

Gilt für: SQL Server 2016 R Services Express EditionApplies to: SQL Server 2016 R Services Express Edition

11. Leistungsgrenzen, wenn von SQL Server verwendete Bibliotheken von anderen Tools aufgerufen werden11. Performance limits when libraries used by SQL Server are called from other tools

Es ist möglich, die Machine Learning-Bibliotheken aufzurufen, die von einer externen Anwendung wie RGui für SQL Server installiert werden.It is possible to call the machine learning libraries that are installed for SQL Server from an external application, such as RGui. Dies ist unter Umständen die einfachste Möglichkeit, bestimmte Aufgaben wie das Installieren neuer Pakete oder Ausführen von Ad-hoc-Tests für sehr kurze Codebeispiele zu erledigen.Doing so might be the most convenient way to accomplish certain tasks, such as installing new packages, or running ad hoc tests on very short code samples. Allerdings könnte die Leistung außerhalb von SQL Server eingeschränkt sein.However, outside of SQL Server, performance might be limited.

Selbst wenn Sie beispielsweise die Enterprise Edition von SQL Server verwenden, wird R im Singlethread-Modus ausgeführt, wenn Sie den R-Code mit externen Tools ausführen.For example, even if you are using the Enterprise Edition of SQL Server, R runs in single-threaded mode when you run your R code by using external tools. Um die Leistungsvorteile in SQL Server zu nutzen, initiieren Sie eine SQL Server-Verbindung, und rufen Sie mit sp_execute_external_script die Runtime des externen Skripts auf.To get the benefits of performance in SQL Server, initiate a SQL Server connection and use sp_execute_external_script to call the external script runtime.

Vermeiden Sie im Allgemeinen, die von SQL Server verwendeten Machine Learning-Bibliotheken von externen Tools aufzurufen.In general, avoid calling the machine learning libraries that are used by SQL Server from external tools. Wenn Sie R- oder Python-Code debuggen müssen, ist dies in der Regel außerhalb von SQL Server einfacher.If you need to debug R or Python code, it is typically easier to do so outside of SQL Server. Um dieselben Bibliotheken zu erhalten, die sich in SQL Server befinden, können Sie Microsoft R Client, SQL Server 2017 Machine Learning Server (eigenständig) oder SQL Server 2016 R Server (eigenständig) installieren.To get the same libraries that are in SQL Server, you can install Microsoft R Client, SQL Server 2017 Machine Learning Server (Standalone), or SQL Server 2016 R Server (Standalone).

12. SQL Server Data Tools unterstützt keine Berechtigungen, die für externe Skripts erforderlich sind12. SQL Server Data Tools does not support permissions required by external scripts

Wenn Sie Visual Studio oder SQL Server Data Tools zum Veröffentlichen eines Datenbankprojekts verwenden, erhalten Sie möglicherweise eine Fehlermeldung wie die folgende, wenn ein Prinzipal über Berechtigungen verfügt, die für die Ausführung externer Skripts spezifisch sind:When you use Visual Studio or SQL Server Data Tools to publish a database project, if any principal has permissions specific to external script execution, you might get an error like this one:

TSQL-Modell: Beim Reverse Engineering der Datenbank wurde ein Fehler erkannt. Die Berechtigung wurde nicht erkannt und nicht importiert.TSQL Model: Error detected when reverse engineering the database. The permission was not recognized and was not imported.

Das DACPAC-Modell unterstützt derzeit nicht die von R Services oder Machine Learning Services verwendeten Berechtigungen wie GRANT ANY EXTERNAL SCRIPT oder EXECUTE ANY EXTERNAL SCRIPT.Currently the DACPAC model does not support the permissions used by R Services or Machine Learning Services, such as GRANT ANY EXTERNAL SCRIPT, or EXECUTE ANY EXTERNAL SCRIPT. Dieses Problem wird in einer künftigen Version behoben werden.This issue will be fixed in a later release.

Um dieses Problem zu umgehen, führen Sie die zusätzlichen GRANT-Anweisungen in einem Skript nach der Bereitstellung aus.As a workaround, run the additional GRANT statements in a post-deployment script.

13. Externe Skriptausführung wird aufgrund von Ressourcenkontrolle-Standardwerten gedrosselt13. External script execution is throttled due to resource governance default values

In Enterprise Edition können Sie Ressourcenpools verwenden, um externe Skriptprozesse zu verwalten.In Enterprise Edition, you can use resource pools to manage external script processes. In einigen frühen Releasebuilds betrug der maximale Arbeitsspeicher, der den R-Prozessen zugeordnet werden konnte, 20 Prozent.In some early release builds, the maximum memory that could be allocated to the R processes was 20 percent. Wenn der Server über 32 GB RAM-Speicher verfügte, konnten die ausführbaren R-Dateien („RTerm.exe“ und „BxlServer.exe“) in einer einzelnen Anforderung maximal 6,4 GB verwenden.Therefore, if the server had 32 GB of RAM, the R executables (RTerm.exe and BxlServer.exe) could use a maximum of 6.4 GB in a single request.

Wenn Ressourcenbeschränkungen auftreten, überprüfen Sie die aktuelle Standardeinstellung.If you encounter resource limitations, check the current default. Wenn der Standardwert von 20 Prozent nicht ausreicht, entnehmen Sie der Dokumentation für SQL ServerSQL Server, wie Sie diesen Wert ändern.If 20 percent is not enough, see the documentation for SQL ServerSQL Server on how to change this value.

Gilt für: SQL Server 2016 R Services, Enterprise EditionApplies to: SQL Server 2016 R Services, Enterprise Edition

14. Fehler beim Verwenden von sp_execute_external_script ohne libc++.so unter Linux14. Error when using sp_execute_external_script without libc++.so on Linux

Auf einem sauberen Linux-Computer, auf dem nicht libc++.so installiert ist, tritt beim Ausführen eines sp_execute_external_script (SPEES) mit Java oder einer externen Sprache ein Fehler auf, weil commonlauncher.so libc++.so nicht geladen werden kann.On a clean Linux machine that does not have libc++.so installed, running a sp_execute_external_script (SPEES) query with Java or an external language fails because commonlauncher.so fails to load libc++.so.

Beispiel:For example:

EXECUTE sp_execute_external_script @language = N'Java'
    , @script = N'JavaTestPackage.PassThrough'
    , @parallel = 0
    , @input_data_1 = N'select 1'
WITH RESULT SETS((col1 INT NOT NULL))
GO

Hierzu wird eine Fehlermeldung ähnlich der folgenden ausgegeben:This fails with a message similar to the following:

Msg 39012, Level 16, State 14, Line 0

Unable to communicate with the runtime for 'Java' script for request id: 94257840-1704-45E8-83D2-2F74AEB46CF7. Please check the requirements of 'Java' runtime.

Die mssql-launchpadd-Protokolle enthalten eine Fehlermeldung mit etwa folgendem Wortlaut:The mssql-launchpadd logs will show an error message similar to the following:

Oct 18 14:03:21 sqlextmls launchpadd[57471]: [launchpad] 2019/10/18 14:03:21 WARNING: PopulateLauncher failed: Library /opt/mssql-extensibility/lib/commonlauncher.so not loaded. Error: libc++.so.1: cannot open shared object file: No such file or directory

ProblemumgehungWorkaround

Sie können eine der folgenden Problemumgehungen verwenden:You can perform one of the following workarounds:

  1. Kopieren Sie libc++* aus /opt/mssql/lib in den Standardsystempfad /lib64.Copy libc++* from /opt/mssql/lib to the default system path /lib64

  2. Fügen Sie /var/opt/mssql/mssql.conf die folgenden Einträge hinzu, um den Pfad verfügbar zu machen:Add the following entries to /var/opt/mssql/mssql.conf to expose the path:

    [extensibility]
    readabledirectories = /opt/mssql
    

Gilt für: SQL Server 2019 unter LinuxApplies to: SQL Server 2019 on Linux

Probleme mit der Ausführung des R-SkriptsR script execution issues

Dieser Abschnitt enthält bekannte Probleme, die für die Ausführung von R auf SQL Server spezifisch sind, sowie einige Probleme im Zusammenhang mit den R-Bibliotheken und -Tools einschließlich RevoScaler, die von Microsoft veröffentlicht werden.This section contains known issues that are specific to running R on SQL Server, as well as some issues that are related to the R libraries and tools published by Microsoft, including RevoScaleR.

Weitere bekannte Probleme, die sich auf R-Lösungen auswirken können, finden Sie auf der Machine Learning Server-Website.For additional known issues that might affect R solutions, see the Machine Learning Server site.

1. Zugriffsverweigerungswarnung beim Ausführen von R-Skripts unter SQL Server an einem nicht standardmäßigen Speicherort1. Access denied warning when executing R scripts on SQL Server in a non default location

Wenn die Instanz von SQL Server an einem nicht standardmäßigen Speicherort (z. B. außerhalb des Program Files-Ordners) installiert wurde, wird die Warnung ACCESS_DENIED ausgelöst, wenn Sie versuchen, Skripts auszuführen, mit denen ein Paket installiert wird.If the instance of SQL Server has been installed to a non-default location, such as outside the Program Files folder, the warning ACCESS_DENIED is raised when you try to run scripts that install a package. Beispiel:For example:

In normalizePath(path.expand(path), winslash, mustWork) : path[2]="~ExternalLibraries/R/8/1": Der Zugriff wird verweigertIn normalizePath(path.expand(path), winslash, mustWork) : path[2]="~ExternalLibraries/R/8/1": Access is denied

Der Grund hierfür ist, dass eine R-Funktion versucht, den Pfad zu lesen, und einen Fehler erzeugt, wenn die integrierte Benutzergruppe SQLRUserGroup keinen Lesezugriff hat.The reason is that an R function attempts to read the path, and fails if the built-in users group SQLRUserGroup, does not have read access. Die ausgelöste Warnung blockiert nicht die Ausführung des aktuellen R-Skripts, kann jedoch immer dann wiederholt auftreten, wenn der Benutzer ein anderes R-Skript ausführt.The warning that is raised does not block execution of the current R script, but the warning might recur repeatedly whenever the user runs any other R script.

Wenn Sie SQL Server am Standardspeicherort installiert haben, tritt dieser Fehler nicht auf, da alle Windows-Benutzer über Leseberechtigungen für den Ordner Program Files verfügen.If you have installed SQL Server to the default location, this error does not occur, because all Windows users have read permissions on the Program Files folder.

Dieses Problem wird in einem zukünftigen Service Release behandelt.This issue ia addressed in an upcoming service release. Um dieses Problem zu umgehen, gewähren Sie der Gruppe SQLRUserGroup Lesezugriff für alle übergeordneten Ordner von ExternalLibraries.As a workaround, provide the group, SQLRUserGroup, with read access for all parent folders of ExternalLibraries.

2. Serialisierungsfehler zwischen alten und neuen Versionen von RevoScaleR2. Serialization error between old and new versions of RevoScaleR

Wenn Sie ein Modell mit einem serialisierten Format an eine Remote-SQL Server-Instanz übergeben, erhalten Sie möglicherweise folgende Fehlermeldung:When you pass a model using a serialized format to a remote SQL Server instance, you might get the error:

Fehler in memDecompress(data, type = decompress) interner Fehler -3 in memDecompress(2).Error in memDecompress(data, type = decompress) internal error -3 in memDecompress(2).

Dieser Fehler wird ausgelöst, wenn Sie das Modell mit einer neueren Version der Serialisierungsfunktion, rxSerializeModel, gespeichert haben, aber die SQL Server-Instanz, auf der Sie das Modell deserialisieren, über eine ältere Version der RevoScaleR-APIs verfügt, von SQL Server 2017 CU2 oder früherer.This error is raised if you saved the model using a recent version of the serialization function, rxSerializeModel, but the SQL Server instance where you deserialize the model has an older version of the RevoScaleR APIs, from SQL Server 2017 CU2 or earlier.

Um dieses Problem zu umgehen, können Sie die SQL Server 2017-Instanz auf CU3 oder höher aktualisieren.As a workaround, you can upgrade the SQL Server 2017 instance to CU3 or later.

Der Fehler wird nicht angezeigt, wenn die API-Version identisch ist, oder wenn Sie ein Modell, das mit einer älteren Serialisierungsfunktion gespeichert ist, auf einen Server verschieben, auf dem eine neuere Version der Serialisierungs-API verwendet wird.The error does not appear if the API version is the same, or if you are moving a model saved with an older serialization function to a server that uses a newer version of the serialization API.

Mit anderen Worten: Verwenden Sie für Serialisierungs- und Deserialisierungsvorgänge die gleiche Version von RevoScaleR.In other words, use the same version of RevoScaleR for both serialization and deserialization operations.

3. Echtzeitbewertung behandelt den learningRate-Parameter in Struktur- und Gesamtstrukturmodellen nicht ordnungsgemäß3. Real-time scoring does not correctly handle the learningRate parameter in tree and forest models

Wenn Sie ein Modell mithilfe einer Entscheidungswald- oder Entscheidungsstrukturmethode erstellen und die Lernrate angeben, werden möglicherweise im Gegensatz zur Verwendung von rxPredict inkonsistente Ergebnisse angezeigt, wenn Sie sp_rxpredict oder die SQL-Funktion PREDICT verwenden.If you create a model using a decision tree or decision forest method and specify the learning rate, you might see inconsistent results when using sp_rxpredict or the SQL PREDICT function, as compared to using rxPredict.

Die Ursache ist ein Fehler in der API, die serialisierte Modelle verarbeitet, und auf den learningRate-Parameter beschränkt: z. B. in rxBTrees, oderThe cause is an error in the API that processes serialized models, and is limited to the learningRate parameter: for example, in rxBTrees, or

Dieses Problem wird in einem zukünftigen Service Release behandelt.This issue is addressed in an upcoming service release.

4. Einschränkungen der Prozessoraffinität für R-Aufträge4. Limitations on processor affinity for R jobs

Im ersten Releasebuild von SQL Server 2016 konnte die Prozessoraffinität nur für CPUs in der ersten k-Gruppe festgelegt werden.In the initial release build of SQL Server 2016, you could set processor affinity only for CPUs in the first k-group. Wenn es sich bei dem Server um einen 2-Socket-Computer mit zwei k-Gruppen handelt, werden beispielsweise nur Prozessoren der ersten k-Gruppe für die R-Prozesse verwendet.For example, if the server is a 2-socket machine with two k-groups, only processors from the first k-group are used for the R processes. Dieselbe Einschränkung gilt beim Konfigurieren der Ressourcenkontrolle für R-Skriptaufträge.The same limitation applies when you configure resource governance for R script jobs.

Dieses Problem wurde in SQL Server 2016 Service Pack 1 behoben.This issue is fixed in SQL Server 2016 Service Pack 1. Sie sollten auf das aktuelle Service Release aktualisieren.We recommend that you upgrade to the latest service release.

Gilt für: SQL Server 2016 R Services, RTM-VersionApplies to: SQL Server 2016 R Services RTM version

5. Änderungen an Spaltentypen nicht möglich, wenn Daten in SQL Server-Rechenkontext gelesen werden5. Changes to column types cannot be performed when reading data in a SQL Server compute context

Wenn der Rechenkontext auf die SQL Server-Instanz festgelegt ist, können Sie das Argument ColClasses (oder andere ähnliche Argumente) nicht verwenden, um den Datentyp von Spalten in Ihrem R-Code zu ändern.If your compute context is set to the SQL Server instance, you cannot use the colClasses argument (or other similar arguments) to change the data type of columns in your R code.

Die folgende Anweisung würde beispielsweise zu einem Fehler würden, wenn die Spalte CRSDepTimeStr keine Ganzzahl ist:For example, the following statement would result in an error if the column CRSDepTimeStr is not already an integer:

data <- RxSqlServerData(
  sqlQuery = "SELECT CRSDepTimeStr, ArrDelay  FROM AirlineDemoSmall", 
  connectionString = connectionString, 
  colClasses = c(CRSDepTimeStr = "integer"))

Um dieses Problem zu umgehen, können Sie die SQL-Abfrage so umschreiben, dass sie CAST oder CONVERT verwendet, um R die Daten mit dem richtigen Datentyp vorzulegen.As a workaround, you can rewrite the SQL query to use CAST or CONVERT and present the data to R by using the correct data type. Generell ist die Leistung besser, wenn Sie SQL verwenden, um mit Daten zu arbeiten, anstatt Daten im R-Code zu ändern.In general, performance is better when you work with data by using SQL rather than by changing data in the R code.

Gilt für: SQL Server 2016 R ServicesApplies to: SQL Server 2016 R Services

6. Beschränkungen der Größe serialisierter Modelle6. Limits on size of serialized models

Wenn Sie ein Modell in einer SQL Server-Tabelle speichern, müssen Sie das Modell serialisieren und in einem Binärformat speichern.When you save a model to a SQL Server table, you must serialize the model and save it in a binary format. Theoretisch beträgt die maximale Größe eines Modells, das mit dieser Methode gespeichert werden kann, 2 GB. Dies ist die maximale Größe von varbinary-Spalten in SQL Server.Theoretically the maximum size of a model that can be stored with this method is 2 GB, which is the maximum size of varbinary columns in SQL Server.

Wenn Sie größere Modelle verwenden müssen, sind die folgenden Problemumgehungen verfügbar:If you need to use larger models, the following workarounds are available:

  • Ergreifen Sie Maßnahmen, um die Größe des Modells zu verringern.Take steps to reduce the size of your model. Bei einigen Open-Source-R-Paketen sind zahlreiche Informationen im Modellobjekt enthalten, und viele dieser Informationen können für die Bereitstellung entfernt werden.Some open source R packages include a great deal of information in the model object, and much of this information can be removed for deployment.

  • Entfernen Sie unnötige Spalten mit der Featureauswahl.Use feature selection to remove unnecessary columns.

  • Bei einem Open-Source-Algorithmus sollten Sie eine ähnliche Implementierung mithilfe des entsprechenden Algorithmus in MicrosoftML oder RevoScaleR verwenden.If you are using an open source algorithm, consider a similar implementation using the corresponding algorithm in MicrosoftML or RevoScaleR. Diese Pakete wurden für Bereitstellungsszenarien optimiert.These packages have been optimized for deployment scenarios.

  • Stellen Sie nach der Rationalisierung des Modells und der Reduzierung der Größe mit den vorangehenden Schritten fest, ob die memCompress-Funktion in Basis-R verwendet werden kann, um die Größe des Modells zu verringern, bevor es an SQL Server übergeben wird.After the model has been rationalized and the size reduced using the preceding steps, see if the memCompress function in base R can be used to reduce the size of the model before passing it to SQL Server. Diese Option ist am besten geeignet, wenn das Modell in der Nähe des Limits von 2 GB liegt.This option is best when the model is close to the 2 GB limit.

  • Bei größeren Modellen können Sie das FileTable-Feature von SQL Server verwenden, um die Modelle zu speichern, anstatt eine varbinary-Spalte zu verwenden.For larger models, you can use the SQL Server FileTable feature to store the models, rather than using a varbinary column.

    Um FileTables verwenden zu können, müssen Sie eine Firewallausnahme hinzufügen, da die in FileTables gespeicherten Daten in SQL Server vom Filestream-Dateisystemtreiber verwaltet werden und die standardmäßigen Firewallregeln den Zugriff auf Netzwerkdateien blockieren.To use FileTables, you must add a firewall exception, because data stored in FileTables is managed by the Filestream filesystem driver in SQL Server, and default firewall rules block network file access. Weitere Informationen finden Sie unter Aktivieren der erforderlichen Komponenten für FileTable.For more information, see Enable Prerequisites for FileTable.

    Nachdem Sie FileTable aktiviert haben, um das Modell zu schreiben, erhalten Sie mithilfe der FileTable-API einen Pfad von SQL, und dann schreiben Sie das Modell aus dem Code in diesen Speicherort.After you have enabled FileTable, to write the model, you get a path from SQL using the FileTable API, and then write the model to that location from your code. Wenn Sie das Modell lesen müssen, erhalten Sie den Pfad von SQL, und Sie können das Modell mit dem Pfad aus dem Skript abrufen.When you need to read the model, you get the path from SQL and then call the model using the path from your script. Weitere Informationen finden Sie unter Zugreifen auf FileTables mit Datei-E/A-APIs.For more information, see Access FileTables with File Input-Output APIs.

7. Löschen von Arbeitsbereichen vermeiden, wenn Sie R-Code in einem SQL ServerSQL Server-Computekontext ausführen7. Avoid clearing workspaces when you execute R code in a SQL ServerSQL Server compute context

Wenn Sie einen R-Befehl verwenden, um Objekte aus Ihrem Arbeitsbereich zu entfernen, während R-Code in einem SQL ServerSQL Server-Computekontext ausgeführt wird, oder wenn Sie den Arbeitsbereich im Rahmen eines R-Skripts löschen, das mit sp_execute_external_script aufgerufen wird, erhalten Sie möglicherweise die folgende Fehlermeldung: Arbeitsbereichsobjekt revoScriptConnection wurde nicht gefunden.If you use an R command to clear your workspace of objects while running R code in a SQL ServerSQL Server compute context, or if you clear the workspace as part of an R script called by using sp_execute_external_script, you might get this error: workspace object revoScriptConnection not found

revoScriptConnection ist ein Objekt im R-Arbeitsbereich, das Informationen über eine R-Sitzung enthält, die aus SQL ServerSQL Serveraufgerufen wird.revoScriptConnection is an object in the R workspace that contains information about an R session that is called from SQL ServerSQL Server. Wenn Ihr R-Code jedoch einen Befehl zum Löschen des Arbeitsbereichs enthält (wie z.B. rm(list=ls()))), werden alle Informationen über die Sitzung und andere Objekte im R-Arbeitsbereich ebenfalls gelöscht.However, if your R code includes a command to clear the workspace (such as rm(list=ls())), all information about the session and other objects in the R workspace is cleared as well.

Um dieses Problem zu umgehen, sollten Sie willkürliches Löschen von Variablen und anderen Objekten während der Ausführung von R in SQL ServerSQL Server vermeiden.As a workaround, avoid indiscriminate clearing of variables and other objects while you're running R in SQL ServerSQL Server. Das Löschen des Arbeitsbereichs ist bei der Arbeit auf der R-Konsole zwar üblich, kann aber zu unerwarteten Ergebnissen führen.Although clearing the workspace is common when working in the R console, it can have unintended consequences.

  • Um bestimmte Variablen zu löschen, verwenden Sie die Funktion remove von R: z. B. remove('name1', 'name2', ...).To delete specific variables, use the R remove function: for example, remove('name1', 'name2', ...)
  • Wenn mehrere zu löschende Variablen vorhanden sind, speichern Sie die Namen temporärer Variablen in einer Liste und führen eine regelmäßige automatische Speicherbereinigung durch.If there are multiple variables to delete, save the names of temporary variables to a list and perform periodic garbage collection.

8. Einschränkungen von Daten, die als Eingabe für ein R-Skript bereitgestellt werden können8. Restrictions on data that can be provided as input to an R script

Sie können die folgenden Typen von Abfrageergebnissen nicht in einem R-Skript verwenden:You cannot use in an R script the following types of query results:

  • Daten aus einer Transact-SQLTransact-SQL -Abfrage, die auf „AlwaysEncrypted“-Spalten verweist.Data from a Transact-SQLTransact-SQL query that references AlwaysEncrypted columns.

  • Daten aus einer Transact-SQLTransact-SQL -Abfrage, die auf maskierte Spalten verweist.Data from a Transact-SQLTransact-SQL query that references masked columns.

    Wenn Sie maskierte Daten in einem R-Skript verwenden müssen, ist eine mögliche Problemumgehung das Erstellen einer Kopie der Daten in einer temporären Tabelle und anschließende Verwenden dieser Daten.If you need to use masked data in an R script, a possible workaround is to make a copy of the data in a temporary table and use that data instead.

9. Verwendung von Zeichenfolgen als Faktoren kann zu Leistungseinbußen führen9. Use of strings as factors can lead to performance degradation

Die Verwendung von Zeichenfolgentyp-Variablen als Faktoren kann die Menge des für R-Vorgänge verwendeten Arbeitsspeichers erheblich erhöhen.Using string type variables as factors can greatly increase the amount of memory used for R operations. Dies ist ein im Allgemeinen bekanntes Problem bei R, und es gibt viele Artikel zu diesem Thema.This is a known issue with R in general, and there are many articles on the subject. Informationen hierzu finden Sie unter Factors are not first-class citizens in R (Faktoren sind in R keine Bürger erster Klasse) von John Mount in R-bloggers, oder stringsAsFactors: An unauthorized biography (stringsAsFactors: Eine nicht autorisierte Biografie), von Roger Peng.For example, see Factors are not first-class citizens in R, by John Mount, in R-bloggers) or stringsAsFactors: An unauthorized biography, by Roger Peng.

Obwohl das Problem nicht für SQL Server spezifisch ist, kann sich dies erheblich auf die Leistung von R-Code auswirken, der in SQL Server ausgeführt wird.Although the issue is not specific to SQL Server, it can greatly affect performance of R code run in SQl Server. Zeichenfolgen werden in der Regel als „varchar“ oder „nvarchar“ gespeichert, und wenn eine Spalte mit Zeichenfolgendaten viele eindeutige Werte aufweist, kann der Prozess der internen Umwandlung in ganze Zahlen und zurück in Zeichenfolgen durch R sogar zu Speicherbelegungsfehlern führen.Strings are typically stored as varchar or nvarchar, and if a column of string data has many unique values, the process of internally converting these to integers and back to strings by R can even lead to memory allocation errors.

Wenn Sie nicht unbedingt für andere Vorgänge einen Zeichenfolgen-Datentyp benötigen, ist die Zuordnung der Zeichenfolgenwerte zu einem numerischen Datentyp (Integer) als Teil der Datenvorbereitung aus Leistungs- und Skalierungsperspektive vorteilhaft.If you do not absolutely require a string data type for other operations, mapping the string values to a numeric (integer) data type as part of data preparation would be beneficial from a performance and scale perspective.

Eine Erörterung dieses Problems und weitere Tipps finden Sie unter Leistung für R Services – Datenoptimierung.For a discussion of this issue, and other tips, see Performance for R Services - data optimization.

10. Argumente varsToKeep und varsToDrop werden für SQL Server-Datenquellen nicht unterstützt10. Arguments varsToKeep and varsToDrop are not supported for SQL Server data sources

Wenn Sie die Funktion rxDataStep zum Schreiben von Ergebnissen in eine Tabelle verwenden, ist die Verwendung von varsToKeep und varsToDrop eine praktische Möglichkeit, um die Spalten anzugeben, die als Teil des Vorgangs eingeschlossen oder ausgeschlossen werden sollen.When you use the rxDataStep function to write results to a table, using the varsToKeep and varsToDrop is a handy way of specifying the columns to include or exclude as part of the operation. Diese Argumente werden für SQL Server-Datenquellen jedoch nicht unterstützt.However, these arguments are not supported for SQL Server data sources.

11. Eingeschränkte Unterstützung für SQL-Datentypen in sp_execute_external_script11. Limited support for SQL data types in sp_execute_external_script

Nicht alle in SQL unterstützten Datentypen können in R verwendet werden. Um dieses Problem zu umgehen, erwägen Sie, den nicht unterstützten Datentyp in einen unterstützten Datentypen umzuwandeln, bevor die Daten an sp_execute_external_script übergeben werden.Not all data types that are supported in SQL can be used in R. As a workaround, consider casting the unsupported data type to a supported data type before passing the data to sp_execute_external_script.

Weitere Informationen finden Sie unter Datentypzuordnungen zwischen R und SQL Server.For more information, see R libraries and data types.

12. Mögliche Zeichenfolgenbeschädigung bei Verwendung von Unicode-Zeichenfolgen in varchar-Spalten12. Possible string corruption using unicode strings in varchar columns

Die Übergabe von Unicode-Daten in varchar-Spalten aus SQL ServerSQL Server an R/Python kann zu einer Zeichenfolgenbeschädigung führen.Passing unicode data in varchar columns from SQL ServerSQL Server to R/Python can result in string corruption. Dies liegt daran, dass die Codierung für diese Unicode-Zeichenfolge in SQL ServerSQL Server-Sortierungen möglicherweise nicht mit der in R/Python verwendeten standardmäßigen UTF-8-Codierung identisch ist.This is due to the encoding for these unicode string in SQL ServerSQL Server collations may not match with the default UTF-8 encoding used in R/Python.

Um Nicht-ASCII-Zeichenfolgendaten von SQL ServerSQL Server an R/Python zu senden, verwenden Sie die UTF-8-Codierung (in SQL Server 2019 (15.x)SQL Server 2019 (15.x) verfügbar), oder verwenden Sie den nvarchar-Typ für den gleichen Zweck.To send any non-ASCII string data from SQL ServerSQL Server to R/Python, use UTF-8 encoding (available in SQL Server 2019 (15.x)SQL Server 2019 (15.x)) or use nvarchar type for the same.

13. Es kann nur ein Wert des Typs raw von sp_execute_external_script zurückgegeben werden13. Only one value of type raw can be returned from sp_execute_external_script

Wenn ein binärer Datentyp (der R-Datentyp raw) von R zurückgegeben wird, muss der Wert an den Ausgabedatenrahmen gesendet werden.When a binary data type (the R raw data type) is returned from R, the value must be sent in the output data frame.

Mit anderen Datentypen als raw können Sie Parameterwerte zusammen mit den Ergebnissen der gespeicherten Prozedur zurückgeben, indem Sie das Schlüsselwort OUTPUT hinzufügen.With data types other than raw, you can return parameter values along with the results of the stored procedure by adding the OUTPUT keyword. Weitere Informationen finden Sie unter Parameter.For more information, see Parameters.

Wenn Sie mehrere Ausgaberesultsets verwenden möchten, die Werte des Typs raw enthalten, ist das mehrfache Aufrufen der gespeicherten Prozedur oder Zurücksenden der Resultsets an SQL ServerSQL Server mithilfe von ODBC als Problemumgehung möglich.If you want to use multiple output sets that include values of type raw, one possible workaround is to do multiple calls of the stored procedure, or to send the result sets back to SQL ServerSQL Server by using ODBC.

14. Genauigkeitsverlust14. Loss of precision

Weil Transact-SQLTransact-SQL und R unterschiedliche Datentypen unterstützen, kann es bei der Konvertierung numerischer Datentypen zu einem Genauigkeitsverlust kommen.Because Transact-SQLTransact-SQL and R support various data types, numeric data types can suffer loss of precision during conversion.

Weitere Informationen zur impliziten Datentypkonvertierung finden Sie unter Datentypzuordnungen zwischen R und SQL Server.For more information about implicit data-type conversion, see R libraries and data types.

15. Variablenbereichsfehler bei Verwendung des transformFunc-Parameters15. Variable scoping error when you use the transformFunc parameter

Um Daten zu transformieren, während Sie ein Modell erstellen, können Sie ein transfodermFunc-Argument in einer Funktion wie rxLinmod oder rxLogit übergeben.To transform data while you are modeling, you can pass a transformFunc argument in a function such as rxLinmod or rxLogit. Allerdings können Aufrufe geschachtelter Funktionen im SQL Server-Computekontext zu Fehlern bei der Bereichsdefinition führen, selbst wenn die Aufrufe im lokalen Computekontext ordnungsgemäß funktionieren.However, nested function calls can lead to scoping errors in the SQL Server compute context, even if the calls work correctly in the local compute context.

Das Beispieldataset für die Analyse enthält keine Variablen.The sample data set for the analysis has no variables

Angenommen, Sie haben die beiden Funktionen f und g in Ihrer lokalen globalen Umgebung definiert, und g ruft f auf.For example, assume that you have defined two functions, f and g, in your local global environment, and g calls f. Bei verteilten oder Remoteaufrufen unter Verwendung von g kann der Aufruf von g mit diesem Fehler erfolglos sein, da f nicht gefunden werden kann, selbst wenn Sie f und g an den Remoteaufruf übergeben haben.In distributed or remote calls involving g, the call to g might fail with this error, because f cannot be found, even if you have passed both f and g to the remote call.

Wenn dieses Problem auftritt, können Sie es umgehen, indem Sie die Definition von f innerhalb der Definition von gan einer Stelle einbetten, vor der g normalerweise faufrufen würde.If you encounter this problem, you can work around the issue by embedding the definition of f inside your definition of g, anywhere before g would ordinarily call f.

Beispiel:For example:

f <- function(x) { 2*x * 3 }
g <- function(y) {
              a <- 10 * y
               f(a)
}

Um den Fehler zu vermeiden, schreiben Sie die Definition wie folgt um:To avoid the error, rewrite the definition as follows:

g <- function(y){
              f <- function(x) { 2*x +3}
              a <- 10 * y
              f(a)
}

16. Importieren und Bearbeiten von Daten mithilfe von RevoScaleR16. Data import and manipulation using RevoScaleR

Beim Lesen von varchar-Spalten aus einer Datenbank werden Leerzeichen abgeschnitten.When varchar columns are read from a database, white space is trimmed. Um dies zu verhindern, schließen Sie Zeichenfolgen in Zeichen ein, die keine Leerzeichen sind.To prevent this, enclose strings in non-white-space characters.

Wenn Sie Funktionen wie rxDataStep zum Erstellen von Datenbanktabellen mit varchar-Spalten nutzen, wird die Spaltenbreite basierend auf einer Stichprobe der Daten geschätzt.When functions such as rxDataStep are used to create database tables that have varchar columns, the column width is estimated based on a sample of the data. Wenn die Breite variieren kann, könnte es notwendig sein, alle Zeichenfolgen so aufzufüllen, dass ihre Länge gleich ist.If the width can vary, it might be necessary to pad all strings to a common length.

Das Verwenden einer Transformation zum Ändern des Datentyps einer Variablen wird nicht unterstützt, wenn wiederholte Aufrufe von rxImport oder rxTextToXdf zum Importieren und Anfügen von Zeilen verwendet werden, wobei mehrere Eingabedateien zu einer einzelnen XDF-Datei kombiniert werden.Using a transform to change a variable's data type is not supported when repeated calls to rxImport or rxTextToXdf are used to import and append rows, combining multiple input files into a single .xdf file.

17. Eingeschränkte Unterstützung für rxExec17. Limited support for rxExec

In SQL Server 2016 kann die rxExec-Funktion, die vom RevoScaleR-Paket bereitgestellt wird, nur im Singlethread-Modus verwendet werden.In SQL Server 2016, the rxExec function that's provided by the RevoScaleR package can be used only in single-threaded mode.

18. Erhöhen der maximalen Parametergröße zur Unterstützung von rxGetVarInfo18. Increase the maximum parameter size to support rxGetVarInfo

Wenn Sie Datensätze mit einer sehr großen Anzahl von Variablen (z. B. über 40.000) verwenden, legen Sie das max-ppsize-Flag beim Starten von R fest, um Funktionen wie z. B. rxGetVarInfo zu verwenden.If you use data sets with extremely large numbers of variables (for example, over 40,000), set the max-ppsize flag when you start R to use functions such as rxGetVarInfo. Das max-ppsize -Flag gibt die maximale Pointer Protection Stack-Größe an.The max-ppsize flag specifies the maximum size of the pointer protection stack.

Wenn Sie die R-Konsole verwenden (z. B. „RGui.exe“ oder „RTerm.exe“), können Sie den Wert von max-ppsize auf 500.000 festlegen, indem Sie Folgendes eingeben:If you are using the R console (for example, RGui.exe or RTerm.exe), you can set the value of max-ppsize to 500000 by typing:

R --max-ppsize=500000

19. Probleme mit der rxDTree-Funktion19. Issues with the rxDTree function

Die rxDTree -Funktion unterstützt derzeit keine formelinternen Transformationen.The rxDTree function does not currently support in-formula transformations. Insbesondere das Verwenden der F() -Syntax zum Erstellen von Faktoren bei laufendem Betrieb wird nicht unterstützt.In particular, using the F() syntax for creating factors on the fly is not supported. Numerische Daten werden jedoch automatisch klassifiziert.However, numeric data is automatically binned.

Geordnete Faktoren werden in allen RevoScaleR-Analysefunktionen außer rxDTreegenauso wie Faktoren behandelt.Ordered factors are treated the same as factors in all RevoScaleR analysis functions except rxDTree.

20. Data.table als OutputDataSet in R20. Data.table as an OutputDataSet in R

Die Verwendung von data.table als OutputDataSet in R wird im kumulativen Update 13 (CU13) und früheren Updates von SQL Server 2017 nicht unterstützt.Using data.table as an OutputDataSet in R is not supported in SQL Server 2017 Cumulative Update 13 (CU13) and earlier. Möglicherweise wird die folgende Meldung angezeigt:The following message might appear:

Msg 39004, Level 16, State 20, Line 2
A 'R' script error occurred during execution of 
'sp_execute_external_script' with HRESULT 0x80004004.
Msg 39019, Level 16, State 2, Line 2
An external script error occurred: 
Error in alloc.col(newx) : 
  Internal error: length of names (0) is not length of dt (11)
Calls: data.frame ... as.data.frame -> as.data.frame.data.table -> copy -> alloc.col

Error in execution.  Check the output for more information.
Error in eval(expr, envir, enclos) : 
  Error in execution.  Check the output for more information.
Calls: source -> withVisible -> eval -> eval -> .Call
Execution halted

data.table als OutputDataSet in R wird im kumulativen Update 14 (CU14) und späteren Updates von SQL Server 2017 unterstützt.data.table as an OutputDataSet in R is supported in SQL Server 2017 Cumulative Update 14 (CU14) and later.

21. Ausführen eines langen Skripts schlägt fehl, wenn eine Bibliothek installiert wird21. Running a long script fails while installing a library

Wenn das DBO parallel zu einer zeitintensiven Sitzung eines externen Skripts versucht, eine Bibliothek in einer anderen Datenbank zu installieren, kann das Skript beendet werden.Running a long running external script session and having the dbo in parallel trying to install a library on a different database can terminate the script.

Beispielsweise wird dieses externe Skript für „MASTER“ ausgeführt:For example, running this external script against master:

USE MASTER
DECLARE @language nvarchar(1) = N'R'
DECLARE @script nvarchar(max) = N'Sys.sleep(100)'
DECLARE @input_data_1 nvarchar(max) = N'select 1'
EXEC sp_execute_external_script @language = @language, @script = @script, @input_data_1 = @input_data_1 with result sets none
go

Währenddessen installiert das DBO parallel eine Bibliothek in LibraryManagementFunctional:While the dbo in parallel installs a library in LibraryManagementFunctional:

USE [LibraryManagementFunctional]
go

CREATE EXTERNAL LIBRARY [RODBC] FROM (CONTENT = N'/home/ani/var/opt/mssql/data/RODBC_1.3-16.tar.gz') WITH (LANGUAGE = 'R')
go

DECLARE @language nvarchar(1) = N'R'
DECLARE @script nvarchar(14) = N'library(RODBC)'
DECLARE @input_data_1 nvarchar(8) = N'select 1'
EXEC sp_execute_external_script @language = @language, @script = @script, @input_data_1 = @input_data_1
go

Das vorherige für „MASTER“ ausgeführte zeitintensive externe Skript wird mit der folgenden Fehlermeldung beendet:The previous long running external script against master will terminate with the following error message:

Unerwarteter „R“-Skriptfehler beim Ausführen von „sp_execute_external_script“ mit HRESULT 0x800704d4.A 'R' script error occurred during execution of 'sp_execute_external_script' with HRESULT 0x800704d4.

ProblemumgehungWorkaround

Führen Sie die Bibliotheksinstallation nicht parallel zu der zeitintensiven Abfrage aus.Don’t run the library install in parallel to the long-running query. Sie können die zeitintensive Abfrage auch ausführen, sobald die Installation beendet ist.Or rerun the long running query after the installation is complete.

Gilt für: Nur für SQL Server 2019 unter Linux und Big Data-Clusters.Applies to: SQL Server 2019 on Linux & Big Data Clusters only.

Probleme mit der Ausführung des Python-SkriptsPython script execution issues

Dieser Abschnitt enthält bekannte Probleme, die für die Ausführung von Python auf SQL Server spezifisch sind, sowie Probleme im Zusammenhang mit den von Microsoft veröffentlichten Python-Paketen, einschließlich revoscalepy und microsoftml.This section contains known issues that are specific to running Python on SQL Server, as well as issues that are related to the Python packages published by Microsoft, including revoscalepy and microsoftml.

1. Fehler beim Aufruf des vortrainierten Modells, wenn der Pfad zum Modell zu lang ist1. Call to pretrained model fails if path to model is too long

Wenn Sie die vorab trainierten Modelle in einem frühen Release von SQL Server 2017 installiert haben, ist der gesamte Pfad zur Datei des trainierten Modells möglicherweise so lang, dass Python ihn nicht lesen kann.If you installed the pretrained models in an early release of SQL Server 2017, the complete path to the trained model file might be too long for Python to read. Diese Einschränkung wird in einem späteren Service Release korrigiert.This limitation is fixed in a later service release.

Mehrere Problemumgehungen sind möglich:There are several potential workarounds:

  • Wenn Sie die vorab trainierten Modelle installieren, wählen Sie einen benutzerdefinierten Speicherort aus.When you install the pretrained models, choose a custom location.
  • Installieren Sie die SQL Server-Instanz nach Möglichkeit unter einem kürzeren, benutzerdefinierten Installationspfad, z. B. „C:\SQL\MSSQL14.MSSQLSERVER“.If possible, install the SQL Server instance under a custom installation path with a shorter path, such as C:\SQL\MSSQL14.MSSQLSERVER.
  • Verwenden Sie das Windows-Hilfsprogramm Fsutil, um einen festen Link zu erstellen, der die Modelldatei einem kürzeren Pfad zuordnet.Use the Windows utility Fsutil to create a hard link that maps the model file to a shorter path.
  • Aktualisieren Sie auf das neueste Service Release.Update to the latest service release.

2. Fehler beim Speichern des serialisierten Modells in SQL Server2. Error when saving serialized model to SQL Server

Wenn Sie ein Modell an eine Remote-SQL Server-Instanz übergeben und versuchen, das binäre Modell mit der rx_unserialize-Funktion in revoscalepy zu lesen, erhalten Sie möglicherweise folgende Fehlermeldung:When you pass a model to a remote SQL Server instance, and try to read the binary model using the rx_unserialize function in revoscalepy, you might get the error:

NameError: Name „rx_unserialize_model“ ist nicht definiertNameError: name 'rx_unserialize_model' is not defined

Dieser Fehler wird ausgelöst, wenn Sie das Modell mit einer neueren Version der Serialisierungsfunktion gespeichert haben, aber die SQL Server-Instanz, auf der Sie das Modell deserialisieren, die Serialisierungs-API nicht erkennt.This error is raised if you saved the model using a recent version of the serialization function, but the SQL Server instance where you deserialize the model does not recognize the serialization API.

Um dieses Problem zu lösen, können Sie die SQL Server 2017-Instanz auf CU3 oder höher aktualisieren.To resolve the issue, upgrade the SQL Server 2017 instance to CU3 or later.

3. Fehler beim Initialisieren einer varbinary-Variablen verursacht einen Fehler in BxlServer3. Failure to initialize a varbinary variable causes an error in BxlServer

Wenn Sie Python-Code in SQL Server mit sp_execute_external_script ausführen und der Code Ausgabevariablen vom Typ „varbinary(max)“, „varchar(max)“ oder ähnliche Typen aufweist, muss die Variable als Teil des Skripts initialisiert oder festgelegt werden.If you run Python code in SQL Server using sp_execute_external_script, and the code has output variables of type varbinary(max), varchar(max) or similar types, the variable must be initialized or set as part of your script. Andernfalls löst die Datenaustauschkomponente BxlServer einen Fehler aus und funktioniert nicht mehr.Otherwise, the data exchange component, BxlServer, raises an error and stops working.

Diese Einschränkung wird in einem zukünftigen Service Release korrigiert.This limitation will be fixed in an upcoming service release. Um dieses Problem zu umgehen, stellen Sie sicher, dass die Variable innerhalb des Python-Skripts initialisiert wird.As a workaround, make sure that the variable is initialized within the Python script. Jeder gültige Wert kann verwendet werden, wie in den folgenden Beispielen:Any valid value can be used, as in the following examples:

declare @b varbinary(max);
exec sp_execute_external_script
  @language = N'Python'
  , @script = N'b = 0x0'
  , @params = N'@b varbinary(max) OUTPUT'
  , @b = @b OUTPUT;
go
declare @b varchar(30);
exec sp_execute_external_script
  @language = N'Python'
  , @script = N' b = ""  '
  , @params = N'@b varchar(30) OUTPUT'
  , @b = @b OUTPUT;
go

4. Telemetriedatenwarnung bei erfolgreicher Ausführung von Python-Code4. Telemetry warning on successful execution of Python code

Ab SQL Server 2017 CU2 wird möglicherweise die folgende Meldung angezeigt, auch wenn Python-Code anderweitig erfolgreich ausgeführt wird:Beginning with SQL Server 2017 CU2, the following message might appear even if Python code otherwise runs successfully:

STDERR-Meldung(en) aus dem externen Skript: ~PYTHON_SERVICES\lib\site-packages\revoscalepy\utils\RxTelemetryLogger SyntaxWarning: telemetry_state wird vor der globalen Deklaration verwendetSTDERR message(s) from external script: ~PYTHON_SERVICES\lib\site-packages\revoscalepy\utils\RxTelemetryLogger SyntaxWarning: telemetry_state is used prior to global declaration

Dieses Problem wurde im kumulativen Update 3 (CU3) von SQL Server 2017 behoben.This issue has been fixed in SQL Server 2017 Cumulative Update 3 (CU3).

5. Numerische, dezimale und money-Datentypen werden nicht unterstützt5. Numeric, decimal and money data types not supported

Seit dem kumulativen Update 12 (CU12) von SQL Server 2017 werden numerische, dezimale und money-Datentypen bei Verwendung von Python mit sp_execute_external_script in WITH RESULT SETS nicht unterstützt.Beginning with SQL Server 2017 Cumulative Update 12 (CU12), numeric, decimal and money data types in WITH RESULT SETS are unsupported when using Python with sp_execute_external_script. Möglicherweise werden folgende Meldungen angezeigt:The following messages might appear:

[Code: 39004, SQL-Status: S1000] Unerwarteter „Python“-Skriptfehler beim Ausführen von „sp_execute_external_script“ mit HRESULT 0x80004004.[Code: 39004, SQL State: S1000] A 'Python' script error occurred during execution of'sp_execute_external_script' with HRESULT 0x80004004.

[Code: 39019, SQL-Status: S1000] Ein externer Skriptfehler ist aufgetreten:[Code: 39019, SQL State: S1000] An external script error occurred:

SqlSatelliteCall-Fehler: Im Ausgabeschema nicht unterstützter Typ. Unterstützte Typen: „bit“, „smallint“, „int“, „datetime“, „smallmoney“, „real“ und „float“. „char“ und „varchar“ werden teilweise unterstützt.SqlSatelliteCall error: Unsupported type in output schema. Supported types: bit, smallint, int, datetime, smallmoney, real and float. char, varchar are partially supported.

Dieses Problem wurde im kumulativen Update 14 (CU14) von SQL Server 2017 behoben.This has been fixed in SQL Server 2017 Cumulative Update 14 (CU14).

6. Fehler „ungültiger Interpreter“ beim Installieren von Python-Paketen mit PIP unter Linux6. Bad interpreter error when installing Python packages with pip on Linux

Wenn Sie unter SQL Server 2019 versuchen, PIP zu verwenden.On SQL Server 2019, if you try to use pip. Beispiel:For example:

/opt/mssql/mlservices/runtime/python/bin/pip -h

Sie erhalten dann diese Fehlermeldung:You will then get this error:

bash: /opt/mssql/mlservices/runtime/python/bin/pip: /opt/microsoft/mlserver/9.4.7/bin/python/python: ungültiger Interpreter: Datei oder Verzeichnis nicht vorhandenbash: /opt/mssql/mlservices/runtime/python/bin/pip: /opt/microsoft/mlserver/9.4.7/bin/python/python: bad interpreter: No such file or directory

ProblemumgehungWorkaround

Installieren Sie PIP von der Python Package Authority (PyPA):Install pip from the Python Package Authority (PyPA):

wget 'https://bootstrap.pypa.io/get-pip.py' 
/opt/mssql/mlservices/bin/python/python ./get-pip.py 

EmpfehlungRecommendation

Siehe Installieren von Python-Paketen mit sqlmlutils.See Install Python packages with sqlmlutils.

Gilt für: SQL Server 2019 unter LinuxApplies to: SQL Server 2019 on Linux

7. Python-Pakete können nicht mithilfe von PIP installiert werden, nachdem SQL Server 2019 unter Windows installiert wurde7. Unable to install Python packages using pip after installing SQL Server 2019 on Windows

Nach der Installation von SQL Server 2019 unter Windows tritt beim Versuch, ein Python-Paket über PIP von einer DOS-Befehlszeile zu installieren, ein Fehler auf.After installing SQL Server 2019 on Windows, attempting to install a python package via pip from a DOS command line will fail. Beispiel:For example:

pip install quantfolio

Dies gibt folgenden Fehler zurück:This will return the following error:

PIP ist für Standorte konfiguriert, die TLS/SSL erfordern, aber das SSL-Modul in Python ist nicht verfügbar.pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Dies ist ein spezifisches Problem des Anaconda-Pakets.This is a problem specific to the Anaconda package. Es wird in einem zukünftigen Service Release korrigiert.It will be fixed in an upcoming service release.

ProblemumgehungWorkaround

Kopieren Sie die folgenden Dateien:Copy the following files:

  • libssl-1_1-x64.dll
  • libcrypto-1_1-x64.dll

aus dem Ordnerfrom the folder
C:\Program Files\Microsoft SQL Server\MSSSQL15.MSSQLSERVER\PYTHON_SERVICES\Library\bin

in den Ordnerto the folder
C:\Program Files\Microsoft SQL Server\MSSSQL15.MSSQLSERVER\PYTHON_SERVICES\DLLs

Öffnen Sie dann eine neue DOS-Befehlsshell-Eingabeaufforderung.Then open a new DOS command shell prompt.

Gilt für: SQL Server 2019 unter WindowsApplies to: SQL Server 2019 on Windows

8. Fehler beim Verwenden von sp_execute_external_script ohne libc++abo.so unter Linux8. Error when using sp_execute_external_script without libc++abo.so on Linux

Auf einem sauberen Linux-Computer, auf dem libc++abi.so nicht installiert ist, tritt beim Ausführen einer sp_execute_external_script-Abfrage (SPEES) ein Fehler mit der Meldung „Datei oder Verzeichnis nicht vorhanden“ auf.On a clean Linux machine that does not have libc++abi.so installed, running a sp_execute_external_script (SPEES) query fails with a "No such file or directory" error.

Beispiel:For example:

EXEC sp_execute_external_script
    @language = N'Python'
    , @script = N'
OutputDataSet = InputDataSet'
    , @input_data_1 = N'select 1'
    , @input_data_1_name = N'InputDataSet'
    , @output_data_1_name = N'OutputDataSet'
    WITH RESULT SETS (([output] int not null));
Msg 39012, Level 16, State 14, Line 0
Unable to communicate with the runtime for 'Python' script for request id: 94257840-1704-45E8-83D2-2F74AEB46CF7. Please check the requirements of 'Python' runtime.
STDERR message(s) from external script:

Failed to load library /opt/mssql-extensibility/lib/sqlsatellite.so with error libc++abi.so.1: cannot open shared object file: No such file or directory.

SqlSatelliteCall error: Failed to load library /opt/mssql-extensibility/lib/sqlsatellite.so with error libc++abi.so.1: cannot open shared object file: No such file or directory.
STDOUT message(s) from external script:
SqlSatelliteCall function failed. Please see the console output for more information.
Traceback (most recent call last):
  File "/opt/mssql/mlservices/libraries/PythonServer/revoscalepy/computecontext/RxInSqlServer.py", line 605, in rx_sql_satellite_call
    rx_native_call("SqlSatelliteCall", params)
  File "/opt/mssql/mlservices/libraries/PythonServer/revoscalepy/RxSerializable.py", line 375, in rx_native_call
    ret = px_call(functionname, params)
RuntimeError: revoscalepy function failed.
Total execution time: 00:01:00.387

ProblemumgehungWorkaround

Führen Sie den folgenden Befehl aus:Run the following command:

sudo cp /opt/mssql/lib/libc++abi.so.1 /opt/mssql-extensibility/lib/

Gilt für: SQL Server 2019 unter LinuxApplies to: SQL Server 2019 on Linux

Revolution R Enterprise und Microsoft R OpenRevolution R Enterprise and Microsoft R Open

In diesem Abschnitt werden Probleme aufgeführt, die speziell von Revolution Analytics bereitgestellte Konnektivitäts-, Entwicklungs- und Leistungstools für R betreffen.This section lists issues specific to R connectivity, development, and performance tools that are provided by Revolution Analytics. Diese Tools wurden in früheren Vorabversionen von SQL Server 2019 (15.x)SQL Server 2019 (15.x) bereitgestellt.These tools were provided in earlier pre-release versions of SQL Server 2019 (15.x)SQL Server 2019 (15.x).

Generell sollten Sie diese Vorabversionen deinstallieren und die neueste Version von SQL Server oder Microsoft R Server installieren.In general, we recommend that you uninstall these previous versions and install the latest version of SQL Server or Microsoft R Server.

1. Revolution R Enterprise wird nicht unterstützt1. Revolution R Enterprise is not supported

Das parallele Installieren von Revolution R Enterprise mit einer beliebigen Version von R Services (In-Database)R Services (In-Database) wird nicht unterstützt.Installing Revolution R Enterprise side by side with any version of R Services (In-Database)R Services (In-Database) is not supported.

Wenn Sie eine Lizenz für Revolution R Enterprise besitzen, müssen Sie diese auf einem Computer verwenden, der sowohl von der SQL ServerSQL Server-Instanz als auch allen Arbeitsstationen getrennt ist, über die Sie eine Verbindung mit der SQL ServerSQL Server-Instanz herstellen möchten.If you have an existing license for Revolution R Enterprise, you must put it on a separate computer from both the SQL ServerSQL Server instance and any workstation that you want to use to connect to the SQL ServerSQL Server instance.

Einige Vorabversionen von R Services (In-Database)R Services (In-Database) enthalten eine von Revolution Analytics erstellte R-Entwicklungsumgebung für Windows.Some pre-release versions of R Services (In-Database)R Services (In-Database) included an R development environment for Windows that was created by Revolution Analytics. Dieses Tool wird nicht mehr zur Verfügung gestellt und nicht unterstützt.This tool is no longer provided, and is not supported.

Zur Kompatibilität mit R Services (In-Database)R Services (In-Database) sollten Sie stattdessen Microsoft R Client installieren.For compatibility with R Services (In-Database)R Services (In-Database), we recommend that you install Microsoft R Client instead. R Tools für Visual Studio und Visual Studio Code unterstützen auch Microsoft R-Lösungen.R Tools for Visual Studio and Visual Studio Code also supports Microsoft R solutions.

2. Kompatibilitätsprobleme mit SQLite-ODBC-Treiber und RevoScaleR2. Compatibility issues with SQLite ODBC driver and RevoScaleR

Revision 0.92 des SQLite-ODBC-Treibers ist mit RevoScaleR nicht kompatibel.Revision 0.92 of the SQLite ODBC driver is incompatible with RevoScaleR. Die Revisionen von 0.88-0.91 sowie 0.93 und höher sind bekanntermaßen kompatibel.Revisions 0.88-0.91 and 0.93 and later are known to be compatible.

Nächste SchritteNext steps

Problembehandlung bei Machine Learning in SQL ServerTroubleshooting machine learning in SQL Server