DP-900: compreender e usar armazéns de dados em Azure Synapse Analytics
Vou ensinar a competência: compreender e usar armazéns de dados em Azure Synapse Analytics. Esta competência é frequente no DP-900 porque avalia se entendes como funcionam as arquiteturas de analytics no Azure e como escolher e configurar um armazém de dados para cargas analíticas reais.
O que precisas de saber
Um armazém de dados (data warehouse) é uma solução otimizada para análise de grandes volumes de dados históricos e para relatórios. Azure Synapse Analytics fornece um espaço integrado para ingestão, armazenamento e processamento analítico. Dois conceitos-chave que deves distinguir:
- Armazenamento e compute desacoplados: o armazenamento (dados em OneLake / Azure Data Lake Storage) está separado do motor de processamento. Podes escalar ambos independentemente.
- Modelos de processamento: Synapse oferece dois modos principais para consultar dados tabulares em larga escala — Dedicated SQL Pool (anteriormente SQL Data Warehouse) e serverless SQL pool. O Dedicated SQL Pool fornece desempenho previsível com recursos dedicados (DWUs), enquanto o serverless é on‑demand e cobra por dados lidos.
Exemplo simples: tens registos de transações de e‑commerce em ficheiros Parquet no OneLake. Para relatórios de alta frequência com múltiplos utilizadores, usas um Dedicated SQL Pool com tabelas distribuídas; para explorações ad‑hoc ou integração com Power BI para exploração inicial, podes usar o serverless SQL para ler diretamente os ficheiros.
Como funciona na prática
Aqui tens o fluxo comum e decisões que terás de tomar:
- Ingestão: traz dados para OneLake / ADLS Gen2 (ficheiros Parquet/CSV) ou usa pipelines (Synapse Pipelines / Data Factory) para mover para o armazém.
- Escolher motor de consulta:
- Serverless SQL: bom para exploração, custos baixos quando o uso é esporádico.
- Dedicated SQL Pool: bom para cargas estáveis e elevado paralelismo com tabelas distribuídas e índices columnstore.
- Modelação: cria tabelas fact/dimension (esquema estrela), escolhe estratégia de distribuição (HASH, ROUND_ROBIN, REPLICATE) para Dedicated SQL Pool.
- Otimização: usa tabelas columnstore para compressão e velocidade em analytics, atualiza estatísticas e faz manutenção (rebuilds, reorganização se aplicável).
// Exemplo T-SQL mínimo (Dedicated SQL Pool) para criar tabela columnstore e distribuir por CustomerID
CREATE TABLE dbo.FactSales (
SaleID BIGINT,
CustomerID BIGINT,
ProductID BIGINT,
SaleDate DATE,
Amount DECIMAL(18,2)
)
WITH (
DISTRIBUTION = HASH (CustomerID),
CLUSTERED COLUMNSTORE INDEX
);
Notas rápidas sobre distribuição: HASH é eficaz quando há consultas que filtram ou juntam pela chave de distribuição; REPLICATE copia a dimensão pequena para todos os nós; ROUND_ROBIN é simples, útil em cargas ETL iniciais mas pode causar movimentação de dados em joins.
Erros comuns
Três armadilhas típicas que vês frequentemente:
- Pensar que serverless substitui um Dedicated SQL Pool: serverless é para leitura ad‑hoc; não substitui um armazém dedicado para cargas previsíveis e multiutilizador com SLAs.
- Escolha incorreta da distribuição: usar ROUND_ROBIN por defeito pode gerar movimento de dados excessivo em joins, degradando o desempenho.
- Ignorar compressão columnstore: tabelas rowstore em grandes fact tables consomem muito espaço e são lentas para agregações; usar columnstore reduz I/O e melhora desempenho.
Como praticar
Pratica criando um workspace em Azure Synapse (ou usa a versão gratuita/avaliação do Azure). Tenta estas atividades práticas:
- Carregar ficheiros Parquet para OneLake / ADLS Gen2 e consultá‑los com serverless SQL.
- Criar um Dedicated SQL Pool pequeno, carregar dados e experimentar diferentes DISTRIBUTION (HASH/REPLICATE/ROUND_ROBIN).
- Medir tempo de query e observar efeitos de columnstore vs rowstore.
Para preparação para o DP-900, usa sempre o Practice Assessment oficial e gratuito da Microsoft e a study guide oficial também gratuita — são as fontes indicadas para praticar e alinhar com as skills measured. Não uses nem confies em «exam dumps»; segue os recursos oficiais.
Em resumo
- Azure Synapse separa armazenamento e compute: escolhe entre serverless (on‑demand) e Dedicated SQL Pool (recursos dedicados).
- Modelação para analytics exige tabelas columnstore e boa estratégia de distribuição (HASH/REPLICATE/ROUND_ROBIN).
- Serverless é ótimo para exploração; Dedicated SQL Pool é adequado para cargas analíticas constantes e multiutilizador.
- Pratica no portal Azure: carrega dados para OneLake, executa queries serverless e implanta um Dedicated SQL Pool para comparar desempenho.