Una modern data platform per gli analytics su infrastruttura Google

A causa del proliferare delle nuove sorgenti dati, ma anche per via del cambiamento in atto riguardante le necessità di fruizione dei dati, si rende sempre più necessaria una modern data platform. Diverse sono le soluzioni possibili: in questo articolo, per esempio, abbiamo parlato di Microsoft Azure. Ma è possibile costruire una modern data platform anche attingendo dal colosso della fornitura di servizi online, l’azienda che ha fatto dei dati il vero, nuovo petrolio: Google.

Google permette, tramite l’adozione di alcune componenti specifiche, la costruzione di una modern data platform per gli analytics che rispecchi in pieno le reali necessità dell’azienda. E tuttavia le componenti disponibili sono molte: per non rischiare di scegliere quelle sbagliate, è opportuno avere chiaro cosa, innanzitutto, deve poter fare una modern data platform.

Una architettura moderna per gli analytics deve infatti essere:

  • scalabile
  • in grado di separare la parte di computazione dallo storage
  • cloud, per mantenere aderenza alle necessità più a lungo

Una modern data platform deve inoltre integrare il concetto di datawarehouse e di datalake. A questo proposito, è necessario che contenga tutti i tool e servizi per le principali fasi di vita del dato:

  • ingestion:
    • batch
    • realtime / streaming
  • storage
  • trasformazione
  • query /processing

 

I vantaggi del cloud per una modern data platform

Fino a qualche anno fa, realizzare un datalake on premise e collegarlo a un datawarehouse richiedeva notevoli competenze tecniche e un importante investimento in termine di hardware e server di cui dotarsi. I servizi in cloud hanno di gran lunga semplificato questa parte. Google, per esempio, contiene tutte le componenti per costruire una modern data platform che supporti datawarehouse, datalake, datascience, scenari realtime, iot, e altri servizi analytics. Anzi, su molti aspetti offre più di una soluzione per lo stesso problema e questo all’inizio può disorientare. Per esempio, sul tema dell’ingestion e trasformazione del dato Google offre: dataproc, dataprep, dataflow, fusion e si può optare anche per delle query SQL su BigQuery.

Per non rischiare di adottare servizi inutili o ridondanti, è suggeribile partire con un’architettura semplice ma completa, e farla evolvere man mano che si impara a conoscere l’ecosistema Google in termini di selezione delle componenti più adatte agli use case aziendali, ma anche in termini di sizing e costo. Cosa, quest’ultima, che su cloud significa imparare in parte un nuovo modo di lavorare.

La base degli analytics in ottica moderna sono  il datalake e il cloud datawarehouse

La base degli analytics in google è Bigquery: adatto sia come query engine per il datalake (bigdata) che per il cloud datawarehouse.

Poniamoci come primo obiettivo quello di realizzare un datalake e un cloud datawarehouse con la piattaforma google che sia in grado di gestire situazioni “standard” con le quali intendiamo trattare una mole dati dell’ordine delle decine di terabyte.  La buona notizia è che Bigquery è lo strumento ideale per questo scopo: copre sia l’aspetto cloud datawarehouse che query sul datalake.

In uno scenario iniziale accontentiamoci di portare i dati in modalità batch (la realtime sarà una evoluzione naturale se necessaria ed è ampiamente supportata). Per memorizzare i dati del datalake la scelta migliore (in ottica di crescita e costo) è memorizzarli su bucket di Google cloud storage (file system cloud distribuito). Il costo è minimo in scrittura, in lettura e in persistenza; la crescita è pressoché illimitata.

Ora bisogna portare i dati dalle sorgenti allo storage, e qui il consiglio è fare un piccolo sforzo in più usando dataflow. Questo servizio è altamente scalabile e performante , inoltre supporta lo streaming e il realtime in ottica evolutiva. In questo modo, quando ce ne sarà bisogno, non dovremo cambiare o affiancare un altro servizio nella parte di ingestion.

Ora il dato è su storage nella sua forma nativa e necessita di una serie di trasformazioni per poter essere utilizzato. Di solito il datalake viene suddiviso in zone in base alla qualità del dato e agli utenti a cui sono dedicate (curated -> analisti / published -> business, DW, sistemi di BI).

Per tutte queste trasformazioni, in casa Google esistono tool grafici (fusion, dataprep) ma come tool ad uso del reparto IT per iniziare si consiglia di fare queste trasformazioni con statement SQL da eseguire in bigquery. Sono molto performanti e permettono di coinvolgere risorse con skill SQL per la fase di ELT. Inoltre rendono semplice il versioning in Git.

Ora bisogna schedulare e mettere in ordine questi passaggi affinché il datalake e il cloud datawarehoue siano aggiornati con la cadenza richiesta. Anche qui Google offre diverse possibilità. Si consiglia di usare Cloud Composer (basato su airflow): più complesso di Cloud Run, ma più completo : supporta tutti gli scenari futuri che si potranno incontrare. Inoltre vanta un gran numero di librerie ed è conosciuto da molti data engineer con skill Python.

Infine, la cosa più importante: gli standard di progetto. A partire dalle basi come naming convention, definizione delle zone dati della data platform fino alla governance e alla quality. Tutto questo all’interno di una roadmap che traguardi le evoluzioni a 24 mesi.  Sono gli ingredienti fondamentali nel successo a lungo termine di queste iniziative.

Tag