Compartilhar via


Principais diferenças entre os Serviços de Machine Learning na Instância Gerenciada de SQL do Azure e no SQL Server

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

Suporte ao idioma

Os Serviços de Machine Learning na Instância Gerenciada de SQL e no SQL Server dão suporte à estrutura de extensibilidade do Python e do R. Uma diferença importante na Instância Gerenciada de SQL é que somente Python e R têm suporte, e linguagens externas como Java não podem ser adicionadas.

As versões iniciais do Python e do R são diferentes na Instância Gerenciada de SQL e no SQL Server:

Platform Versão de runtime do Python Versões de runtime do R
Instância Gerenciada de SQL do Azure 3.7.2 3.5.2
SQL Server 2022 * - -
SQL Server 2019 3.7.1 3.5.2
Microsoft SQL Server 2017 3.5.2 e 3.7.2 (CU22 e posterior) 3.3.3 e 3.5.2 (CU22 e posterior)
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 runtimes para R, Python e Java não são mais enviados ou instalados na Instalação do SQL. Portanto, instale os pacotes e os runtimes personalizados R e/ou Python desejados. Para obter mais informações, confira Instalar os Serviços de Machine Learning (Python e R) do SQL Server 2022 no Windows.

Pacotes python e R

Não há suporte na Instância Gerenciada de SQL para pacotes que dependem de runtimes 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 por meio de sqlmlutils

Você pode instalar pacotes binários com sqlmlutils, se puder criar 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.

Governança de recursos

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

Por padrão, os recursos do R são definidos como um máximo de 20% dos recursos disponíveis da Instância Gerenciada de SQL quando a extensibilidade está habilitada. Para alterar esse percentual padrão, crie um tíquete de suporte do Azure.

A extensibilidade é habilitada com os seguintes comandos SQL (a Instância Gerenciada de 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% de recursos de memória e 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 de SQL depende de qual camada de serviço você escolher. Para obter mais informações, consulte os modelos de compra do Banco de Dados SQL do Azure.

Erro de memória insuficiente

O uso de memória depende de quanto é usado em seus scripts R e do número de consultas paralelas sendo executadas. Se houver memória insuficiente disponível para R, você receberá uma mensagem de erro. 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 esgotamento de memória na Instância Gerenciada do SQL do Azure, examine sys.dm_os_out_of_memory_events.

Pools de Instância Gerenciada de SQL

Atualmente, não há suporte para os Serviços de Machine Learning nos pools da Instância Gerenciada de SQL do Azure (versão prévia).

Acesso à rede externa

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

Próximas etapas