Azure Synapse — Arquitetura / Componentes
A arquitetura do Azure Synapse SQL Pool possui muitos componentes que trabalham em um eco sistema unificado para torná-la um recurso exclusivo do Azure.
O que é o Azure Synapse Analytics?
O Azure Synapse é um serviço de análise empresarial que acelera o tempo de descoberta de insights entre data warehouses e sistemas de Big Data. O Azure Synapse reúne o melhor das tecnologias de SQL usadas em data warehousing corporativo, tecnologias Spark usadas para Big Data, Data Explorer para análise de logs e série temporal, Pipelines para integração de dados e ETL/ELT e integração profunda com outros serviços do Azure, como Power BI, CosmosDB e AzureML.
https://docs.microsoft.com/pt-br/azure/synapse-analytics/overview-what-is
Essa arquitetura é a mesma usada no SQL Data Warehouse (SQL DW); Ela aproveita o mecanismo MPP para distribuir o processamento computacional em vários nós de computação. Esses nós de computação são usados para trabalho em cluster;
Sua capacidade é definida pelo nível de desempenho do Pool SQL que você define no momento de sua criação; Essa definição pode ser alterada ao longo do tempo conforme a demanda de negócio; Vale lembrar que os dados não são armazenados em nós de computação (compute node) no caso de um Pool SQL; Em vez disso, existe nodes separados para armazenar esses dados. (conhecidos como: Storage Node)
.
Os Compute nodes, são separados dos Storage nodes, para que você tenha a flexibilidade de escala de computação sem afetar o armazenamento
de seu Data Warehouse.
Control Node:
Quando um usuário/app tenta executar uma consulta T-SQL, o Control Node utiliza cada distribuição para executar essas consultas em paralelo.
Quando você envia uma consulta a um Pool, o Control Node aproveita o engine MPP para executar essas consultas em cada distribuição em paralelo.
Compute Node:
Os Compute Nodes, são máquinas usadas para fins computacionais; Em uma arquitetura MPP, vários nodes de computação são executados em paralelo para processar uma consulta.
Essa Pool pode ter no máximo 60 nodes de computação determinados pelo nível de serviço. Cada Compute Node é identificado por um ID exclusivo.
Data Movement Service (DMS):
O DMS é um serviço à nível de sistema que distribui os dados em vários nodes para executar consultas em paralelo.
Azure Storage:
O Synapse armazena seus dados no Azure Storage. Quando você ingere os dados para um Pool SQL, os dados são fragmentados em distribuições para otimizar seu desempenho; O padrão dessa fragmentação pode ser definido durante a criação das tabelas.
Para saber quantos nodes estão disponíveis em seu Pool, use a seguinte consulta:
SELECT type,COUNT(1) FROM sys.dm_pdw_nodes GROUP BY type
DWUs
Você pode alterar os DWUs mesmo após criar sua conta no Synapse. No entanto, as distribuições serão mapeadas para computar sua alteração.
Para saber como está sua configuração DWU, use a seguinte consulta:
SELECT d.name, slo.*
FROM sys.databases d
JOIN sys.database_service_objectives slo
ON d.database_id = slo.database_id;
Distribuição
Todas as consultas são entregues aos Compute Nodes de seu Control Node para execução em paralelo.
Para saber como estão essa destruição, use o a consulta:
SELECT distribution_id, pdw_node_id FROM sys.pdw_nodes_partitions
GO;
SELECT distribution_id,pdw_node_id FROM sys.pdw_distributions
GO;
⚠️Esse artigo é baseado em recortes retirados de documentação e livros sobre Azure Synapse.
Refêrencias:
- MPP & Distribution in Azure SQL Data warehouse
- Arquitetura do pool de SQL dedicado (antigo SQL DW) no Azure Synapse Analytics
- Azure Synapse SQL Architecture
- Escalar a computação para o pool de SQL dedicado (antigo SQL DW) no Azure Synapse Analytics usando T-SQL
- Minimizando a inclinação no Azure Synapse Analytics
The Modern Data Warehouse in Azure: Building with Speed and Agility on Microsoft’s Cloud Platform