Unidades de data warehouse (DWUs)Data Warehouse Units (DWUs)

Recomendações sobre como escolher o número ideal de DWUs (unidades de data warehouse) para otimizar o preço e o desempenho, e como alterar o número de unidades.Recommendations on choosing the ideal number of data warehouse units (DWUs) to optimize price and performance, and how to change the number of units.

O que são unidades de data warehouseWhat are Data Warehouse Units

Um pool do SQL representa uma coleção de recursos analíticos que estão sendo provisionados ao usar a análise do SQL.A SQL pool represents a collection of analytic resources that are being provisioned when using SQL Analytics. Os recursos analíticos são definidos como uma combinação de CPU, memória e e/s.Analytic resources are defined as a combination of CPU, memory and IO. Esses três recursos são agrupados em unidades de escala de computação chamadas de unidades de data warehouse (DWUs).These three resources are bundled into units of compute scale called Data Warehouse Units (DWUs). Uma DWU representa uma medida abstrata normalizada de recursos de computação e desempenho.A DWU represents an abstract, normalized measure of compute resources and performance. Uma alteração no seu nível de serviço altera o número de DWUs que estão disponíveis para o sistema, o que, por sua vez, ajusta o desempenho e o custo do seu sistema.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 melhor desempenho, você pode aumentar o número de unidades de data warehouse.For higher performance, you can increase the number of data warehouse units. Para menos desempenho, reduza data warehouse unidades.For less performance, reduce data warehouse units. Os custos de armazenamento e computação são cobrados separadamente, para que as mudanças de unidades de data warehouse não afetem os custos de armazenamento.Storage and compute costs are billed separately, so changing data warehouse units does not affect storage costs.

O desempenho de unidades de data warehouse baseia-se nessas métricas de carga de trabalho:Performance for data warehouse units is based on these workload metrics:

  • A velocidade com que uma consulta de data warehouse padrão pode verificar um grande número de linhas e, em seguida, executar uma agregação complexa.How fast a standard data warehousing query can scan a large number of rows and then perform a complex aggregation. Essa operação tem uso intensivo de E/S e CPU.This operation is I/O and CPU intensive.
  • Quão rápido a data warehouse pode ingerir dados de blobs de armazenamento do Azure ou Azure Data Lake.How fast the data warehouse can ingest data from Azure Storage Blobs or Azure Data Lake. Essa operação tem uso intensivo de rede e CPU.This operation is network and CPU intensive.
  • Quão rápido o CREATE TABLE AS SELECT comando t-SQL pode copiar uma tabela.How fast the CREATE TABLE AS SELECT T-SQL command can copy a table. Essa operação envolve a leitura de dados do armazenamento, distribuindo-os em todos os nós do dispositivo e gravando novamente no armazenamento.This operation involves reading data from storage, distributing it across the nodes of the appliance and writing to storage again. Essa operação é de uso intensivo de CPU, rede e E/S.This operation is CPU, IO, and network intensive.

Aumento de DWUs:Increasing DWUs:

  • Altera de maneira linear o desempenho do sistema para verificações, agregações e instruções de CTASLinearly changes performance of the system for scans, aggregations, and CTAS statements
  • Aumenta o número de leitores e gravadores para operações de carregamento do PolyBaseIncreases the number of readers and writers for PolyBase load operations
  • Aumenta o número máximo de consultas simultâneas e slots de simultaneidade.Increases the maximum number of concurrent queries and concurrency slots.

Objetivo de nível de serviçoService Level Objective

O Objetivo de nível de serviço (SLO) é a configuração de escalabilidade que determina o nível de custo e desempenho do data warehouse.The Service Level Objective (SLO) is the scalability setting that determines the cost and performance level of your data warehouse. Os níveis de serviço para o pool SQL Gen2 são medidos em unidades de data warehouse (DWU), por exemplo, DW2000c.The service levels for Gen2 SQL pool are measured in data warehouse units (DWU), for example DW2000c.

No T-SQL, a configuração SERVICE_OBJECTIVE determina o nível de serviço do seu pool SQL.In T-SQL, the SERVICE_OBJECTIVE setting determines the service level for your SQL pool.

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

Limites de capacidadeCapacity limits

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 depósito de dados.Each SQL server (for example, myserver.database.windows.net) has a Database Transaction Unit (DTU) quota that allows a specific number of data warehouse units. Para mais informações, consulte o limites de capacidade de gerenciamento de carga de trabalho.For more information, see the workload management capacity limits.

Quantas unidades de data warehouse são necessáriasHow many data warehouse units do I need

O número ideal de unidades de data warehouse depende muito de sua carga de trabalho e da quantidade de dados carregados no sistema.The ideal number of data warehouse units depends very much on your workload and the amount of data you have loaded into the system.

Etapas para encontrar a melhor DWU para sua carga de trabalho:Steps for finding the best DWU for your workload:

  1. Comece selecionando um DWU menor.Begin by selecting a smaller DWU.
  2. Monitore o desempenho do seu aplicativo à medida que testa as cargas de dados no sistema, observando o número de DWUs selecionadas comparado ao desempenho que você observar.Monitor your application performance as you test data loads into the system, observing the number of DWUs selected compared to the performance you observe.
  3. Identifique quaisquer requisitos adicionais para períodos de atividade de pico temporários.Identify any additional requirements for periodic periods of peak activity. As cargas de trabalho que mostram picos significativos e ciclos na atividade podem precisar ser dimensionadas com frequência.Workloads that show significant peaks and troughs in activity may need to be scaled frequently.

A análise de SQL é um sistema de expansão que pode provisionar enormes quantidades de dados de computação e de considerável de consulta.SQL Analytics is a scale-out system that can provision vast amounts of compute and query sizeable quantities of data. Para ver seus verdadeiros recursos para dimensionamento, especialmente em DWUs maiores, é recomendável dimensionar o conjunto de dados ao dimensionar para garantir que você tenha dados suficientes para alimentar as CPUs.To see its true capabilities for scaling, especially at larger DWUs, we recommend scaling the data set as you scale to ensure that you have enough data to feed the CPUs. Para testar o dimensionamento, é recomendável usar pelo menos 1 TB.For scale testing, we recommend using at least 1 TB.

Observação

O desempenho de consulta só aumentará com mais paralelização se o trabalho puder ser dividido entre nós de computação.Query performance only increases with more parallelization if the work can be split between compute nodes. Se você achar que o dimensionamento não está alterando o desempenho, será necessário ajustar o design da tabela e/ou de suas consultas.If you find that scaling is not changing your performance, you may need to tune your table design and/or your queries. Para obter diretrizes de ajuste de consulta, consulte Gerenciar consultas de usuário.For query tuning guidance, see Manage user queries.

permissõesPermissions

Alterar as unidades de data warehouse exige as permissões descritas em ALTERAR BANCO DE DADOS.Changing the data warehouse units requires the permissions described in ALTER DATABASE.

Funções internas para recursos do Azure, como Colaborador do BD SQL e Colaborador do SQL Server, podem alterar as configurações da DWU.Built-in roles for Azure resources such as SQL DB Contributor and SQL Server Contributor can change DWU settings.

Exibir configurações atuais de DWUView current DWU settings

Para exibir a configuração atual de DWU:To view the current DWU setting:

  1. Abra o Pesquisador de Objetos do SQL Server no Visual Studio.Open SQL Server Object Explorer in Visual Studio.
  2. Conecte-se ao banco de dados mestre associado ao servidor lógico do Banco de Dados SQL.Connect to the master database associated with the logical SQL Database server.
  3. Selecione do modo de exibição de gerenciamento dinâmico sys.database_service_objectives.Select from the sys.database_service_objectives dynamic management view. Aqui está um exemplo:Here is an example:
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 do data warehouseChange data warehouse units

Portal do AzureAzure portal

Para alterar DWUs:To change DWUs:

  1. Abra o portal do Azure, abra o banco de dados e clique em Escala.Open the Azure portal, open your database, and click Scale.

  2. Em Escala, mova o controle deslizante para a esquerda ou direita para alterar a configuração de DWU.Under Scale, move the slider left or right to change the DWU setting.

  3. Clique em Salvar.Click Save. Será exibida uma mensagem de confirmação.A confirmation message appears. Clique em sim para confirmar ou em não para cancelar.Click yes to confirm or no to cancel.

PowerShellPowerShell

Observação

Este artigo foi atualizado para usar o novo módulo Az do Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Você ainda pode usar o módulo AzureRM, que continuará a receber as correções de bugs até pelo menos dezembro de 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para saber mais sobre o novo módulo Az e a compatibilidade com o AzureRM, confira Apresentação do novo módulo Az do Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obter instruções de instalação do módulo Az, confira Instalar o Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Para alterar o DWUs, use o cmdlet do PowerShell set-AzSqlDatabase .To change the DWUs, use the Set-AzSqlDatabase PowerShell cmdlet. 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 meuservidor.The following example sets the service level objective to DW1000c for the database MySQLDW that is hosted on server MyServer.

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

Para obter mais informações, consulte cmdlets do PowerShell para SQL Data WarehouseFor more information, see PowerShell cmdlets for SQL Data Warehouse

T-SQLT-SQL

Com o T-SQL, você pode exibir as configurações de DWU atuais, alterar as configurações e verificar o progresso.With T-SQL you can view the current DWU settings, change the settings, and check the progress.

Para alterar as DWUs:To change the DWUs:

  1. Conecte-se ao banco de dados mestre associado ao seu servidor lógico do Banco de Dados SQL.Connect to the master database associated with your logical SQL Database server.
  2. use a declaração TSQL ALTER DATABASE .Use the ALTER DATABASE TSQL statement. O exemplo a seguir define o objetivo de nível de serviço como DW1000c para o banco de dados MySQLDW.The following example sets the service level objective to DW1000c for the database MySQLDW.
ALTER DATABASE MySQLDW
MODIFY (SERVICE_OBJECTIVE = 'DW1000c')
;

APIs RESTREST APIs

Para alterar as DWUs, use a API REST Criar ou Atualizar Banco de Dados .To change the DWUs, use the Create or Update Database REST API. O exemplo a seguir define o objetivo de nível de serviço como DW1000c para o banco de dados MySQLDW, que é hospedado no servidor meuservidor.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.The server is in an Azure resource group named 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
    }
}

Para obter mais exemplos de API REST, consulte APIs REST para o SQL Data Warehouse.For more REST API examples, see REST APIs for SQL Data Warehouse.

Verificar o status das alterações de DWUCheck status of DWU changes

As alterações de DWU podem levar vários minutos para concluir.DWU changes may take several minutes to complete. Se você estiver dimensionando automaticamente, considere implementar a lógica para assegurar que determinadas operações tenham sido concluídas antes de prosseguir com outra ação.If you are scaling automatically, consider implementing logic to ensure that certain operations have been completed before proceeding with another action.

Verificar o estado do banco de dados por meio de vários pontos de extremidade permitirá que você implemente corretamente a automação.Checking the database state through various endpoints allows you to correctly implement automation. O portal fornece uma notificação após a conclusão de uma operação e o estado atual do bancos de dados, mas não permite a verificação de estado programática.The portal provides notification upon completion of an operation and the databases current state but does not allow for programmatic checking of state.

Não é possível verificar o estado do banco de dados para operações de dimensionamento horizontal com o portal do Azure.You cannot check the database state for scale-out operations with the Azure portal.

Para verificar o status de alterações de DWU:To check the status of DWU changes:

  1. Conecte-se ao banco de dados mestre associado ao seu servidor lógico do Banco de Dados SQL.Connect to the master database associated with your logical SQL Database server.

  2. Envie a seguinte consulta para verificar o estado do banco de dados.Submit the following query to check database state.

    SELECT    *
    FROM      sys.databases
    ;
    
  3. Envie a seguinte consulta para verificar o estado da operaçãoSubmit the following query to check status of operation

    SELECT    *
    FROM      sys.dm_operation_status
    WHERE     resource_type_desc = 'Database'
    AND       major_resource_id = 'MySQLDW'
    ;
    

Essa DMV retorna informações sobre várias operações de gerenciamento em seu pool do SQL, como a operação e o estado da operação, que é IN_PROGRESS ou concluída.This DMV returns information about various management operations on your SQL pool such as the operation and the state of the operation, which is either IN_PROGRESS or COMPLETED.

O fluxo de trabalho do dimensionamentoThe scaling workflow

Quando você inicia uma operação de dimensionamento, o sistema primeiro interrompe todas as sessões abertas, revertendo as transações abertas para garantir um estado consistente.When you start a scale operation, the system first kills all open sessions, rolling back any open transactions to ensure a consistent state. Para operações de dimensionamento, o dimensionamento ocorrerá somente após a conclusão dessa reversão de transação.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, anexa novamente à camada de armazenamento.For a scale-up operation, the system detaches all compute nodes, provisions the additional compute nodes, and then reattaches to the storage layer.
  • Para uma operação de redução, o sistema desanexa todos os nós de computação e, em seguida, anexa apenas os nós necessários à camada de armazenamento.For a scale-down operation, the system detaches all compute nodes and then reattaches only the needed nodes to the storage layer.

Próximas etapasNext steps

Para saber mais sobre como gerenciamento do desempenho, consulte Classes de recursos para gerenciamento de carga de trabalho e Limites de simultaneidade e memória.To learn more about managing performance, see Resource classes for workload management and Memory and concurrency limits.