Wichtige Unterschiede zwischen Machine Learning Services in Azure SQL Managed Instance und SQL Server
In diesem Artikel werden einige wichtige Unterschiede der Funktion zwischen Machine Learning Services in Azure SQL Managed Instance und SQL Server Machine Learning Services beschrieben.
Sprachunterstützung
Das Erweiterbarkeitsframework von Python und R wird in Machine Learning Services in SQL Managed Instance und SQL Server unterstützt. Ein wesentlicher Unterschied zu SQL Managed Instance ist, dass nur Python und R unterstützt werden und externe Sprachen wie Java nicht hinzugefügt werden können.
Die Anfangsversionen von Python und R sind in SQL Managed Instance und SQL Server unterschiedlich:
Plattform | Version der Python-Runtime | Versionen der R-Runtime |
---|---|---|
Verwaltete Azure SQL-Instanz | 3.7.2 | 3.5.2 |
SQL Server 2022 * | - | - |
SQL Server 2019 | 3.7.1 | 3.5.2 |
SQL Server 2017 | 3.5.2 und 3.7.2 (CU22 und höher) | 3.3.3 und 3.5.2 (CU22 und höher) |
SQL Server 2016 | Nicht verfügbar | 3.2.2 und 3.5.2 (SP2 CU14 und höher) |
* Ab SQL Server 2022 werden Runtimes für R, Python und Java nicht mehr im Rahmen des SQL-Setups ausgeliefert oder installiert. Installieren Sie stattdessen Ihre gewünschten benutzerdefinierten R- und/oder Python-Runtimes und -Pakete. Weitere Informationen finden Sie unter Installieren von SQL Server 2022 Machine Learning Services (Python und R) unter Windows.
Python- und R-Pakete
Es gibt in SQL Managed Instance keine Unterstützung für Pakete, die von externen Runtimes (z. B. Java) abhängig sind oder Zugriff auf Betriebssystem-APIs für die Installation oder Verwendung benötigen.
Weitere Informationen zum Verwalten von Python- und R-Paketen finden Sie unter:
Verwalten von Paketen über sqlmlutils
Sie können Binärpakete mit sqlmlutils
installieren, wenn Sie die Erstellung lokal vornehmen können, um ein Binärpaket als Ausgabe zu erzeugen. Beispiele finden Sie unter Installieren von R-Paketen mit sqlmlutils oder Installieren von Python-Paketen mit sqlmlutils.
Ressourcengovernance
Es ist in SQL Managed Instance nicht möglich, R-Ressourcen durch Resource Governor einzuschränken, und externe Ressourcenpools werden nicht unterstützt.
Standardmäßig werden R-Ressourcen auf maximal 20 % der verfügbaren SQL Managed Instance-Ressourcen festgelegt, wenn die Erweiterbarkeit aktiviert ist. Um diesen Standardprozentsatz zu ändern, erstellen Sie unter https://azure.microsoft.com/support/create-ticket/ ein Azure-Supportticket.
Die Erweiterbarkeit wird mit den folgenden SQL-Befehlen aktiviert (SQL Managed Instance wird neu gestartet und ist für einige Sekunden nicht verfügbar):
sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;
Verwenden Sie die folgenden Befehle, um die Erweiterbarkeit und die Wiederherstellung von 100 % des Arbeitsspeichers und der CPU-Ressourcen in SQL Server zu deaktivieren:
sp_configure 'external scripts enabled', 0;
RECONFIGURE WITH OVERRIDE;
Die insgesamt für SQL Managed Instance verfügbaren Ressourcen sind davon abhängig, welche Dienstebene Sie auswählen. Weitere Informationen finden Sie unter Kaufmodelle für Azure SQL-Datenbank.
Fehler bei nicht ausreichendem Arbeitsspeicher
Die Arbeitsspeichernutzung hängt von der in R-Skripts verwendeten Anzahl und von der Anzahl parallel ausgeführter Abfragen ab. Wenn für R nicht genügend Arbeitsspeicher verfügbar ist, erhalten Sie eine Fehlermeldung. Häufige Fehlermeldungen:
Unable to communicate with the runtime for 'R' script for request id: *******. Please check the requirements of 'R' runtime
'R' script error occurred during execution of 'sp_execute_external_script' with HRESULT 0x80004004. ...an external script error occurred: "..could not allocate memory (0 Mb) in C function 'R_AllocStringBuffer'"
An external script error occurred: Error: cannot allocate vector of size.
Wenn Sie einen dieser Fehler erhalten, können Sie ihn beheben, indem Sie die Datenbank auf eine höhere Dienstebene skalieren.
Wenn in Azure SQL Managed Instance Fehler auftreten, weil nicht genügend Arbeitsspeicher vorhanden ist, finden Sie hilfreiche Informationen unter sys.dm_os_out_of_memory_events.
SQL Managed Instance-Pools
Machine Learning Services wird derzeit in Azure SQL Managed Instance-Pools (Vorschau) nicht unterstützt.
Zugriff auf ausgehenden Netzwerkdatenverkehr
Der Netzwerkzugriff ist unzulässig oder blockiert und kann nicht aktiviert werden. Die ausgehende Netzwerkverbindung für Azure SQL Managed Instance ist für Machine Learning Services nicht verfügbar.
Nächste Schritte
- Eine Übersicht finden Sie unter Machine Learning Services in Azure SQL Managed Instance.
- Weitere Informationen zur Verwendung von Python in Machine Learning Services finden Sie unter Ausführen von Python-Skripts.
- Informationen zur Verwendung von R in Machine Learning Services finden Sie unter Schnellstart: Ausführen einfacher R-Skripts mit SQL Machine Learning.