Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel werden die wenigen wichtigen Unterschiede bei der Funktionalität zwischen Machine Learning Services in azure SQL Managed Instance und SQL Server Machine Learning Services beschrieben.
Sprachunterstützung
Machine Learning Services in SQL Managed Instance und SQL Server unterstützen das Python- und R-Erweiterbarkeitsframework. Ein wichtiger Unterschied in der verwalteten SQL-Instanz besteht darin, dass nur Python und R unterstützt werden, und externe Sprachen wie Java können nicht hinzugefügt werden.
Die ersten Versionen von Python und R unterscheiden sich in sql Managed Instance und SQL Server:
| Plattform | Version der Python-Runtime | Versionen der R-Runtime |
|---|---|---|
| Verwaltete Azure SQL-Instanz | 3.7.2 | 3.5.2 |
| SQL Server 2022 1 | - | - |
| 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) |
1 Ab SQL Server 2022 werden Laufzeiten für R, Python und Java nicht mehr innerhalb von SQL Setup ausgeliefert oder installiert. Installieren Sie stattdessen die von Ihnen gewünschten benutzerdefinierten Runtimes und Pakete für R- und/oder Python. Weitere Informationen finden Sie unter Installieren von SQL Server 2022 Machine Learning Services (Python und R) unter Windows.
Python- und R-Pakete
Es gibt keine Unterstützung in SQL Managed Instance für Pakete, die von externen Runtimes (z. B. Java) abhängen 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 lokal bauen können, um ein Binärpaket als Ausgabe zu erzeugen. Beispiele finden Sie unter Installieren von R-Paketen mit sqlmlutils.
Ressourcenverwaltung
In der verwalteten SQL-Instanz ist es nicht möglich, R-Ressourcen über die Ressourcenkontrolle einzuschränken, und externe Ressourcenpools werden nicht unterstützt.
R-Ressourcen werden standardmäßig auf maximal 20% der verfügbaren SQL Managed Instance-Ressourcen festgelegt, wenn die Erweiterbarkeit aktiviert ist. Um diesen Standardprozentsatz zu ändern, erstellen Sie ein Azure-Supportticket.
Die Erweiterbarkeit wird mit den folgenden SQL-Befehlen aktiviert (die SQL-Verwaltete Instanz wird neu gestartet und ist für ein paar Sekunden nicht verfügbar).
sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;
Verwenden Sie die folgenden Befehle, um die Erweiterbarkeit zu deaktivieren und 100% arbeitsspeicher- und CPU-Ressourcen in SQL Server wiederherzustellen:
sp_configure 'external scripts enabled', 0;
RECONFIGURE WITH OVERRIDE;
Die Gesamtressourcen, die für sql Managed Instance verfügbar sind, hängen davon ab, welche Dienstebene Sie auswählen. Weitere Informationen finden Sie unter Vergleichen von vCore- und DTU-basierten Einkaufsmodellen von Azure SQL-Datenbank.
Fehler: Nicht genügend Arbeitsspeicher
Die Speicherauslastung hängt davon ab, wie viel in Ihren R-Skripts verwendet wird, und die Anzahl der parallelen Abfragen, die ausgeführt werden. Wenn für R nicht genügend Arbeitsspeicher verfügbar ist, wird eine Fehlermeldung angezeigt. Häufige Fehlermeldungen sind:
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 sie beheben, indem Sie Ihre 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.
Richtlinie aktualisieren
Machine Learning Services ist nur auf SQL-verwalteten Instanzen verfügbar, die mit der SQL Server 2022-Update-Richtlinie konfiguriert sind. Sie ist nicht mit der SQL Server 2025- oder Always-up-to-Date-Update-Richtlinie verfügbar. Die SQL Server 2022-Aktualisierungsrichtlinie ist bis zum Ende der regulären Unterstützung für SQL Server 2022 verfügbar. Zu diesem Zeitpunkt wechseln Instanzen automatisch zur Aktualisierungsrichtlinie für die neueste große SQL Server-Version, und Machine Learning Services wird nicht mehr verfügbar. Um ein extern gehostetes Machine-Learning-Modell von diesen Instanzen aus aufzurufen, sollten Sie sp_invoke_external_rest_endpoint verwenden.
SQL Managed Instance-Pools
Machine Learning Services wird derzeit in Azure SQL Managed Instance Pools nicht unterstützt.
Ausgehender Netzwerkzugriff
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.