Passa al contenuto principale

data warehouse

Prova Databricks gratis

Che cos'è un data warehouse?

Un data warehouse è un sistema di gestione dei dati pensato per le aziende che archivia dati attuali e storici provenienti da più fonti in modo semplice e intuitivo, facilitando l'analisi e la generazione di report. I data warehouse sono tipicamente utilizzati per la Business Intelligence (BI), la reportistica e l'analisi dei dati.

Consentono di analizzare in modo rapido e semplice dati aziendali caricati da sistemi operazionali quali i sistemi POS, i sistemi di gestione dell'inventario o i database di marketing o vendita. I dati possono passare attraverso un ODS (archivio dati operazionale) ed essere sottoposti a un processo di pulizia per garantirne la qualità prima di essere utilizzati per la generazione di report nel data warehouse.

A cosa servono i data warehouse?

I data warehouse sono utilizzati nella BI, nella reportistica e nell'analisi dei dati per estrarre e riassumere dati dai database operazionali. Informazioni difficili da ottenere direttamente dai database transazionali possono essere ottenute attraverso i data warehouse. Immaginiamo, ad esempio, che la direzione voglia conoscere il fatturato totale generato da ciascun venditore su base mensile per ogni categoria di prodotto. Questi dati potrebbero non essere stati acquisiti in un database transazionale, ma sono invece accessibili in un data warehouse.

ETL e ELT sul data warehouse

I processi ETL (Extract, Transform, Load) e ELT (Extract, Load, Transform) sono due modi diversi di trasformare i dati. I data engineer spesso utilizzano il processo ETL (estrazione, trasformazione, caricamento) per estrarre i dati da diverse sorgenti e spostarli nel data warehouse, dove possono facilmente pulirli e strutturarli. Nel processo ELT, invece, i dati vengono prima caricati nel warehouse nel loro formato originale, poi ripuliti e strutturati man mano che vengono elaborati.

Il processo ETL viene in genere eseguito in modo più centralizzato dai team di Data Engineering, in modo da applicare ai dati regole di pulizia e di conformità valide a livello dell'intera azienda. Il processo ELT implica che le trasformazioni vengano effettuate in una fase successiva, tipicamente più specifica del progetto o del team aziendale, per consentire l'analisi self-service.

Elaborazione delle transazioni (OLTP) vs. elaborazione analitica (OLAP)

Un sistema di elaborazione delle transazioni online (OLTP) acquisisce e conserva i dati transazionali in un database. Le transazioni coinvolgono singoli record del database composti da più campi o colonne. I database OLTP sono comunemente utilizzati in applicazioni come l'online banking, i sistemi ERP o la gestione dell'inventario e consentono rapidi aggiornamenti dei dati a livello di riga che vengono elaborati quasi istantaneamente.

Un sistema di elaborazione analitica online (OLAP) esegue query complesse su grandi quantità di dati storici, aggregati da database OLTP e altre fonti, per progetti di data mining, analisi e Business Intelligence. I data warehouse sono sistemi OLAP. I database OLAP e i data warehouse offrono ad analisti e figure decisionali la possibilità di utilizzare strumenti di reportistica personalizzati per trasformare i dati in informazioni e azioni. Il fallimento di una query su un database OLAP non interrompe o ritarda l'elaborazione delle transazioni per i clienti, ma può ritardare le informazioni di Business Intelligence o comprometterne l'accuratezza.

Data lake vs. data warehouse

Qual è la differenza tra un data lake e un data warehouse?

Data lake e data warehouse riflettono due approcci diversi alla gestione e all'archiviazione dei dati. 

Un data lake è un repository di dati non strutturati o semi-strutturati che consente di archiviare grandi quantità di dati grezzi nel loro formato originale. I data lake sono progettati per acquisire e memorizzare tutti i tipi di dati, strutturati, semi-strutturati o non strutturati, senza alcuno schema predefinito. I dati sono spesso archiviati nel loro formato nativo e non vengono puliti, trasformati o integrati, il che semplifica l'archiviazione e l'accesso a grandi quantità di dati.

Un data warehouse, invece, è un repository strutturato che memorizza dati provenienti da varie fonti in modo ben organizzato, con l'obiettivo di fornire un'unica fonte di verità per Business Intelligence e analitiche. I dati vengono puliti, trasformati e integrati in uno schema ottimizzato per l'interrogazione e l'analisi.

Qual è la differenza tra un data lake, un data warehouse e un data lakehouse?

Un data lakehouse è un approccio ibrido che combina il meglio delle due soluzioni. Si tratta di una moderna architettura di dati che integra le funzionalità di un data warehouse e di un data lake in una piattaforma unificata. Consente l'archiviazione di dati grezzi nel loro formato originale, come un data lake, e fornisce al contempo funzionalità di elaborazione e analisi dei dati, come un data warehouse.

In sintesi, la differenza principale tra un data lake, un data warehouse e un data lakehouse è il rispettivo approccio alla gestione e all'archiviazione dei dati. Un data warehouse archivia dati strutturati in uno schema predefinito, un data lake archivia dati grezzi nel loro formato originale, mentre un data lakehouse è un approccio ibrido che combina le funzionalità di entrambi.

 Data lake

Data lakehouse

data warehouse

Tipi di dati

Tutti i tipi: dati strutturati, semi-strutturati, non strutturati (grezzi)

Tutti i tipi: dati strutturati, semi-strutturati, non strutturati (grezzi)

Solo dati strutturati

Costo

$$$$$

Formato

Formato aperto

Formato aperto

Formato chiuso e proprietario

Scalabilità

Può espandersi per contenere, a basso costo, qualsiasi quantità di dati, indipendentemente dalla tipologia

Può espandersi per contenere, a basso costo, qualsiasi quantità di dati, indipendentemente dalla tipologia

L'espansione diventa esponenzialmente più costosa a causa dei costi dei fornitori

Utenza prevista

Limitata: data scientist

Unificata: analisti di dati, data scientist, ingegneri machine learning

Limitata: analisti di dati

Affidabilità

Qualità bassa, paludi di dati

Qualità elevata, dati affidabili

Qualità elevata, dati affidabili

Facilità d'uso

Difficile: l'esplorazione di grandi quantità di dati grezzi può risultare difficile in assenza di strumenti per organizzarli e catalogarli

Semplice: combina la semplicità e la struttura di un data warehouse con la casistica d'uso più ampia di un data lake

Semplice: la struttura di un data warehouse consente agli utenti di accedere rapidamente e facilmente ai dati per la reportistica e l'analisi

Prestazioni

Basse

ElevateElevate

Un data lake può sostituire un data warehouse?

Un data lake e un data warehouse sono due approcci diversi alla gestione e all'archiviazione dei dati, ciascuno con i propri punti di forza e le proprie debolezze. Sebbene un data lake possa integrare un data warehouse fornendo dati grezzi per analisi avanzate, non può sostituirlo completamente nelle sue funzioni tradizionali. Un data lake e un data warehouse possono invece completarsi a vicenda: in questo caso, il data lake fungerà da fonte di dati grezzi per analisi avanzate, mentre il data warehouse fornirà una fonte strutturata, organizzata e affidabile di dati aziendali per il reporting e l'analisi.

Un data lakehouse può sostituire un data warehouse? 

Un data lakehouse, d'altro canto, è una moderna architettura di dati che combina i vantaggi di un data warehouse e di un data lake in una piattaforma unificata. Un data lakehouse può sostituire un data warehouse tradizionale perché combina in una singola piattaforma le funzionalità di un data lake e quelle di un data warehouse.

Un data lakehouse consente l'archiviazione di dati grezzi nel loro formato originale, come un data lake, e fornisce al contempo funzionalità di elaborazione e analisi dei dati, come un data warehouse. Inoltre, opera secondo un approccio di tipo "schema-on-read", che consente una certa flessibilità nell'elaborazione e nell'interrogazione dei dati. La combinazione di un data lake e di un data warehouse in un'unica piattaforma rappresenta una soluzione più flessibile, scalabile ed economicamente vantaggiosa.

Qual è la differenza tra un data lake e un database?

Un database è un repository strutturato che archivia i dati in uno schema predefinito, ottimizzato per l'elaborazione transazionale e le applicazioni aziendali. I database sono progettati per gestire dati strutturati e fornire funzionalità di interrogazione ed elaborazione dei dati veloci, efficienti e affidabili. Operano secondo un approccio di tipo schema-on-write, il che significa che i dati devono essere strutturati e definiti prima di poter essere archiviati nel database. I database sono spesso utilizzati in applicazioni come il commercio elettronico, i servizi bancari e la gestione dell'inventario, dove l'elaborazione transazionale è fondamentale per l'attività aziendale.

Un data lake è un repository di dati non strutturati o semi-strutturati progettato per acquisire e archiviare tutti i tipi di dati nel loro formato originale, strutturato, semi-strutturato o non strutturato, senza alcuno schema predefinito. I dati memorizzati nel loro formato nativo spesso non vengono puliti, trasformati o integrati, il che semplifica l'archiviazione e l'accesso a grandi quantità di dati. I data lake sono spesso utilizzati per applicazioni analitiche e di machine learning avanzate, in cui l'esplorazione e la scoperta dei dati sono fondamentali per acquisire informazioni e costruire modelli predittivi.

Qual è la differenza tra data lake ed ETL?

Data lake ed ETL (estrazione, trasformazione, caricamento) sono due concetti diversi legati alla gestione e all'integrazione dei dati. La differenza principale è che un data lake è un repository centralizzato per l'archiviazione e l'elaborazione di grandi quantità di dati grezzi, mentre ETL è un processo per estrarre dati da più fonti per poi trasformarli e caricarli in un unico repository di destinazione. Un data lake consente l'archiviazione e l'elaborazione di tutti i tipi di dati, senza alcuno schema predefinito, mentre ETL è tipicamente utilizzato per integrare dati strutturati in uno schema predefinito.

Vantaggi dei data warehouse

  • Consolidare i dati ottenuti da molte fonti, fungendo da unico punto di accesso per tutti i dati, eliminando così la necessità per gli utenti di collegarsi a decine o addirittura centinaia di archivi di dati individuali.
  • Intelligenza storica. Un data warehouse integra dati provenienti da molte fonti per mostrare i trend nel tempo.
  • Separare l'elaborazione analitica dai database transazionali, migliorando le prestazioni di entrambi i sistemi.
  • Qualità, coerenza e accuratezza dei dati. I data warehouse utilizzano un set di semantiche standard per i dati, tra cui coerenza nelle convenzioni di denominazione, codici per i vari tipi di prodotto, lingue, valute e così via.

Problemi dei data warehouse

  • Assenza di supporto per dati non strutturati come immagini, testo, dati IoT o framework di messaggistica come HL7, JSON e XML. I data warehouse tradizionali sono in grado di archiviare solo dati puliti e altamente strutturati, anche se, secondo le stime di Gartner, fino all'80% dei dati di un'organizzazione sono non strutturati. Le organizzazioni che vogliono utilizzare i propri dati non strutturati per sbloccare la potenza dell'AI devono trovare altre soluzioni.
  • Nessun supporto per AI e machine learning. I data warehouse sono costruiti e ottimizzati per i carichi di lavoro DWH più comuni, come reportistica storica, BI e interrogazioni; non sono mai progettati o pensati per supportare carichi di lavoro di machine learning.
  • Solo SQL. I DWH non offrono in genere alcun supporto per Python o R, i linguaggi preferiti da sviluppatori di app, data scientist e ingegneri di machine learning.
  • Dati duplicati. Molte imprese hanno, oltre a un data lake, dei data warehouse e dei data mart strutturati per aree tematiche o unità aziendali. Ciò comporta la duplicazione dei dati, molti processi ETL ridondanti e l'assenza di una singola fonte di verità.
  • Difficile da mantenere sincronizzato. La necessità di mantenere sincronizzate due copie dei dati tra il data lake e il data warehouse aggiunge complessità e fragilità difficili da gestire. La deriva dei dati può causare report incoerenti e analisi errate.
  • I formati chiusi e proprietari aumentano la dipendenza dal fornitore. La maggior parte dei data warehouse aziendali utilizza un formato di dati proprietario, piuttosto che formati basati su standard aperti e open-source. Questo aumenta la dipendenza dal fornitore, rende difficile o impossibile l'analisi dei dati con altri strumenti e complica la migrazione .
  • Costoso. I data warehouse commerciali richiedono il pagamento di un corrispettivo sia per l'archiviazione dei dati, sia per la loro analisi. I costi di archiviazione e di elaborazione restano quindi strettamente collegati. Separare l'elaborazione dallo stoccaggio con un data lakehouse permette di scalare entrambe le attività in modo indipendente, in base alle proprie necessità.

Come i data lakehouse risolvono questi problemi

Come i lakehouse risolvono questi problemi

Le architetture lakehouse risolvono proprio questi problemi per offrire il meglio di data lake e warehouse. Scopri il valore di un'architettura lakehouse aperta su Databricks.

Databricks Lakehouse per il data warehousing

Architettura della Databricks Lakehouse Platform

Per costruire un data lakehouse di successo, le organizzazioni si sono rivolte a Delta Lake, un layer di gestione dei dati e di governance open-source e in formato aperto che combina il meglio di data lake e data warehouse. Databricks Lakehouse Platform utilizza Delta Lake per darti:

  • Prestazioni di data warehouse da record al costo di un data lake.
  • Elaborazione SQL serverless che elimina le necessità di gestione dell'infrastruttura.
  • Integrazione perfetta con moderni stack di dati, come dbt, Tableau, PowerBI e Fivetran, per acquisire, interrogare e trasformare i dati in loco.
  • Un'esperienza di sviluppo SQL di prim'ordine per tutti i professionisti dei dati della tua organizzazione con supporto ANSI-SQL.
  • Governance granulare con provenienza dei dati, tag a livello di tabella/fila, controllo degli accessi per ruoli e altro ancora.

Risorse aggiuntive

Torna al Glossario