Salta el contingut

Azure per a Big Data

Microsoft Azure és el segon proveïdor de cloud per quota de mercat (aproximadament el 23% el 2025) i el primer en moltes empreses europees i del sector financer gràcies a la seva integració profunda amb l'ecosistema Microsoft (Windows, Office 365, SQL Server, Power BI). Per als equips de dades, Azure ofereix serveis que cobreixen tot el cicle de vida de les dades: ingestió, emmagatzematge, transformació, analítica i visualització.

En aquest capítol s'estudien els serveis principals d'Azure per a Big Data, la seva arquitectura i la comparativa amb els equivalents d'AWS per facilitar la comprensió conjunta de tots dos ecosistemes.


Azure Blob Storage i ADLS Gen2

Azure Blob Storage

Azure Blob Storage és el servei d'emmagatzematge d'objectes d'Azure, equivalent a Amazon S3. Les dades s'organitzen en comptes d'emmagatzematge (storage accounts), que contenen contenidors (containers), que al seu torn contenen blobs (objectes). Els blobs poden ser de tres tipus: Block Blobs (per a fitxers grans), Append Blobs (per a logs que creixen) i Page Blobs (per a discos de màquines virtuals).

Azure Blob Storage ofereix capes d'accés equivalents a les de S3:

Capa Cas d'ús Latència Preu aprox. (GB/mes)
Hot Dades actives, accés freqüent Mil·lisegons $0.018
Cool Dades accedides mensualment Mil·lisegons $0.01
Cold Dades accedides anualment Mil·lisegons $0.0045
Archive Arxiu a llarg termini Hores (rehidratació) $0.00099

Azure Data Lake Storage Gen2 (ADLS Gen2)

ADLS Gen2 és la versió avançada de Blob Storage específicament dissenyada per a casos d'ús de Big Data. La diferència fonamental respecte a Blob Storage estàndard és el suport de namespace jeràrquic (Hierarchical Namespace, HNS): en lloc d'un sistema pla de parells clau-valor, ADLS Gen2 implementa un sistema de directoris i fitxers real, amb operacions atòmiques de renomenat i eliminació de directoris.

Permisos POSIX

ADLS Gen2 suporta llistes de control d'accés (ACL) de tipus POSIX, igual que un sistema de fitxers Unix. Cada fitxer i directori pot tenir permisos de lectura, escriptura i execució per a l'usuari propietari, el grup propietari i altres. Això és molt important per a entorns de Data Lake on cal un control granular de qui pot llegir quines carpetes (per exemple, l'equip de Finances pot llegir /gold/finances/ però no /gold/rrhh/).

Per qué ADLS Gen2 és la base del Data Lake a Azure

  • Compatible amb els protocols Hadoop HDFS, ABFS (Azure Blob File System) i NFS 3.0.
  • Tots els serveis analítics d'Azure (Synapse, Databricks, HDInsight, Data Factory) el suporten nativament.
  • Rendiment molt superior a Blob estàndard per a operacions de directoris (renomear una carpeta amb milions de fitxers és O(1) en HNS, O(n) sense HNS).
  • Cost idèntic a Blob Storage: ADLS Gen2 és simplement Blob Storage amb HNS activat.
flowchart TD
    SA["Compte d'emmagatzematge\n(Storage Account)"]
    C1["Contenidor: bronze"]
    C2["Contenidor: silver"]
    C3["Contenidor: gold"]

    SA --> C1
    SA --> C2
    SA --> C3

    C1 --> D1["vendes/any=2026/mes=01/\nvendes_raw_001.json"]
    C1 --> D2["logs/any=2026/mes=01/\naccess_log.gz"]
    C2 --> D3["vendes/any=2026/mes=01/\nvendes_clean.parquet"]
    C3 --> D4["fact_vendes_mensual/\nfact_vendes_2026_01.parquet"]

Azure SQL Database

Azure SQL Database és el servei de bases de dades relacionals gestionades d'Azure, equivalent a Amazon RDS. Està basat en Microsoft SQL Server i és 100% compatible amb el motor SQL Server, facilitant la migració des d'entorns on-premise.

Models de compra: DTU vs vCores

Azure SQL Database ofereix dos models de compra:

Model DTU (Database Transaction Units)

El model DTU agrupa còmput, memòria i I/O en una unitat abstracta (DTU). És més senzill d'entendre però menys flexible. S'usa en la tier Basic, Standard i Premium per a bases de dades relativament petites.

Model vCore

El model vCore permet triar el nombre de nuclis virtuals i la memòria de forma independent, i seleccionar el maquinari subjacent (Gen5, Fsv2, DC). Ofereix molt més control sobre el rendiment i permet calcular el cost amb més precisió. Recomanat per a bases de dades de producció en entorns empresarials.

Elastic Pools

Els Elastic Pools permeten agrupar múltiples bases de dades SQL que comparteixen un conjunt de recursos (vCores o DTUs) comuns. Si una base de dades té un pic de càrrega, pot usar més recursos del pool; si totes estan inactives, el cost és mínim. És el patró recomanat per a aplicacions SaaS multi-tenant on cadascuna té la seva pròpia base de dades però el comportament és poc predictible.

Azure SQL Serverless

Azure SQL Database Serverless és una capa de còmput que escala automàticament i s'atura (pausa) quan no hi ha activitat. El còmput no es cobra durant les pauses. Ideal per a bases de dades de desenvolupament, testing o analítica que s'usen de forma intermitent.


Azure Synapse Analytics

Azure Synapse Analytics és la plataforma analítica unificada d'Azure. Integra en un sol workspace capacitats de Data Warehouse, Data Lake, Spark i pipelines ETL que en AWS serien serveis separats (Redshift + S3 + EMR + Glue). Synapse és la resposta de Microsoft a la necessitat d'una plataforma "tot en un" per a l'analítica de Big Data.

Components d'un workspace Synapse

flowchart TD
    WS["Azure Synapse Workspace"]
    ADLS["ADLS Gen2\n(Data Lake)"]
    SQL_DED["SQL Pool Dedicat\n(Data Warehouse MPP)"]
    SQL_SRV["SQL Pool Serverless\n(SQL sobre ADLS)"]
    SPARK["Spark Pool\n(Processament distribuït)"]
    PIPE["Synapse Pipelines\n(ETL/ELT visual)"]
    LINK["Synapse Link\n(Integració operacional)"]

    WS --> ADLS
    WS --> SQL_DED
    WS --> SQL_SRV
    WS --> SPARK
    WS --> PIPE
    WS --> LINK

    SQL_DED <-->|"COPY INTO / PolyBase"| ADLS
    SQL_SRV -->|"Llegeix directament"| ADLS
    SPARK <-->|"Delta Lake / Parquet"| ADLS
    PIPE --> ADLS
    PIPE --> SQL_DED

SQL Pool Dedicat (Dedicated SQL Pool)

El SQL Pool Dedicat és el Data Warehouse MPP de Synapse, equivalent a Amazon Redshift. Usa processament massivament paral·lel (MPP) amb una arquitectura de node de control + nodes de còmput. Les dades s'emmagatzemen en format columnar comprimit (Clustered Columnstore Index) i es distribueixen entre els nodes de còmput.

La capacitat es mesura en DWUs (Data Warehouse Units): de DW100c (el mínim) fins a DW30000c. El sistema es pot pausar quan no s'usa (es paga el cost d'emmagatzematge però no el de còmput), cosa que el diferencia de Redshift (que cobra per node independentment de si executa consultes o no).

SQL Pool Serverless

El SQL Pool Serverless permet executar consultes T-SQL sobre dades que estan a ADLS Gen2 sense aprovisionar cap DW. Equivalent a Amazon Athena, però integrat dins del workspace Synapse. Cobra per terabyte escanejat. Permet usar l'OPENROWSET per llegir Parquet, CSV, JSON i Delta Lake directament des de SQL:

-- Llegir fitxers Parquet de ADLS Gen2 des de Synapse Serverless SQL
SELECT
    any_venda,
    SUM(import_net) AS total_import
FROM OPENROWSET(
    BULK 'https://datalake.dfs.core.windows.net/silver/vendes/**',
    FORMAT = 'PARQUET'
) AS vendes
GROUP BY any_venda
ORDER BY any_venda;

Spark Pool

El Spark Pool permet executar notebooks PySpark, Scala i .NET Spark directament dins del workspace Synapse, sense sortir a un servei extern. Suporta Delta Lake nativament. Els nodes s'inicien automàticament quan s'executa la primera cel·la del notebook i s'aturen de forma configurable per evitar costos innecessaris.

Synapse Link és una característica que crea una còpia analítica en temps quasi real de dades operacionals (Cosmos DB, SQL Database, Dataverse) directament a ADLS Gen2, sense ETL manual. Permet analitzar dades transaccionals actuals sense impacte en el sistema OLTP d'origen.


Azure Data Factory (ADF)

Azure Data Factory és el servei d'orquestació ETL/ELT d'Azure, equivalent a AWS Glue en la seva funció d'orquestació de pipelines (tot i que molt diferent en la seva interfície). ADF és essencialment visual: els pipelines es dissenyen arrossegant i connectant activitats en un canvas gràfic, sense escriure codi.

Integration Runtimes

L'Integration Runtime (IR) és el motor d'execució que realitza les activitats del pipeline. Hi ha tres tipus:

Azure IR

S'executa completament al cloud d'Azure. Ideal per a fonts i destinacions que estan al cloud (ADLS, Azure SQL, Blob Storage, Snowflake, etc.). No requereix cap configuració de xarxa addicional si ambdues fonts estan a Azure.

Self-hosted IR

S'instal·la en una màquina Windows on-premise o en una VM privada. Permet connectar ADF amb fonts de dades que no són accessibles des d'Internet: bases de dades Oracle locals, servidors de fitxers SMB, sistemes SAP, etc. Moltes empreses usen el Self-hosted IR per migrar dades de sistemes legacy on-premise cap al cloud.

Azure SSIS IR

Permet executar paquets SSIS (SQL Server Integration Services) existents dins d'Azure sense modificar-los. Facilita la migració de pipelines ETL on-premise a Azure.

Connectors i activitats

ADF ofereix més de 100 connectors out-of-the-box: S3, Salesforce, SAP HANA, Oracle, REST APIs, MongoDB, SharePoint, Dynamics 365, i molts més. Les activitats principals d'un pipeline ADF inclouen:

  • Copy Activity: mou dades d'una font a una destinació de forma eficient i paral·lelitzada.
  • Data Flow: transformació visual de dades (Mapping Data Flow) executada sobre Spark gestionat sense escriure codi.
  • Notebook Activity: executa un notebook de Databricks o Synapse Spark.
  • Stored Procedure Activity: executa un procediment emmagatzemat a Azure SQL o Synapse.
  • ForEach / If Condition: lògica de control de flux condicional i iteratiu.

Mapping Data Flows

Els Mapping Data Flows són transformacions de dades visuals que s'executen sobre un clúster Spark gestionat per ADF. L'usuari dissenya la transformació (filtres, joins, agregacions, columnes derivades) en un canvas gràfic i ADF genera i executa el codi Spark subjacent automàticament. Pot ser molt potent per a equips que no volen o no saben escriure codi Spark.

Triggers i programació

Un pipeline ADF es pot activar de tres formes:

  • Schedule trigger: s'executa a una hora concreta (diàriament a les 02:00, cada hora, etc.).
  • Tumbling window trigger: executa el pipeline per finestres de temps consecutives, molt útil per a reprocessaments o backfills de dades.
  • Event trigger: s'activa quan s'afegeix o elimina un fitxer a ADLS, o quan arriba un missatge a Event Grid.

Azure Databricks

Azure Databricks és la versió d'Azure de la plataforma Databricks, que al seu torn és una empresa fundada pels creadors d'Apache Spark. Ofereix Spark gestionat d'alta qualitat, amb capacitats addicionals que la diferencien d'un clúster Spark estàndard.

Característiques diferencials

Unity Catalog

Unity Catalog és la capa de governança de dades centralitzada de Databricks. Permet gestionar permisos sobre taules, vistes i fitxers de forma unificada per a tots els workspaces d'una organització. Suporta lineage de dades (traçabilitat de d'on venen les dades) i auditoria d'accessos.

Delta Lake natiu

Databricks va crear Delta Lake i el suporta de forma nativa. Les taules Delta s'emmagatzemen a ADLS Gen2 i ofereixen transaccions ACID, time travel (consultar versions anteriors de les dades), optimització automàtica (Z-ordering, auto-compaction) i schema enforcement.

MLflow integrat

MLflow és un framework open source per a la gestió del cicle de vida de models de Machine Learning: experiment tracking, registre de models i desplegament. Databricks l'integra de forma nativa, convertint-lo en la plataforma preferida per a equips que treballen conjuntament en analítica de dades i Machine Learning.

Notebooks col·laboratius

Els notebooks de Databricks permeten la col·laboració en temps real de múltiples usuaris (similar a Google Docs) sobre el mateix notebook PySpark, Scala o SQL. Inclouen versionat integrat, comentaris i control d'accés per cel·la.


Azure Event Hubs — Streaming de dades

Azure Event Hubs és el servei de streaming gestionat d'Azure, dissenyat específicament per a la ingestió massiva de dades en temps real. La seva característica més destacada és la compatibilitat amb el protocol de Kafka: qualsevol aplicació que escriu a Kafka pot redirigir-se a Event Hubs canviant únicament la URL de connexió, sense modificar el codi.

Conceptes clau

Particions

Les particions són la unitat de paral·lelisme d'Event Hubs. Un Event Hub pot tenir entre 1 i 32 particions (o fins a 2.000 en el tier Dedicated). El nombre de particions determina el màxim de consumidors paral·lels possibles. Les particions es configuren en el moment de la creació i no es poden canviar.

Consumer groups

Cada consumer group representa una vista independent del flux de dades. Múltiples aplicacions poden consumir el mateix Event Hub de forma independent (Synapse Analytics, Databricks, Azure Stream Analytics) sense interferir entre elles.

Retencions

Event Hubs reté les dades entre 1 i 90 dies (Standard i Premium). Passat el temps de retenció, les dades s'eliminen. Si cal retenir les dades de forma permanent, s'usa la funció Event Hubs Capture, que desa automàticament el flux a ADLS Gen2 en format Avro o Parquet.

Azure Stream Analytics

Azure Stream Analytics és el servei d'analítica en temps real d'Azure, equivalent a Kinesis Data Analytics. Permet executar consultes SQL sobre fluxos d'Event Hubs, IoT Hub o Blob Storage, amb suport de finestres temporals (tumbling, hopping, sliding, session windows).


Power BI i Synapse Analytics

La integració entre Power BI i Azure Synapse és un dels punts forts de l'ecosistema Azure. Power BI és l'eina de Business Intelligence de Microsoft amb més de 250.000 organitzacions clients el 2025.

DirectQuery vs Import mode

Import mode (per defecte) importa una còpia de les dades al model de Power BI en memòria. Les consultes s'executen sobre la còpia local i son molt ràpides, però les dades no estan mai completament al dia i el model té un límit de mida (1 GB a la versió Pro, 400 GB a Premium).

DirectQuery mode envia cada interacció de l'usuari (cada clic en un slicer, cada drill-down) com una consulta SQL al sistema subjacent (Synapse, Redshift, etc.) en temps real. Les dades sempre estan actuals, però el rendiment depèn de la velocitat del DW subjacent.

En entorns Synapse, la recomanació habitual és usar DirectQuery sobre el SQL Pool Dedicat per a les dades del DW (resposta en 1-3 segons per a consultes ben optimitzades) i Import mode per a dimensions petites i estàtiques.


Arquitectura de Data Lakehouse a Azure

flowchart TD
    subgraph INGESTIO["Ingestió"]
        SQL_OP["Azure SQL Database\n(OLTP operacional)"]
        EH["Azure Event Hubs\n(Streaming)"]
        EXT["Fonts externes\n(APIs REST, SAP, Salesforce)"]
    end

    subgraph LAKE["ADLS Gen2 — Data Lake"]
        BRONZE["Contenidor: bronze\n(JSON, CSV, Avro en brut)"]
        SILVER["Contenidor: silver\n(Delta Lake net i tipat)"]
        GOLD["Contenidor: gold\n(Delta Lake agregat)"]
    end

    subgraph TRANSFORM["Transformació"]
        ADF["Azure Data Factory\n(Orquestació ETL)"]
        DBX["Azure Databricks\n(Spark + Delta Lake)"]
    end

    subgraph SERVING["Serving Layer"]
        SYN["Synapse SQL Pool Dedicat\n(Data Warehouse)"]
        SRV["Synapse Serverless SQL\n(Ad-hoc sobre lake)"]
    end

    subgraph CONSUM["Consum"]
        PBI["Power BI\n(BI Corporatiu)"]
        NB["Databricks Notebooks\n(Data Science / ML)"]
    end

    SQL_OP -->|"ADF Copy / Synapse Link"| BRONZE
    EH -->|"Event Hubs Capture"| BRONZE
    EXT -->|"ADF Connectors"| BRONZE

    BRONZE --> ADF
    ADF --> DBX
    DBX -->|"Delta Lake"| SILVER
    SILVER --> DBX
    DBX -->|"Delta Lake agregatat"| GOLD

    GOLD -->|"COPY INTO"| SYN
    SILVER --> SRV
    GOLD --> SRV

    SYN --> PBI
    SRV --> PBI
    SILVER --> NB
    GOLD --> NB

Taula comparativa AWS vs Azure per a Big Data

Cas d'ús Servei AWS Servei Azure Notes
Object Storage Amazon S3 Azure Blob Storage / ADLS Gen2 ADLS Gen2 = Blob + namespace jeràrquic
BD relacional gestionada Amazon RDS Azure SQL Database Azure ofereix pausa automàtica (Serverless)
Data Warehouse MPP Amazon Redshift Synapse SQL Pool Dedicat Synapse es pot pausar; Redshift no
SQL sobre lake Amazon Athena Synapse Serverless SQL Models de cost similars ($/TB escanejat)
ETL gestionat AWS Glue Azure Data Factory ADF és visual; Glue és més codi
Spark gestionat premium Amazon EMR Azure Databricks Databricks és superior en ML i Delta Lake
Streaming Amazon Kinesis Azure Event Hubs Event Hubs és compatible amb Kafka
SQL Streaming Kinesis Data Analytics Azure Stream Analytics Ambdós suporten SQL sobre fluxos
Catàleg de metadades AWS Glue Data Catalog Microsoft Purview Purview és més complet en governança
BI integrat Amazon QuickSight Microsoft Power BI Power BI és molt més madur i estès
Plataforma unificada No n'hi ha un equivalent exacte Azure Synapse Analytics Synapse integra DW + Lake + Spark + ETL

Quin cloud triar?

La decisió entre AWS i Azure per a Big Data rarament és purament tècnica. AWS té un ecosistema més ampli i generalment és la primera opció en empreses tecnològiques i startups. Azure és dominant en empreses amb inversió en Microsoft (Windows Server, SQL Server, Office 365) i en el sector públic europeu. Moltes organitzacions adopten un enfocament multi-cloud: emmagatzematge a S3 o ADLS, anàlisi amb Databricks (disponible als dos clouds) i BI amb Power BI.


AC5074/04/02 — Miniactivitat

Partint de l'arquitectura AWS dissenyada a l'AC5074/04/01 (logs de servidor, 10 GB/dia, analítica mensual), migra-la al seu equivalent Azure:

  1. Substitueix cada servei AWS pel seu equivalent Azure més adequat. Per a cada substitució, explica si el servei Azure és equivalent, superior o inferior en el cas d'ús concret, i per qué.
  2. Dissenya l'estructura de contenidors de ADLS Gen2 (bronze/silver/gold) per als logs, especificant el format de fitxer i l'esquema de particionament.
  3. Compara el cost mensual estimat entre l'arquitectura AWS i l'Azure per al mateix cas d'ús. Busca els preus actuals a les calculadores oficials (AWS Pricing Calculator i Azure Pricing Calculator) i presenta una taula comparativa.
  4. Identifica un avantatge clar d'AWS i un avantatge clar d'Azure per a aquest cas d'ús concret (no generic).

Format de lliurament: el mateix document de l'AC01 ampliat amb una nova secció "Migració a Azure" (màx. 1 pàgina addicional) i la taula de costos comparativa.


Mòdul M5074 Sistemes de Big Data | Institut Sa Palomera (Blanes) | Curs CEIABD 2026-2027