Mirroring in Microsoft Fabric

Mirroring in Microsoft Fabric

La copia delle tabelle sorgente è una delle prime fasi di un progetto di Data warehousing. Chiaramente, la creazione di un mirror ha un prezzo: il tempo per costruire il mirror. A volte non possiamo creare questo database mirror perché non c'è abbastanza tempo per eseguire query sul sistema sorgente e duplicarne i dati in questo caso si adottano altre tecniche ma di sicuro nella mia esperienza la creazione di un mirror del sistema sorgente è sempre stata una strategia di successo per diversi motivi:

  • Utilizziamo la sorgente "reale" per un breve periodo di tempo durante il mirroring poi lo liberiamo, così può fare qualsiasi tipo di manutenzione del database necessaria.
  • La possibilità di modificare le chiavi, le relazioni e le view del mirror porta a processi ETL più semplici e anche più economici sia da costruire che da mantenere nel tempo.
  • La possibilità di creare indici particolari nel mirroring potrebbe migliorare le prestazioni di altri passaggi dei processi di ETL, senza preoccuparsi della manutenzione dell'indice sul sistema originale dove nemmeno potremmo crearne.
  • Il mirror è normalmente molto più piccolo del sistema sorgente completo poiché non è necessario caricarlo tutto le tabelle della sorgente, per ciascuna tabella, possiamo decidere di riprodurre solo un sottoinsieme delle colonne

Ecco perchè sono contento che in Fabric è stata implementata questa nuova funzionalità che semplifica la creazione della copia dati appunto della fase di mirroring.

Come funziona il mirroring in fabric?

In mirroring utilizza una speciale tecnologia di feed di modifiche in background, per consentire la scrittura direttamente su OneLake, invece di creare tabelle di "dati modificati" nel database di origine. Pertanto, i dati archiviati nel formato proprietario del database verranno “tradotti” nel formato Delta e archiviati come tabelle Delta in OneLake.

Una volta in OneLake, puoi fare tutto ciò che fai con i carichi di lavoro Fabric "normali": eseguire query sui dati sottoposti a mirroring o persino scrivere query tra database per combinare i dati dal database con mirroring, dal magazzino Fabric esistente o da Fabric Lakehouse.

Inoltre i dati sottoposti a mirroring sono in OneLake nel formato file Delta, quindi nulla impedisce alla modalità Direct Lake di leggere questi dati nello stesso modo in cui leggerebbe le tabelle Delta “native” di Fabric! E non si tratta solo di Direct Lake: tutte le funzionalità di Fabric, come i notebook, ad esempio, possono essere sfruttate sui dati mirrorati.

Non entrerò nei dettagli spiegando come impostare il tutto, poiché su Microsoft Learn è disponibile un' ottima guida

Alcune note sul sistema di mirroring

I dati vengono archiviati FISICAMENTE nel tuo spazio di lavoro Fabric (a differenza delle scorciatoie, quando non c'è spostamento fisico dei dati). Poiché i dati vengono archiviati fisicamente in OneLake, è necessario pagare per l' archiviazione . In questo momento, Microsoft ti offre uno spazio di archiviazione gratuito fino 1 TB per CU che hai acquistato. Se la nostra capacità viene stoppata lo spazio si paga sempre in base al normale prezzo di archiviazione OneLake circa $24 per TB. Il mirroring vi permette di selezionare singole tabelle (non sono supportate le view per ora) di cui desideri eseguire il mirroring non solo l'intero database. Attenzione che se il database di origine si trova in una regione diversa dalla capacità Fabric, verranno addebitate tariffe in uscita.

la prima cosa che mi è venuta in mente quando ho visto questa funzionalità di fabric è stata l'idea di sostirutire i miei mirror fatti con gli ETL classici per tutti i clienti che hanno SQL Server. Purtroppo, ad oggi, SQL Server on-prem non è supportato per il mirroring, ma lo sarà entro l'anno.

Riccardo Perico

BI & Power BI Engineer @ Lucient Italia

9 mesi

per quanto riguarda il mirroring da Azure SQL ci sono 3 limitazioni forti secondo me: - la tabelle sorgenti devono avere PK - truncate/drop table non supportato - devo disabilitare il firewall e consentire agli azure services di collegarsi mi sembra meno "restrittivo" il mirroring di Snowflake, però forse più indicato se ho già fatto starschema lì.

Per visualizzare o aggiungere un commento, accedi

Altri articoli di Marco Pozzan

Altre pagine consultate