(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
Azure Synapse Analytics
Azure Synapse Analytics 1 min

Synapse Link para Cosmos DB: analytics operacional sin ETL

João Barros 15 de July de 2025 1 min de lectura

Azure Synapse Link for Cosmos DB es una integración HTAP (Hybrid Transactional/Analytical Processing) que replica automáticamente datos de Cosmos DB a un analytical store en Synapse, sin impacto en las operaciones transaccionales.

Cómo funciona

Cosmos DB (OLTP)
  └─ Transactional Store (orientado a filas, TTL corto)
  └─ Analytical Store (orientado a columnas, auto-sync, TTL largo)
            ↑
            Synapse Link (replicación automática, ~2 min latencia)
            ↓
  Azure Synapse Analytics
    └─ Serverless SQL Pool → T-SQL sobre datos Cosmos
    └─ Spark Pool → PySpark sobre datos Cosmos

Activar Synapse Link en Cosmos DB

// Portal: Cosmos DB account → Features → Azure Synapse Link → Enable
// Tarda ~5 minutos; operación no reversible

// Activar por container (vía SDK o portal):
az cosmosdb sql container update \
  --account-name cosmos-bconcepts \
  --database-name operational \
  --name pedidos \
  --analytical-storage-ttl -1  // -1 = sin expiración

Consultar con Serverless SQL

-- En Synapse Studio (sin pipeline, datos actualizados en ~2 min)
SELECT
    JSON_VALUE(doc, '$.cliente_id')  AS cliente_id,
    JSON_VALUE(doc, '$.estado')      AS estado,
    JSON_VALUE(doc, '$.valor_total') AS valor,
    JSON_VALUE(doc, '$.fecha_creacion') AS fecha
FROM OPENROWSET(
    PROVIDER = 'CosmosDB',
    CONNECTION = 'account=cosmos-bconcepts;database=operational',
    OBJECT = 'pedidos',
    SERVER_CREDENTIAL = 'CosmosDBCredential'
)
WITH (doc NVARCHAR(MAX)) AS rows
WHERE JSON_VALUE(doc, '$.estado') = 'Pendiente';

Consultar con PySpark

df = spark.read.format("cosmos.olap") \
    .option("spark.synapse.linkedService", "CosmosDB_Operational") \
    .option("spark.cosmos.container", "pedidos") \
    .load()

df.groupBy("estado").agg({"valor_total": "sum"}).show()

Conclusión

Synapse Link elimina el patrón clásico de replicar datos operacionales al data warehouse vía ETL nocturno. Para análisis sobre datos casi en tiempo real de Cosmos DB, es la solución más simple y eficiente disponible en Azure.

Compartir: