Delen via


De belangrijkste verschillen tussen Machine Learning Services in Azure SQL Managed Instance en SQL Server

In dit artikel worden de enkele belangrijke verschillen in functionaliteit tussen Machine Learning Services in Azure SQL Managed Instance en SQL Server Machine Learning Services beschreven.

Taalondersteuning

Machine Learning Services in zowel SQL Managed Instance als SQL Server ondersteunen het Python- en R-uitbreidbaarheidsframework. Een belangrijk verschil in SQL Managed Instance is dat alleen Python en R worden ondersteund en dat externe talen zoals Java niet kunnen worden toegevoegd.

De eerste versies van Python en R verschillen in SQL Managed Instance en SQL Server:

Platform Python Runtime-versie R Runtime-versies
Azure SQL Managed Instance 3.7.2 3.5.2
SQL Server 2022 * - -
SQL Server 2019 3.7.1 3.5.2
SQL Server 2017 3.5.2 en 3.7.2 (CU22 en hoger) 3.3.3 en 3.5.2 (CU22 en hoger)
SQL Server 2016 Niet beschikbaar 3.2.2 en 3.5.2 (SP2 CU14 en hoger)

* Vanaf SQL Server 2022 worden runtimes voor R, Python en Java niet meer verzonden of geïnstalleerd in SQL Setup. Installeer in plaats daarvan uw gewenste R- en/of Python-aangepaste runtime(s) en pakketten. Zie SQL Server 2022 Machine Learning Services (Python en R) installeren in Windows voor meer informatie.

Python- en R-pakketten

Er is geen ondersteuning in SQL Managed Instance voor pakketten die afhankelijk zijn van externe runtimes (zoals Java) of toegang nodig hebben tot OS-API's voor installatie of gebruik.

Zie voor meer informatie over het beheren van Python- en R-pakketten:

Pakketten beheren via sqlmlutils

U kunt binaire pakketten installeren met sqlmlutils, als u lokaal kunt bouwen om een binair pakket te produceren als uitvoer. Zie Voor voorbeelden R-pakketten installeren met sqlmlutils of Python-pakketten installeren met sqlmlutils.

Resourcebeheer

In SQL Managed Instance is het niet mogelijk om R-resources te beperken via Resource Governor en worden externe resourcegroepen niet ondersteund.

R-resources zijn standaard ingesteld op maximaal 20% van de beschikbare SQL Managed Instance-resources wanneer uitbreidbaarheid is ingeschakeld. Als u dit standaardpercentage wilt wijzigen, maakt u een ondersteuning voor Azure ticket op https://azure.microsoft.com/support/create-ticket/.

Uitbreidbaarheid is ingeschakeld met de volgende SQL-opdrachten (SQL Managed Instance wordt opnieuw opgestart en is enkele seconden niet beschikbaar):

sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH OVERRIDE;

Gebruik de volgende opdrachten om uitbreidbaarheid uit te schakelen en 100% van de geheugen- en CPU-resources te herstellen naar SQL Server:

sp_configure 'external scripts enabled', 0;
RECONFIGURE WITH OVERRIDE;

De totale resources die beschikbaar zijn voor SQL Managed Instance, zijn afhankelijk van de servicelaag die u kiest. Zie Azure SQL Database-aankoopmodellen voor meer informatie.

Onvoldoende geheugenfout

Het geheugengebruik is afhankelijk van de hoeveelheid die wordt gebruikt in uw R-scripts en het aantal parallelle query's dat wordt uitgevoerd. Als er onvoldoende geheugen beschikbaar is voor R, wordt er een foutbericht weergegeven. Algemene foutberichten zijn:

  • 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.

Als u een van deze fouten ontvangt, kunt u deze oplossen door de database te schalen naar een hogere servicelaag.

Als er onvoldoende geheugenfouten optreden in Azure SQL Managed Instance, raadpleegt u sys.dm_os_out_of_memory_events.

SQL Managed Instance-pools

Machine Learning Services wordt momenteel niet ondersteund in Azure SQL Managed Instance-pools (preview).

Uitgaande netwerktoegang

Netwerktoegang is niet toegestaan of geblokkeerd en kan niet worden ingeschakeld. De uitgaande netwerkverbinding voor Azure SQL Managed Instance is niet beschikbaar voor Machine Learning Services.

Volgende stappen