Differenze principali tra Machine Learning Services in Istanza gestita di SQL di Azure e SQL Server

Questo articolo descrive le poche differenze principali nelle funzionalità tra Machine Learning Services in Istanza gestita di SQL di Azure e SQL Server Machine Learning Services.

Lingue supportate

Machine Learning Services sia in Istanza gestita di SQL che in SQL Server supportano il framework di estendibilità Python e R. Una differenza fondamentale in Istanza gestita di SQL è che sono supportati solo Python e R e i linguaggi esterni, ad esempio Java, non possono essere aggiunti.

Le versioni iniziali di Python e R sono diverse in Istanza gestita di SQL e SQL Server:

Piattaforma Versione runtime di Python Versioni di runtime R
Istanza gestita di SQL di Azure 3.7.2 3.5.2
SQL Server 2022 * - -
SQL Server 2019 3.7.1 3.5.2
SQL Server 2017 3.5.2 e 3.7.2 (CU22 e versioni successive) 3.3.3 e 3.5.2 (CU22 e versioni successive)
SQL Server 2016 Non disponibile 3.2.2 e 3.5.2 (SP2 CU14 e versioni successive)

* A partire da SQL Server 2022, i runtime per R, Python e Java non vengono più forniti o installati all'interno del programma di installazione di SQL. Installare invece i runtime e i pacchetti personalizzati per R e/o Python desiderati. Per altre informazioni, vedere Installare SQL Server 2022 Machine Learning Services (Python e R) in Windows.

Pacchetti Python e R

Non è disponibile alcun supporto in Istanza gestita di SQL per i pacchetti che dipendono da runtime esterni (ad esempio Java) o richiedono l'accesso alle API del sistema operativo per l'installazione o l'utilizzo.

Per altre informazioni sulla gestione dei pacchetti Python e R, vedere:

Gestire i pacchetti tramite sqlmlutils

È possibile installare pacchetti binari con sqlmlutils, se è possibile compilare localmente per produrre un pacchetto binario come output. Per esempi, vedere Installare pacchetti R con sqlmlutils o Installare pacchetti Python con sqlmlutils.

Governance delle risorse

In Istanza gestita di SQL non è possibile limitare le risorse R tramite Resource Governor e i pool di risorse esterni non sono supportati.

Per impostazione predefinita, le risorse R vengono impostate su un massimo del 20% delle risorse disponibili Istanza gestita di SQL quando l'estendibilità è abilitata. Per modificare questa percentuale predefinita, creare un ticket di supporto tecnico di Azure all'indirizzo https://azure.microsoft.com/support/create-ticket/.

L'estendibilità è abilitata con i comandi SQL seguenti (Istanza gestita di SQL verrà riavviata e non sarà disponibile per alcuni secondi):

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

Per disabilitare l'estendibilità e ripristinare il 100% delle risorse di memoria e CPU per SQL Server, usare i comandi seguenti:

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

Le risorse totali disponibili per Istanza gestita di SQL dipendono dal livello di servizio scelto. Per altre informazioni, vedere Modelli di acquisto del database SQL di Azure.

Errore di memoria insufficiente

L'utilizzo della memoria dipende dalla quantità usata negli script R e dal numero di query parallele in esecuzione. Se la memoria disponibile per R non è sufficiente, verrà visualizzato un messaggio di errore. I messaggi di errore comuni sono:

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

Se si riceve uno di questi errori, è possibile risolverlo ridimensionando il database a un livello di servizio superiore.

Se si verificano errori di memoria insufficiente in Istanza gestita di SQL di Azure, esaminare sys.dm_os_out_of_memory_events.

pool di Istanza gestita di SQL

Machine Learning Services non è attualmente supportato nei pool di Istanza gestita di SQL di Azure (anteprima).

Passaggi successivi