Microsoft Fabric: Scegliere tra Lakehouse e Warehouse

Articolo originariamente pubblicato da Franco Perduca, CTO di Bi Factory, sul suo profilo LinkedIn l’1 luglio 2024. L’articolo originale è disponibile all’indirizzo: https://www.linkedin.com/pulse/microsoft-fabric-scegliere-tra-lakehouse-e-warehouse-franco-perduca-w1nef/

In questo articolo esploreremo le differenze tra le architetture Lakehouse e Warehouse offerte da Microsoft Fabric, per scegliere la soluzione più adatta alle nostre esigenze. Entrambe le architetture memorizzano i dati in OneLake nel formato open source Delta/Parquet. Tuttavia, presentano caratteristiche diverse che le rendono adatte a scenari differenti.

Lakehouse

Microsoft Fabric Lakehouse è una piattaforma che consente di archiviare, gestire e analizzare dati strutturati e non strutturati in un’unica posizione. Utilizza il formato di file Parquet Delta e permette di archiviare i dati in due posizioni fisiche predefinite:

  • Files (tabelle non gestite o unmanaged)
  • Tables (tabelle gestite o managed)

Managed Table: Queste tabelle sono gestite internamente da Spark, che controlla sia i dati che i metadati. I dati sono memorizzati in una directory designata e i metadati in un metastore. L’eliminazione di una tabella gestita comporta la perdita sia dei dati che dei metadati.

Unmanaged Table: In queste tabelle, Spark gestisce solo i metadati, mentre l’utente è responsabile della gestione della posizione dei dati, che rimangono esterni all’ecosistema Spark. L’eliminazione di una tabella non gestita rimuove solo i metadati; i dati rimangono intatti.

  • Folder “Files”: Memorizza qualsiasi tipo di file, inclusi CSV, Parquet, immagini, video, ecc.
  • Folder “Tables”: Memorizza tabelle in formato Delta, disponibili per l’interrogazione tramite l’endpoint SQL di Fabric Lakehouse e per scenari Direct Lake con Power BI.
Fabric crea automaticamente un endpoint SQL collegato alla cartella Tables al momento della creazione di un Lakehouse. Questo endpoint consente di analizzare i dati Delta utilizzando comandi T-SQL e di implementare misure di sicurezza SQL. Tuttavia, opera in modalità di sola lettura sulle tabelle Delta.
Approccio Spark-centrico: Le operazioni sui dati nel Lakehouse avvengono tramite notebook Spark, utilizzando linguaggi come PySpark, SQL, ecc.

Warehouse

In Microsoft Fabric, il Warehouse è un data warehouse tradizionale che supporta transazioni, query DDL e DML, viste, funzioni e stored procedure. I dati nel Warehouse sono archiviati nel formato Parquet e gestiti tramite Delta Lake, garantendo transazioni ACID.

Disaccoppiamento di calcolo e storage: Il Warehouse utilizza un’infrastruttura serverless che permette una scalabilità infinita e dinamica delle risorse, con la possibilità di allocare risorse fisiche di elaborazione in pochi millisecondi. Questo consente a più motori di calcolo di leggere da qualsiasi fonte di storage supportata.

Approccio SQL-centrico: Le operazioni nel Warehouse avvengono tramite T-SQL, con supporto per multi-table transactions, mascheramento dinamico dei dati e altre funzionalità avanzate di Data Warehouse.

Accesso ai dati tra Lakehouse e Warehouse

È possibile accedere ai dati tra Lakehouse e Warehouse se entrambi si trovano nello stesso workspace Fabric.

Accesso a Lakehouse da Warehouse: Utilizzando query cross-database, possiamo interrogare i dati di Lakehouse dal Warehouse con T-SQL.

Sotto vediamo un esempio reale basato su dati SAP tramite il nostro ERP Gateway che gestisce un Lakehouse di nome bronze_SAP dove vengono gestiti i dati grezzi

e come sono accessibili da un Warehouse di nome DWHBIFSapSales

Accesso a Warehouse da Lakehouse: Creando shortcut (è una virtualizzazione del dato che permetter di leggere il dato nel sua forma originaria senza duplicarlo.

EDIT

A fine Giugno 2024 Microsoft ha introdotto un’importante novità da tenere in considerazione nelle scelte architetturali: si tratta della disponibilità dello Spark Connector for Fabric Data Warehouse (DW) per un nativo accesso dal Lakehouse.

Differenze tra Lakehouse e Warehouse

Dopo aver visto le caratteristiche possiamo approcciare quale dei 2 possa rispondere meglio alle nostre esigenze.

Differenze e considerazioni
per la scelta

Quando scegliere il Warehouse:

  • Dati strutturati o semi-strutturati.
  • Team con competenze T-SQL e Data Warehousing.
  • Migrazione da un Data Warehouse esistente.
  • Necessità di funzioni avanzate come Multi-table transactions.
  • Necessità di modificare i dati dopo la normalizzazione o trasformazione.

Quando scegliere il Lakehouse:

  • Dati non strutturati o semi-strutturati.
  • Team con competenze in Spark.
  • Nessuna necessità di funzioni avanzate di Data Warehouse.
  • Preferenza per operazioni Spark rispetto a T-SQL.

Spesso, un’architettura che combina Lakehouse e Warehouse può sfruttare il meglio di entrambi i mondi e in effetti, vedendo le effettive esigenze in più di un caso, è una configurazione che ci troviamo a suggerire spesso ai clienti che seguiamo in Bi Factory. Il livello di consumo (tramite Power BI o l’endpoint SQL del Warehouse) può utilizzare il Warehouse, mentre le attività di staging e preparazione dei dati possono avvenire tramite il Lakehouse. Sotto un esempio di questo approccio.

Riferimenti

Condividi l'articolo su

Vuoi ricevere
gli aggiornamenti
sui nostri servizi?

Iscriviti alla nostra Newsletter!