Principais diferenças entre o Machine Learning Services no SQL Managed Instance e no SQL Server

Este artigo descreve as poucas e principais diferenças na funcionalidade entre os Serviços de Aprendizado de Máquina na Instância Gerenciada SQL do Azure e os Serviços de Aprendizado de Máquina do SQL Server.

Suporte de idiomas

Os Serviços de Aprendizado de Máquina na Instância Gerenciada SQL e no SQL Server oferecem suporte à estrutura de extensibilidade Python e R. Uma diferença fundamental na Instância Gerenciada SQL é que apenas Python e R são suportados, e linguagens externas, como Java, não podem ser adicionadas.

As versões iniciais do Python e do R são diferentes no SQL Managed Instance e no SQL Server:

Plataforma Versão do tempo de execução do Python Versões de tempo de execução R
Instância Gerida do Azure SQL 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 posteriores) 3.3.3 e 3.5.2 (CU22 e posteriores)
SQL Server 2016 Não disponível 3.2.2 e 3.5.2 (SP2 CU14 e posterior)

* A partir do SQL Server 2022, os tempos de execução para R, Python e Java não são mais enviados ou instalados na Instalação do SQL. Em vez disso, instale o(s) tempo(s) e pacotes personalizados desejados de R e/ou Python. Para obter mais informações, consulte Instalar o SQL Server 2022 Machine Learning Services (Python e R) no Windows.

Pacotes Python e R

Não há suporte na Instância Gerenciada SQL para pacotes que dependem de tempos de execução externos (como Java) ou precisam de acesso às APIs do sistema operacional para instalação ou uso.

Para obter mais informações sobre como gerenciar pacotes Python e R, consulte:

Gerenciar pacotes via sqlmlutils

Você pode instalar pacotes binários com sqlmlutilso , se puder compilar localmente para produzir um pacote binário como saída. Para obter exemplos, consulte Instalar pacotes R com sqlmlutils ou Instalar pacotes Python com sqlmlutils.

Gestão de recursos

Na Instância Gerenciada SQL, não é possível limitar os recursos de R por meio do Administrador de Recursos e não há suporte para pools de recursos externos.

Por padrão, os recursos R são definidos para um máximo de 20% dos recursos disponíveis da Instância Gerenciada SQL quando a extensibilidade está habilitada. Para alterar essa porcentagem padrão, crie um tíquete de suporte do Azure em https://azure.microsoft.com/support/create-ticket/.

A extensibilidade é habilitada com os seguintes comandos SQL (a Instância Gerenciada do SQL será reiniciada e ficará indisponível por alguns segundos):

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

Para desabilitar a extensibilidade e restaurar 100% da memória e dos recursos da CPU para o SQL Server, use os seguintes comandos:

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

O total de recursos disponíveis para a Instância Gerenciada SQL depende da camada de serviço escolhida. Para obter mais informações, consulte Modelos de compra do Banco de Dados SQL do Azure.

Erro de memória insuficiente

A utilização da memória depende da quantidade utilizada nos scripts R e do número de consultas paralelas em execução. Se não houver memória suficiente disponível para R, você receberá uma mensagem de erro. As mensagens de erro comuns são:

  • 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 você receber um desses erros, poderá resolvê-lo dimensionando seu banco de dados para uma camada de serviço mais alta.

Se você encontrar erros de falta de memória na Instância Gerenciada SQL do Azure, revise sys.dm_os_out_of_memory_events.

Pools de instâncias gerenciadas SQL

Atualmente, não há suporte para os Serviços de Aprendizado de Máquina nos pools de Instâncias Gerenciadas SQL do Azure (visualização).

Acesso à rede de saída

O acesso à rede não é permitido ou bloqueado e não pode ser ativado. A conexão de rede de saída para a Instância Gerenciada SQL do Azure não está disponível para os Serviços de Aprendizado de Máquina.

Próximos passos