DP-900: comprender y usar almacenes de datos en Azure Synapse Analytics
Voy a enseñar la competencia: comprender y usar almacenes de datos en Azure Synapse Analytics. Esta competencia es frecuente en el DP-900 porque evalúa si entiendes cómo funcionan las arquitecturas de analytics en Azure y cómo elegir y configurar un almacén de datos para cargas analíticas reales.
Lo que necesitas saber
Un almacén de datos (data warehouse) es una solución optimizada para el análisis de grandes volúmenes de datos históricos y para informes. Azure Synapse Analytics proporciona un espacio integrado para ingestión, almacenamiento y procesamiento analítico. Dos conceptos clave que debes distinguir:
- Almacenamiento y compute desacoplados: el almacenamiento (datos en OneLake / Azure Data Lake Storage) está separado del motor de procesamiento. Puedes escalar ambos de forma independiente.
- Modelos de procesamiento: Synapse ofrece dos modos principales para consultar datos tabulares a gran escala — Dedicated SQL Pool (anteriormente SQL Data Warehouse) y serverless SQL pool. El Dedicated SQL Pool proporciona rendimiento predecible con recursos dedicados (DWUs), mientras que el serverless es on‑demand y cobra por datos leídos.
Ejemplo sencillo: tienes registros de transacciones de e‑commerce en archivos Parquet en OneLake. Para informes de alta frecuencia con múltiples usuarios, usas un Dedicated SQL Pool con tablas distribuidas; para exploraciones ad‑hoc o integración con Power BI para exploración inicial, puedes usar el serverless SQL para leer directamente los archivos.
Cómo funciona en la práctica
Aquí tienes el flujo común y decisiones que tendrás que tomar:
- Ingestión: trae datos a OneLake / ADLS Gen2 (archivos Parquet/CSV) o usa pipelines (Synapse Pipelines / Data Factory) para moverlos al almacén.
- Elegir motor de consulta:
- Serverless SQL: bueno para exploración, costes bajos cuando el uso es esporádico.
- Dedicated SQL Pool: bueno para cargas estables y alto paralelismo con tablas distribuidas e índices columnstore.
- Modelado: crea tablas fact/dimension (esquema estrella), elige estrategia de distribución (HASH, ROUND_ROBIN, REPLICATE) para Dedicated SQL Pool.
- Optimización: usa tablas columnstore para compresión y velocidad en analytics, actualiza estadísticas y realiza mantenimiento (rebuilds, reorganización si procede).
// Exemplo T-SQL mínimo (Dedicated SQL Pool) para crear 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 distribución: HASH es eficaz cuando hay consultas que filtran o hacen joins por la clave de distribución; REPLICATE copia la dimensión pequeña a todos los nodos; ROUND_ROBIN es simple, útil en cargas ETL iniciales pero puede provocar movimiento de datos en joins.
Errores comunes
Tres trampas típicas que ves con frecuencia:
- Pensar que serverless sustituye a un Dedicated SQL Pool: serverless es para lectura ad‑hoc; no sustituye a un almacén dedicado para cargas previsibles y multiusuario con SLAs.
- Elección incorrecta de la distribución: usar ROUND_ROBIN por defecto puede generar movimiento de datos excesivo en joins, degradando el rendimiento.
- Ignorar la compresión columnstore: tablas rowstore en grandes fact tables consumen mucho espacio y son lentas para agregaciones; usar columnstore reduce I/O y mejora el rendimiento.
Cómo practicar
Practica creando un workspace en Azure Synapse (o usa la versión gratuita/evaluación de Azure). Intenta estas actividades prácticas:
- Cargar archivos Parquet a OneLake / ADLS Gen2 y consultarlos con serverless SQL.
- Crear un Dedicated SQL Pool pequeño, cargar datos y experimentar con diferentes DISTRIBUTION (HASH/REPLICATE/ROUND_ROBIN).
- Medir tiempo de consulta y observar efectos de columnstore vs rowstore.
Para la preparación del DP-900, usa siempre el Practice Assessment oficial y gratuito de Microsoft y la study guide oficial también gratuita — son las fuentes recomendadas para practicar y alinearte con las skills measured. No uses ni confíes en «exam dumps»; sigue los recursos oficiales.
En resumen
- Azure Synapse separa almacenamiento y compute: elige entre serverless (on‑demand) y Dedicated SQL Pool (recursos dedicados).
- El modelado para analytics exige tablas columnstore y una buena estrategia de distribución (HASH/REPLICATE/ROUND_ROBIN).
- Serverless es excelente para exploración; Dedicated SQL Pool es adecuado para cargas analíticas constantes y multiusuario.
- Practica en el portal Azure: carga datos en OneLake, ejecuta queries serverless e implementa un Dedicated SQL Pool para comparar rendimiento.