Azure Data Factory: cos’è e come usarlo

Spostare, trasformare, elaborare e distribuire dati aziendali da diverse fonti con un unico, comodo strumento

Cosa troverai in questo articolo

  • Cos’è Azure Data Factory
  • Come funziona
  • ETL (Extract, Transform and Load)
  • Come funzionano gli Azure Data Factory Connectors
  • I connettori più comuni utilizzati in ambito aziendale
  • Un esempio pratico: tre step per creare una Data Factory Azure
  • Pricing di Azure Data Factory
Azure Data Factory: cos’è e come usarlo

Cos’è Azure Data Factory?

Azure Data Factory è il servizio dedicato allo spostamento, integrazione e distribuzione dei dati (Data Integration Service) offerto dalla piattaforma di cloud computing Microsoft Azure.

Una delle problematiche più grandi per un’azienda è il dover gestire una grande quantità di dati provenienti da diverse fonti, che possono includere database relazionali, dati basati su file, dati in servizi cloud, nonché dati provenienti da diverse fonti esterne difficilmente comunicanti tra di loro.

Spesso i processi di spostamento, gestione e distribuzione di questi dati possono richiedere a sviluppatori e data analyst aziendali sforzi supplementari per implementare soluzioni ad hoc, con tempi di sviluppo nettamente più lunghi e costi di progettazione e gestione più elevati. 

Data Factory Azure rende questo processo molto più semplice e veloce e consente agli utenti di muovere, trasformare e caricare dati da diverse fonti in modo scalabile e affidabile senza problemi legati a questioni di compatibilità e senza la necessità di dover compilare codice dedicato per ogni operazione.

Come funziona Azure Data Factory?

Andiamo a vedere in linea generale il funzionamento di Data Factory prima di osservarne le caratteristiche un po’ più nel dettaglio.

Il servizio fornisce strumenti visivi intuitivi basati su un’interfaccia Drag&Drop e dà la possibilità di eseguire una serie di operazioni di trasformazione, come unione, filtraggio, aggregazione e trasformazioni personalizzate, per preparare i dati per l'analisi o il caricamento in una destinazione senza problemi legati alla compatibilità delle singole fonti dati.

Attraverso strumenti di monitoraggio e gestione che consentono di osservare l’andamento dell’esecuzione dei flussi di lavoro è possibile identificare eventuali problemi o anomalie e ottimizzarne immediatamente le prestazioni.
Azure Data Factory fornisce inoltre diverse funzionalità di sicurezza, tra cui l'integrazione con Azure Active Directory per l'autenticazione e l'autorizzazione, la crittografia dei dati a riposo e in transito e il controllo degli accessi basato sui ruoli (RBAC) per gestire l'accesso ai dati e alle pipeline.

L'integrazione dei dati, come abbiamo già visto coinvolge la raccolta di questi ultimi da una o più fonti e successivamente la loro pulitura, trasformazione o arricchimento con dati aggiuntivi. Infine, i dati combinati vengono memorizzati in un servizio di piattaforma dati che si occupa del tipo di analisi che vogliamo eseguire.

Questo processo può essere automatizzato da Azure Data Factory in una configurazione nota come Extract, Transform, and Load (Estrazione, Trasformazione e Caricamento o ETL). Vediamo cosa comprende ognuno di questi tre passaggi.

Extract (Estrazione)

Le imprese dispongono di dati di vari tipi, come dati strutturati, non strutturati e semi-strutturati.

Il primo passaggio da effettuare consiste nel raccogliere tutti i dati da diverse fonti e successivamente spostare i dati in una posizione centralizzata per il successivo trattamento, configurando le connessioni con le fonti dati a cui si vuole accedere. Azure Data Factory offre connettori preconfigurati per una vasta gamma di fonti di dati e andremo a vederle più da vicino nella prossima sezione.

Si continua poi definendo le attività o le pipeline all'interno di Azure Data Factory. Un'attività può essere un'azione singola, come il caricamento di un file CSV all’interno di un database, mentre una pipeline è una serie di attività collegate in un flusso di lavoro.

Transform (Trasformazione)

Una volta stabilite le connessioni alle fonti di dati, si possono creare attività di movimento e trasformazione dei dati all'interno delle pipeline.
Le operazioni possibili includono la combinazione, la suddivisione, l'aggiunta, la derivazione, la rimozione o la copia dei dati da una fonte all'altra, la trasformazione dei dati utilizzando mapping e regole di business e l'esecuzione di query SQL su database relazionali. Possiamo ad esempio utilizzare l'Attività di Copia in un data pipeline per spostare i dati sia dalle origini cloud che dai repository dati locali a un deposito dati centralizzato nel cloud.

Si può anche pianificare l'esecuzione delle pipeline in momenti predefiniti o in risposta a eventi specifici, garantendo che i dati siano sempre aggiornati e disponibili quando necessario agli utenti e monitorarne l'esecuzione tramite Azure Monitor, PowerShell, API, registri di Azure Monitor e pannelli di stato nel portale di Azure, raccogliendo informazioni sui risultati, visualizzando eventuali errori o avvisi e analizzando le prestazioni complessive del flusso di lavoro.

Azure Data Factory supporta anche attività esterne per eseguire le nostre trasformazioni su servizi di elaborazione come Spark, HDInsight Hadoop, Machine Learning e Data Lake Analytics.

Sai che aiutiamo i nostri clienti nella gestione dei loro tenant Azure?

Abbiamo creato il team interno Infra& Security, verticale sul cloud Azure per rispondere meglio alle esigenze dei nostri clienti che ci coinvolgono nelle decisioni tecniche e strategiche.

Oltre a configurare e gestire il tenant, ci occupiamo anche di:

  • ottimizzazione dei costi delle risorse
  • implementazione procedure di scaling e high availability
  • creazione dei deployment applicativi tramite le pipelines di DevOps
  • monitoring
  • e soprattutto security!

Con Dev4Side Software, puoi avere un partner affidabile in grado di supportarti sull'intero ecosistema applicativo di Microsoft.

Load (Caricamento)

Completata l'esecuzione delle pipeline, i dati elaborati possono essere consegnati alla destinazione desiderata, come un database, un data warehouse o un servizio cloud. Gli utenti possono quindi utilizzare questi dati per analisi, reporting, sviluppo di applicazioni e altre finalità aziendali.

Durante un caricamento, molte destinazioni Azure possono accettare dati formattati come un file, json o blob.
Azure Data Factory offre inoltre un supporto completo per CI/CD (integrazioni e distribuzioni continue) delle nostre pipeline dati utilizzando GitHub e Azure DevOps.

L'integrazione continua (CI) consiste nell'integrazione frequente e automatica delle modifiche al codice in un repository condiviso. La distribuzione continua (CD) è un processo in due parti durante il quale le modifiche al codice vengono integrate, testate e distribuite.

Cosa si intende con “orchestrazione”?

Con orchestrazione ci si riferisce al processo di coordinare e gestire l'esecuzione dei flussi di lavoro dati. Questo coinvolge la programmazione e il controllo delle attività all'interno delle pipeline, garantendo che vengano eseguite nel giusto ordine e con la giusta sequenza temporale.

L'orchestratore di Azure Data Factory si occupa dell'esecuzione delle attività all'interno delle pipeline. Ciò include il coordinamento delle attività di estrazione, trasformazione e caricamento dei dati, nonché la gestione delle dipendenze tra di esse.

A volte Data Factory istruirà un altro servizio ad eseguire il lavoro effettivo richiesto per suo conto, come ad esempio Databricks per eseguire una query di trasformazione. Il servizio orchestrerà quindi l'esecuzione della query e preparerà le pipeline per spostare i dati sulla destinazione o al passaggio successivo.

L'orchestratore assicura che quindi che i dati siano elaborati in modo corretto e coerente, permettendo anche di pianificare l'esecuzione in base a una varietà di trigger, come un orario specifico, un evento o un trigger basato su specifici dati.

Come funzionano gli Azure Data Factory Connectors

I connectors (o connettori) in Azure Data Factory sono componenti software progettati per semplificare e facilitare l'integrazione dei dati che consentono di connettersi e interagire con una vasta gamma di servizi e piattaforme dati, sia all'interno che all'esterno di Azure.

In poche parole essi fungono da ponte tra Data Factory e le diverse fonti e destinazioni e permettono di acquisire dati da fonti esterne, come database, file, servizi cloud, applicazioni software e di caricare i dati in destinazioni desiderate o viceversa.

Il servizio fornisce circa 100 connettori e risorse robuste sia per gli utenti basati su codice che per quelli senza codice, per soddisfare le loro esigenze di trasformazione e spostamento dei dati.

I connettori più utilizzati in ambito aziendale

Data quindi una breve definizione di che cosa sono i connettori, andiamo a vedere insieme quali sono le tipologie disponibili più utilizzate in Azure Data Factory nell’ambito della gestione e del trattamento dati aziendale.

Connettività ai database relazionali

Azure Data Factory offre una vasta gamma di connettori per i database relazionali, tra cui SQL Server, MySQL, Oracle, PostgreSQL e altri. Questo consente ad Azure Data Factory di connettersi direttamente ai database relazionali e di eseguire operazioni come l'estrazione di dati, l'esecuzione di query, l'aggiornamento e l'inserimento di dati.
Si potrebbe ad esempio utilizzare il connettore SQL Server di Data Factory per estrarre automaticamente dati da una tabella specifica nel database SQL Server aziendale e caricarli in un magazzino dati Azure SQL Data Warehouse per poter in seguito effettuare analisi ulteriori.

Integrazione con l’archiviazione di file

Diversi sono i connettori supportati da Data Factory per l'archiviazione di file. Alcuni esempi possono essere Azure Blob Storage, Azure Data Lake Storage e il file system locale (assicurandosi che siano raggiungibili da Azure). Tra le diverse opzioni a nostra disposizione possiamo, ad esempio, accedere ai file archiviati in queste piattaforme e di eseguire operazioni come la lettura e la scrittura di file e l'elaborazione di dati strutturati e non strutturati.

Supponiamo di dover elaborare e unire dati provenienti da diversi file CSV memorizzati in Azure Blob Storage. Con Data Factory sarebbe possibile definire un flusso di lavoro che legge questi file, esegue operazioni di trasformazione come l'unione dei dati e infine li carica in un database SQL di Azure per l'analisi.

Interazione con i servizi cloud di Microsoft Azure

Azure Data Factory è nativamente integrato con i servizi cloud di Microsoft Azure, tra cui possiamo citare Azure SQL Database, Azure Cosmos DB, Azure Table Storage, consentendogli di interagire direttamente con questi servizi e dare agli utenti la possibilità di eseguire operazioni come il trasferimento e l'elaborazione di dati e l'integrazione con altre soluzioni offerte dalla piattaforma Azure.

Prendiamo a titolo di esempio l'utilizzo del connettore per Azure Cosmos DB al fine di eseguire l'elaborazione periodica dei dati memorizzati in un database NoSQL di Cosmos DB. Questo consentirebbe di definire un flusso di lavoro volto a estrarre i dati da Cosmos DB, eseguire operazioni di trasformazione e caricarli su una piattaforma di analisi di dati come Azure Synapse Analytics.

Accesso alle applicazioni software (via API)

Azure Data Factory offre connettori per molte applicazioni software popolari non solo di ambiente Microsoft, come Dynamics 365 ma anche con altre app come Salesforce e Google Analytics, dando modo di accedere direttamente ai dati memorizzati in queste applicazioni e di eseguire operazioni come l'estrazione di dati, l'aggiornamento delle risorse e la sincronizzazione dei dati tra applicazioni senza la necessità di sviluppare soluzioni di connessione da sé.

Se ad esempio vogliamo integrare i dati provenienti da un sistema di gestione dei clienti come Salesforce con il nostro ambiente di analisi dei dati in Azure possiamo, utilizzando il connettore Salesforce in Data Factory, definire un flusso di lavoro che estrae automaticamente i dati dai moduli Salesforce, trasformarli secondo le nostre necessità e caricarli poi in un data lake di Azure.

Supporto per i protocolli di trasferimento dati

Infine, Azure Data Factory supporta anche vari protocolli di trasferimento dati, tra cui FTP, SFTP e HTTP dando modo di trasferire dati da e verso sistemi esterni tramite questi protocolli e permettendo di integrare facilmente dati provenienti da diverse fonti e sistemi.

Ad esempio, potresti utilizzare un connettore SFTP (Secure File Transfer Protocol) in Azure Data Factory per estrarre file da un server SFTP di terze parti, come quelli utilizzati dai fornitori di dati esterni. Questo connettore permette di definire un flusso di lavoro che recupera automaticamente i file, li elabora secondo le specifiche richieste e li carica in un sistema di analisi aziendale.

Un esempio pratico di come creare una Data Factory Azure

Passiamo adesso a vedere insieme un esempio pratico di come si crea una Data Factory Azure per toccare con mano la sua rapidità e facilità d’utilizzo andando a integrare dati da un database SQL Server locale in un magazzino dati Azure SQL.

Creazione della risorsa

Per cominciare accediamo al portale di Azure utilizzando il nostro account. Se non si ha un account non c’è nulla di cui preoccuparsi dato che basteranno pochi semplici click per crearne uno gratuitamente.
Andiamo sul menù del portale e clicchiamo su “Crea una risorsa”.

Selezioniamo poi “Analitics” e nell’elenco dei servizi di analisi cerchiamo Azure Data Factory e facciamo clic su di esso.

Facciamo clic su “Crea” e arriveremo alla pagina di compilazione dei dettagli di base. Qui andiamo a inserire i dettagli richiesti nei campi presenti come nome, sottoscrizione, gruppo di risorse, e area. Una volta completato, clicchiamo su “Configurazione Git”.

Selezioniamo poi l'opzione per configurare l'integrazione con un repository Git per gestire il codice delle pipeline. Una volta terminato facciamo clic su "Avanti".

Andiamo alla pagina “Rete”, verifichiamo le impostazioni predefinite e, se necessario, apportiamo le eventuali modifiche alle autorizzazioni e alle regole di rete in base a quelle che possono essere le nostre esigenze.

Nella pagina “Rivedi e crea” verifichiamo le impostazioni e i dettagli della nostra Data Factory e quando saremo soddisfatti del risultato finale, facciamo infine clic su “Crea” per avviare la creazione della nostra risorsa.

Attivazione dell’interfaccia utente

Una volta creata la nostra risorsa, facciamo clic su “Vai alla risorsa” e selezioniamo “Avvia Studio” per accedere all’interfaccia utente di Azure Data Factory in una tab separata.

Qui potremo configurare le pipeline di dati per estrarre i dati dal database SQL Server locale e caricarli nel magazzino dati Azure SQL.
Possiamo definire utilizzando i componenti visivi disponibili le attività di copia, trasformazione e caricamento dei dati come, ad esempio, l’estrazione di dati da un database SQL Server, la trasformazione dei dati utilizzando Azure Databricks o il caricamento di dati da file locali in Azure SQL Data Warehouse.

Verifica e ottimizzazione

Infine, apportate tutte le migliorie e le correzioni necessarie alle configurazioni definite in precedenza e dopo esserci assicurati che le pipeline siano state organizzate correttamente, avviamo il monitoraggio delle attività e dei flussi di lavoro per garantire che tutto continui a funzionare come previsto.

Come si può osservare la rapidità e semplicità di esecuzione dei procedimenti sopraelencati, ripetibili a piacere per qualsiasi altro tipo di operazione simile, è estrema e permette a utenti e aziende il massimo risparmio di tempo e risorse nella gestione e nel movimento dei propri dati.

Pricing di Azure Data Factory

Il sistema di pricing di Azure Data Factory adotta un modello di pagamento basato sull’utilizzo effettivo del servizio, in cui gli utenti pagano per le risorse di calcolo e di archiviazione usate durante l'esecuzione delle pipeline di dati, l’orchestrazione ed esecuzione delle suddette pipeline e l’esecuzione e debug dei flussi di dati.

I costi sono calcolati automaticamente in base ai minuti di esecuzione delle attività, alle unità di integrazione dati utilizzate (e in base al tipo di calcolo effettuato) e allo spazio di archiviazione occupato dai dati (e alla classe di archiviazione utilizzata).
Alcuni connettori e risorse esterne utilizzati e l'utilizzo di servizi cloud esterni come Azure SQL Database o Azure Blob Storage possono comportare costi aggiuntivi in base all'utilizzo fatto e alle tariffe del servizio.

È importante tenere presente che i costi effettivi possono variare in base alle tariffe in vigore, all'utilizzo effettivo e ad altri fattori specifici del caso d'uso. Consigliamo quindi di approfondire consultando la documentazione ufficiale di Azure.

Da segnalare anche la possibilità di utilizzare il comodo strumento di calcolo dei costi di Azure offerto da Microsoft (che trovate subito qui)  per stimare i costi specifici per la propria azienda in base ad area geografica, valuta utilizzata per il pagamento e tempo d’impiego di ognuno dei servizi usufruibili (calcolabile per ore o per mesi) e trovare la soluzione d’impiego più adatta per le proprie esigenze.

Scopri perché scegliere il team

Infra & Sec

Il team Infra & Security è verticale sulla gestione ed evoluzione dei tenant Microsoft Azure dei nostri clienti. Oltre a configurare e gestire il tenant, si occupa della creazione dei deployment applicativi tramite le pipelines di DevOps, monitora e gestisce tutti gli aspetti di sicurezza del tenant, supportando i Security Operations Centers (SOC).