Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
This document contains recommendations on choosing the ideal number of data warehouse units (DWUs) for dedicated SQL pool (formerly SQL DW) to optimize price and performance, and how to change the number of units.
What are Data Warehouse Units
A dedicated SQL pool (formerly SQL DW) represents a collection of analytic resources that are being provisioned. 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). Um DWU representa uma medida abstrata e normalizada de recursos de computação e desempenho.
A change to your service level alters the number of DWUs that are available to the system, which in turn adjusts the performance, and the cost, of your system.
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 computação são cobrados separadamente, portanto, a alteração das unidades de data warehouse 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:
- How fast a standard dedicated SQL pool (formerly SQL DW) query can scan a large number of rows and then perform a complex aggregation. Esta operação é intensiva em E/S e CPU.
- How fast the dedicated SQL pool (formerly SQL DW) can ingest data from Azure Storage Blobs or Azure Data Lake. Esta operação é intensiva em rede e CPU.
- Quão rápido o
CREATE TABLE AS SELECTcomando T-SQL pode copiar uma tabela. This operation involves reading data from storage, distributing it across the nodes of the appliance and writing to storage again. Esta operação é intensiva em CPU, E/S e rede.
Increasing DWUs:
- Linearly changes performance of the system for scans, aggregations, and CTAS statements
- Increases the number of readers and writers for PolyBase load operations
- Increases the maximum number of concurrent queries and concurrency slots
Objetivo de Nível de Serviço
The Service Level Objective (SLO) is the scalability setting that determines the cost and performance level of your dedicated SQL pool (formerly SQL DW). The service levels for Gen2 dedicated SQL pool (formerly SQL DW) are measured in data warehouse units (DWU), for example DW2000c.
Observação
Dedicated SQL pool (formerly SQL DW) Gen2 recently added additional scale capabilities to support compute tiers as low as DW100c. 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.
In T-SQL, the SERVICE_OBJECTIVE setting determines the service level and the performance tier for your dedicated SQL pool (formerly SQL DW).
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).
- Gen2 data warehouses are measured in compute Data Warehouse Units (cDWUs).
Tanto as DWUs quanto as cDWUs permitem aumentar ou diminuir os recursos de computação e pausar esses recursos quando não precisa utilizar o armazém de dados. 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.
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.
How many data warehouse units do I need
The ideal number of data warehouse units depends very much on your workload and the amount of data you have loaded into the system.
Passos para encontrar a melhor DWU para a sua carga de trabalho:
Comece selecionando um DWU menor.
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. Verify by monitoring resource utilization.
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.
Dedicated SQL pool (formerly SQL DW) is a scale-out system that can provision vast amounts of compute and query sizeable quantities of data.
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.
Observação
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.
View current DWU settings
Para exibir a configuração DWU atual:
- Abra o Pesquisador de Objetos do SQL Server no Visual Studio.
- Conecte-se ao banco de dados mestre associado ao servidor SQL lógico.
- Select from the sys.database_service_objectives dynamic management view. Aqui está 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 os DWUs:
Open the Azure portal, open your database, and click Scale.
Em Escala, mova o controle deslizante para a esquerda ou para a direita para alterar a configuração DWU.
Clique em Guardar. É apresentada uma mensagem de confirmação. Click yes to confirm or no to cancel.
PowerShell
Observação
Recomendamos que utilize o módulo do Azure Az 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.
To change the DWUs, use the Set-AzSqlDatabase PowerShell cmdlet. 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"
For more information, see PowerShell cmdlets for dedicated SQL pool (formerly SQL DW)
T-SQL
Com o T-SQL, você pode visualizar as configurações DWU atuais, alterar as configurações e verificar o progresso.
To change the DWUs:
- Conecte-se ao banco de dados mestre associado ao seu servidor.
- 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')
;
REST APIs
To change the DWUs, use the Create or Update Database REST API. The following example sets the service level objective to DW1000c for the database MySQLDW, which is hosted on server 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": "DW1000c"
}
}
For more REST API examples, see REST APIs for dedicated SQL pool (formerly SQL DW).
Check status of DWU changes
As alterações DWU podem levar vários minutos para serem concluídas. If you are scaling automatically, consider implementing logic to ensure that certain operations have been completed before proceeding with another action.
Verificar o estado da base de dados através de vários endpoints permite realizar corretamente a automação. The portal provides notification upon completion of an operation and the databases current state but does not allow for programmatic checking of state.
You cannot check the database state for scale-out operations with the Azure portal.
Para verificar o estado das alterações do DWU:
Conecte-se ao banco de dados mestre associado ao seu servidor.
Envie a seguinte consulta para verificar o estado do banco de dados.
SELECT * FROM sys.dm_operation_status WHERE resource_type_desc = 'Database' AND major_resource_id = 'MySQLDW' ;
This DMV returns information about various management operations on your dedicated SQL pool (formerly SQL DW) such as the operation and the state of the operation, which is either IN_PROGRESS or COMPLETED.
The scaling workflow
Quando se inicia uma operação de escala, o sistema primeiro fecha todas as sessões abertas, anulando todas as transações abertas para garantir um estado consistente. For scale operations, scaling only occurs after this transactional rollback has completed.
- 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.