Dela via


Viktiga skillnader medllan Machine Learning Services i Azure SQL Managed Instance och SQL Server

I den här artikeln beskrivs några viktiga skillnader i funktionalitet mellan Machine Learning Services i Azure SQL Managed Instance och SQL Server Machine Learning Services.

Språkstöd

Machine Learning Services i både SQL Managed Instance och SQL Server stöder python- och R-utökningsramverket. En viktig skillnad i SQL Managed Instance är att endast Python och R stöds och att externa språk som Java inte kan läggas till.

De första versionerna av Python och R skiljer sig åt i SQL Managed Instance och SQL Server:

Plattform Python-körningsversion R-körningsversioner
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 och 3.7.2 (CU22 och senare) 3.3.3 och 3.5.2 (CU22 och senare)
SQL Server 2016 Inte tillgängliga 3.2.2 och 3.5.2 (SP2 CU14 och senare)

* Från och med SQL Server 2022 levereras eller installeras inte längre körningar för R, Python och Java i SQL-installationsprogrammet. Installera i stället önskade R- och/eller Python-anpassade körningar och paket. Mer information finns i Installera SQL Server 2022 Machine Learning Services (Python och R) i Windows.

Python- och R-paket

Det finns inget stöd i SQL Managed Instance för paket som är beroende av externa körningar (till exempel Java) eller som behöver åtkomst till OS-API:er för installation eller användning.

Mer information om hur du hanterar Python- och R-paket finns i:

Hantera paket via sqlmlutils

Du kan installera binära paket med sqlmlutils, om du kan skapa lokalt för att skapa ett binärt paket som utdata. Exempel finns i Installera R-paket med sqlmlutils eller Installera Python-paket med sqlmlutils.

Resursstyrning

I SQL Managed Instance går det inte att begränsa R-resurser via Resource Governor, och externa resurspooler stöds inte.

Som standard är R-resurser inställda på högst 20 % av de tillgängliga SQL Managed Instance-resurserna när utökningsbarhet är aktiverat. Om du vill ändra den här standardprocenten skapar du ett Azure-supportärende på https://azure.microsoft.com/support/create-ticket/.

Utökningsbarhet aktiveras med följande SQL-kommandon (SQL Managed Instance startas om och är inte tillgänglig i några sekunder):

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

Om du vill inaktivera utökningsbarhet och återställa 100 % av minne och CPU-resurser till SQL Server använder du följande kommandon:

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

De totala resurser som är tillgängliga för SQL Managed Instance beror på vilken tjänstnivå du väljer. Mer information finns i Köpmodeller för Azure SQL Database.

Otillräckligt minnesfel

Minnesanvändningen beror på hur mycket som används i R-skripten och hur många frågor som körs parallellt. Om det inte finns tillräckligt med minne för R får du ett felmeddelande. Vanliga felmeddelanden är:

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

Om du får något av dessa fel kan du lösa det genom att skala databasen till en högre tjänstnivå.

Om det uppstår minnesfel i Azure SQL Managed Instance läser du sys.dm_os_out_of_memory_events.

SQL Managed Instance-pooler

Machine Learning Services stöds för närvarande inte i Azure SQL Managed Instance-pooler (förhandsversion).

Utgående nätverksåtkomst

Nätverksåtkomst tillåts inte eller blockeras och kan inte aktiveras. Den utgående nätverksanslutningen för Azure SQL Managed Instance är inte avaialble för Machine Learning Services.

Nästa steg