Partilhar via


Synapse SQL consumo de recursos

Este artigo descreve modelos de consumo de recursos do Synapse SQL.

Conjunto de SQL sem servidor

O pool SQL sem servidor é um serviço pago por consulta que não exige que você escolha o tamanho certo. O sistema ajusta-se automaticamente com base nos requisitos, o que o liberta da gestão da infraestrutura e da escolha do tamanho certo para a solução.

Pool SQL dedicado - Unidades de Data Warehouse (DWUs) e unidades de Data Warehouse de computação (cDWUs)

Recomendações sobre como escolher o número ideal de unidades de armazém de dados (DWUs) para otimizar o preço e o desempenho, e como alterar o número de unidades.

Unidades do Data Warehouse

Um pool SQL Synapse representa uma coleção de recursos analíticos que estão sendo provisionados. Recursos analíticos são definidos como uma combinação de CPU, memória e E/S. Esses três recursos são agrupados em unidades de escala de computação chamadas Unidades de Data Warehouse (DWUs). Uma DWU é uma medida abstrata e normalizada do desempenho e recursos de computação. Uma alteração no nível de serviço altera o número de DWUs disponíveis para o sistema. Por sua vez, esta alteração ajusta o desempenho e o custo do seu sistema.

Para um desempenho superior, pode aumentar o número de unidades de armazém de dados. Para obter menos desempenho, reduza as unidades de armazém de dados. Os custos de armazenamento e de computação são faturados em separado, pelo que a alteração das unidades do armazém de dados não afeta os custos de armazenamento.

O desempenho das unidades de armazém de dados baseia-se nestas métricas de carga de trabalho de armazém de dados:

  • A rapidez com que uma consulta padrão de armazenamento de dados pode verificar um grande número de linhas e, em seguida, executar uma agregação complexa. Esta operação é intensiva em E/S e CPU.
  • A rapidez com que o armazém de dados pode ingerir dados dos Blobs de Armazenamento do Azure ou do Azure Data Lake. Esta operação é intensiva em rede e CPU.
  • Quão rápido o CREATE TABLE AS SELECT comando T-SQL pode copiar uma tabela. Essa operação envolve a leitura de dados do armazenamento, a distribuição entre os nós do dispositivo e a gravação no armazenamento novamente. Esta operação é intensiva em CPU, E/S e rede.

Aumento das DWUs:

  • Altera linearmente o desempenho do sistema para verificações, agregações e instruções CTAS
  • Aumenta o número de leitores e gravadores para operações de carga do PolyBase
  • Aumenta o número máximo de consultas simultâneas e slots de simultaneidade.

Objetivo de Nível de Serviço

O Objetivo de Nível de Serviço (SLO) é a configuração de escalabilidade que determina o custo e o nível de desempenho do seu data warehouse. Os níveis de serviço para Gen2 são medidos em unidades de armazém de dados de computação (cDWU), por exemplo DW2000c. Os níveis de serviço Gen1 são medidos em DWUs, por exemplo, DW2000.

O Objetivo de Nível de Serviço (SLO) é a configuração de escalabilidade que determina o custo e o nível de desempenho do seu data warehouse. Os níveis de serviço para o pool SQL dedicado Gen2 são medidos em unidades de armazém de dados (DWU), por exemplo, DW2000c.

Nota

O Azure Synapse Analytics Gen2 adicionou recentemente recursos de escala adicionais para dar suporte a camadas de computação tão baixas quanto 100 cDWU. Os armazéns de dados existentes atualmente no Gen1 que exigem os níveis de computação mais baixos agora podem atualizar para o Gen2 nas regiões que estão atualmente disponíveis sem custo adicional. Se a sua região ainda não tiver suporte, você ainda poderá atualizar para uma região compatível. Para obter mais informações, consulte Atualizar para Gen2.

No T-SQL, a configuração SERVICE_OBJETIVE determina o nível de serviço e a camada de desempenho para seu pool SQL dedicado.

CREATE DATABASE mySQLDW
(Edition = 'Datawarehouse'
 ,SERVICE_OBJECTIVE = 'DW1000c'
)
;

Níveis de desempenho e unidades de data warehouse

Cada camada de desempenho usa uma unidade de medida ligeiramente diferente para suas unidades de data warehouse. Esta diferença reflete-se na fatura, uma vez que a unidade de escala se traduz diretamente na faturação.

  • Os armazéns de dados Gen1 são medidos em unidades de armazém de dados (DWUs).
  • Os armazéns de dados Gen2 são medidos em unidades de data warehouse de computação (cDWUs).

Tanto DWUs quanto cDWUs suportam dimensionamento de computação para cima ou para baixo e pausa de computação quando você não precisa usar o data warehouse. Essas operações são todas sob demanda. O Gen2 usa um cache local baseado em disco nos nós de computação para melhorar o desempenho. Quando você dimensiona ou pausa o sistema, o cache é invalidado e, portanto, é necessário um período de aquecimento do cache antes que o desempenho ideal seja alcançado.

À medida que aumenta as unidades de armazém de dados, está a aumentar linearmente os recursos de computação. O Gen2 oferece o melhor desempenho de consulta e a mais alta escala. Os sistemas Gen2 também aproveitam ao máximo o cache.

Limites de capacidade

Cada servidor SQL (por exemplo, myserver.database.windows.net) tem uma cota de Unidade de Transação de Banco de Dados (DTU) que permite um número específico de unidades de data warehouse. Para obter mais informações, consulte os limites de capacidade de gerenciamento de carga de trabalho.

Avalie o número de unidades de armazém de dados de que necessita

O número ideal de unidades de armazém de dados depende muito da sua carga de trabalho e da quantidade de dados que carregou no sistema.

Passos para encontrar a melhor DWU para a sua carga de trabalho:

  1. Comece selecionando um DWU menor.
  2. Monitore o desempenho do seu aplicativo à medida que você testa as cargas de dados no sistema, observando o número de DWUs selecionadas em comparação com o desempenho observado.
  3. Identificar quaisquer requisitos adicionais para períodos periódicos de pico de atividade. As cargas de trabalho que mostram picos e mínimos significativos na atividade podem precisar ser dimensionadas com frequência.

O pool SQL é um sistema de expansão que pode provisionar grandes quantidades de computação e consultar quantidades consideráveis de dados. Para ver seus verdadeiros recursos de dimensionamento, especialmente em DWUs maiores, recomendamos dimensionar o conjunto de dados à medida que você dimensiona para garantir que você tenha dados suficientes para alimentar as CPUs. Para testes em escala, recomendamos o uso de pelo menos 1 TB.

Nota

O desempenho da consulta só aumenta com mais paralelização se o trabalho puder ser dividido entre nós de computação. Se você achar que o dimensionamento não está alterando seu desempenho, talvez seja necessário ajustar o design da tabela e/ou as consultas. Para obter diretrizes de ajuste de consulta, consulte Gerenciar consultas de usuários.

Permissões

A alteração das unidades de armazém de dados requer as permissões descritas em ALTER DATABASE.

As funções internas do Azure, como o Colaborador do Banco de Dados SQL e o Colaborador do SQL Server, podem alterar as configurações de DWU.

Ver as definições DWU atuais

Para exibir a configuração DWU atual:

  1. Abra o Pesquisador de Objetos do SQL Server no Visual Studio.
  2. Conecte-se ao banco de dados mestre associado ao servidor SQL lógico.
  3. Selecione a partir da vista de gestão dinâmica sys.database_service_objetives. Segue-se um exemplo:
SELECT  db.name [Database]
,        ds.edition [Edition]
,        ds.service_objective [Service Objective]
FROM    sys.database_service_objectives   AS ds
JOIN    sys.databases                     AS db ON ds.database_id = db.database_id
;

Alterar unidades de armazém de dados

Portal do Azure

Para alterar DWUs:

  1. Abra o portal do Azure, abra seu banco de dados e selecione Dimensionar.

  2. Em Escala, mova o controle deslizante para a esquerda ou para a direita para alterar a configuração DWU.

  3. Selecione Guardar. É apresentada uma mensagem de confirmação. Selecione sim para confirmar ou não para cancelar.

PowerShell

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Para alterar as DWUs, use o cmdlet Set-AzSqlDatabase PowerShell. O exemplo a seguir define o objetivo de nível de serviço como DW1000 para o banco de dados MySQLDW hospedado no servidor MyServer.

Set-AzSqlDatabase -DatabaseName "MySQLDW" -ServerName "MyServer" -RequestedServiceObjectiveName "DW1000c"

Para obter mais informações, consulte Cmdlets do PowerShell para o Azure Synapse Analytics

T-SQL

Com o T-SQL, você pode visualizar as configurações DWU atuais, alterar as configurações e verificar o progresso.

Para alterar as DWUs:

  1. Conecte-se ao banco de dados mestre associado ao seu servidor.
  2. Use a instrução ALTER DATABASE TSQL. O exemplo a seguir define o objetivo de nível de serviço como DW1000c para o banco de dados MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;

APIs REST

Para alterar as DWUs, use a API REST Criar ou Atualizar Banco de Dados . O exemplo a seguir define o objetivo de nível de serviço como DW1000c para o banco de dados MySQLDW, que está hospedado no servidor MyServer. O servidor está em um grupo de recursos do Azure chamado ResourceGroup1.

PUT https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Sql/servers/{server-name}/databases/{database-name}?api-version=2014-04-01-preview HTTP/1.1
Content-Type: application/json; charset=UTF-8

{
    "properties": {
        "requestedServiceObjectiveName": DW1000
    }
}

Para obter mais exemplos de API REST, consulte APIs REST para Azure Synapse Analytics.

Verificar o estado das alterações DWU

As alterações DWU podem levar vários minutos para serem concluídas. Se você estiver dimensionando automaticamente, considere implementar a lógica para garantir que determinadas operações tenham sido concluídas antes de prosseguir com outra ação.

Verificar o estado do banco de dados por meio de vários pontos de extremidade permite implementar corretamente a automação. O portal fornece notificação após a conclusão de uma operação e o estado atual dos bancos de dados, mas não permite a verificação programática do estado.

Não é possível verificar o estado do banco de dados para operações de expansão com o portal do Azure.

Para verificar o status das alterações de DWU:

  1. Conecte-se ao banco de dados mestre associado ao seu servidor.
  2. Envie a seguinte consulta para verificar o estado do banco de dados.
SELECT    *
FROM      sys.databases
;
  1. Envie a seguinte consulta para verificar o status da operação
SELECT    *
FROM      sys.dm_operation_status
WHERE     resource_type_desc = 'Database'
AND       major_resource_id = 'MySQLDW'
;

Esse Detran retorna informações sobre várias operações de gerenciamento em seu pool SQL dedicado, como a operação e o estado da operação, que é IN_PROGRESS ou CONCLUÍDA.

O fluxo de trabalho de dimensionamento

Quando você inicia uma operação de escala, o sistema primeiro mata todas as sessões abertas, revertendo todas as transações abertas para garantir um estado consistente. Para operações de escala, o dimensionamento só ocorre após a conclusão dessa reversão transacional.

  • Para uma operação de expansão, o sistema desanexa todos os nós de computação, provisiona os nós de computação adicionais e, em seguida, reconecta-se à camada de armazenamento.
  • Para uma operação de redução de escala, o sistema desanexa todos os nós de computação e, em seguida, reconecta apenas os nós necessários à camada de armazenamento.

Próximos passos

Para saber mais sobre como gerenciar o desempenho, consulte Classes de recursos para gerenciamento de carga de trabalho e Limites de memória e simultaneidade.