Comparativa

Database, framework e tool, ecco i dieci più diffusi in commercio

La gestione e l’analisi dei dati sono sempre più centrali sia per le aziende sia per lo sviluppo delle Intelligenze artificiali; orientarsi tra la vasta offerta del mercato può essere complicato. Analizziamo le soluzioni più diffuse

Pubblicato il 21 Ott 2022

Data Wrangling, cos’è e perché è importante

Spark o Hadoop? Cluster o installazione singola? SQL o noSQL? E poi, ancora, come istruire processi di machine learning? E come visualizzare i dati? Sono tra le domande più ricorrenti e prevedono risposte che non possono essere univoche, perché ogni linguaggio, ogni framework e ogni strumento hanno caratteristiche e prerequisiti che meglio si adattano a scenari particolari. Passiamo in rassegna alcune tecnologie per database, framework, middleware e tool per la visualizzazione dei dati che soddisfano tutte le esigenze nella loro trasversalità.

Database, framework, tool

Un percorso che tocca diverse tappe: dalla generazione dei dati alla loro archiviazione, all’analisi e alla visualizzazione. Raccogliere i dati è semplice, fare uso delle tecnologie più adatte per dare loro un valore e un senso è argomento più vasto e complesso.

Apache Spark

Nel comparto dell’Open source è uno dei framework più gettonati, un motore di analisi dei dati versatile che può essere usato anche per il machine learning. Può essere eseguito in ambienti Windows e in ambienti UNIX-like tra i quali figurano, solo per citarne alcuni, Arch Linux, Debian, macOS, NetBSD, OpenSolaris, Sun OS e altri ancora. Spark lavora sia in real-time sia in batch e consente l’uso di diversi linguaggi di programmazione, offrendo un supporto nativo per Python, SQL, Scala e R, oltre a Java che ha una lunga tradizione legata ai Big data e che, gradualmente, si sta ritagliando un posto da protagonista. Con T-SQL gli amanti dello Structured Query Language possono interrogare tabelle Spark, a ulteriore dimostrazione di una versatilità che si estende anche all’uso Spark nell’integrazione con Microsoft SQL.

La versatilità di Spark è dimostrata anche dai linguaggi di programmazione che supporta: se Python è più orientato ai programmatori e agli sviluppatori, R è maggiormente usato da accademici e ricercatori.

La scalabilità è una delle filosofie di Apache Spark che, sul fronte dell’analisi permette di esplorare petabyte di dati senza dovere ricorrere al sotto-campionamento e, sul fronte del machine learning, è possibile trasformare dati, creare modelli di apprendimento e proof of concept con Python, Scala o Spark SQL. Modelli che possono essere esercitati in un ambiente locale e poi adattati a strutture in cluster che possono comprendono centinaia di nodi.

Database, framework e tool,

Apache Hadoop

Apache Hadoop, altro framework Open source, è pensato per permettere alle applicazioni di lavorare con ingenti quantità di dati (nell’ordine dei petabyte) su cluster con migliaia di nodi.

Non è un prodotto in concorrenza con Spark, tra le differenze sostanziali figura la modalità di lavoro: mentre Spark consente di elaborare dati in modalità interattiva, Apache Hadoop ha tempi di latenza più alti ed è indicato per i processi batch. Non è raro che questi due sistemi distribuiti lavorino insieme, seppure in simbiosi. Tra le esigenze a cui Hadoop dà maggiore risposta c’è la sicurezza, giacché supporta Ldap e Access control list. Altro aspetto che può fare propendere verso una scelta piuttosto che un’altra è il fatto che Hadoop non necessita di hardware particolarmente costoso ed è un vantaggio quando si tratta di archiviare, gestire ed elaborare grandi quantità di dati. Occorre tenere presente che, forse più che per ogni altro framework, installare Hadoop (anche in cluster) è facile, farne buon uso per l’elaborazione dei dati è un discorso completamente diverso.

Database, framework e tool

Apache Hive

Un database costruito su Hadoop che offre funzioni di interrogazione e analisi di Big data archiviati nei file system distribuiti HDFS e altri compatibili come, per esempio AWS3. È stato pensato per le operazioni batch su grandi moli di dati, una delle due caratteristiche principali che smarcano Apache Hive dai database relazionali tradizionali i quali, lavorano prettamente con query interattive che rendono al meglio con database di dimensioni contenute. Grazia ad HiveQL, un’interfaccia che richiama quella nota a chi usa SQL, permette anche a chi non ha diretta familiarità con Hive o con la programmazione in generale di trovarcisi a proprio agio. Un’altra proprietà interessante è HCatalog, un sistema di gestione delle tabelle che permette di fare uso delle stesse strutture di dati di Hive con framework per la suddivisione delle capacità computazionali attraverso i nodi di un cluster (MapReduce è tra i più noti).

Database, framework e tool

MySQL

Rimanendo sempre nell’ambito dell’Open source, MySQL rappresenta un pilastro della gestione dei database relazionali. Si è guadagnato il favore degli sviluppatori grazie alla sua affidabilità, la facilità d’uso e la rapidità nelle applicazioni “stop-and-go”. Offre anche il vantaggio di potere gestire miliardi di record se le tabelle sono indicizzate nel modo ottimale e le query sono scritte in modo appropriato. Il rapporto tra MySQL e i Big data è da tempo argomento di discussione. In realtà hanno ragione e torto in uguale misura sia i detrattori sia i sostenitori: se si parte dal presupposto che l’elaborazione e l’analisi dei dati necessitano di velocità di trasferimento di ingenti quantità di dati, MySQL può non essere la migliore soluzione. Per questo motivo è stato sviluppato MySQL NDB Cluster che rende più rapida l’elaborazione dei dati e, dopo averli acquisiti, possono essere organizzati nel filesystem Hadoop (HDFS), trasferimento reso possibile da Apache Sqoop. La capacità di elaborazione di Hadoop riesce quindi a compensare le (tutt’oggi presunte) debolezze di MySQL in materia di Big data.

Database, framework e tool

MySQL Workbench

È il tool grafico mediante il quale progettare, amministrare e migrare database MySQL. Usato anche per lo sviluppo SQL, ha il vantaggio di permettere la gestione di database remoti. Non è una novità, sostituisce DBDesigner4 e, al pari di MySQL, può essere installato in ambienti Ubuntu, Red Hat, Windows e macOS. È strumento gradito anche agli amministratori di database, soprattutto quando operano su database remoti, tant’è che Microsoft ne ha implementato l’uso su Azure.

Molti database offrono un’interfaccia grafica per la l’amministrazione, esiste un mercato di applicazioni che offrono un solo ambiente grafico attraverso il quale gestire database di diversi produttori, segno questo che i tool visuali sono diffusi a prescindere dalla tecnologia in uso.

Database, framework e tool

MongoDB

È considerata la migliore soluzione tra i Dbms NoSQL, i database non relazionali e basati su documenti Json invece della classica struttura a tabelle dei database relazionali. I database Json memorizzano i dati sotto forma di oggetti e sono più duttili e veloci rispetto a quelli SQL e, questo, ha contribuito a fare guadagnare posizioni a MongoDB nel mondo dei Big data. MongoDB archivia i dati in un formato Json-like chiamato BJson (Json binario), una versione codificata e ottimizzata per lo spazio e le prestazioni.

Ad attirare l’attenzione delle aziende è intervenuto MongoDB Atlas, una soluzione gestita in Cloud che permette di usare la potenza di calcolo dei server di Amazon, Google e Microsoft.

Database, framework e tool

NoSQL

Non c’è solo MongoDB nel panorama dei database non relazionali. NoSQL, come detto, non memorizza dati soltanto nella classica forma a tabelle dei database SQL ma può archiviare dati non strutturati in documenti in diversi formati tra i quali Json, Graphs e key values, un formato che archivia i dati secondo il principio per il quale a una chiave rappresenta un identificatore univoco.

I database NoSQL hanno costruito la loro reputazione attorno alla duttilità, controbilanciata soprattutto da due elementi, ossia il fatto che sono meno adatti alle query complesse rispetto alle soluzioni SQL e, non di meno, l’essere più recenti. I database SQL contano su una storia cinquantenne mentre quelli non relazionali sono stati implementati a partire dagli anni 2000.

Tra le soluzioni SQL più famose compaiono MySQL, Microsoft SQL e Oracle mentre, oltre al già citato MongoDB, tra i database non relazionali più noti compare Apache CouchDB e Amazon DynamoDB.

Anche in questo caso la lettura di superficie offre una scelta quasi obbligata: la gestione di dati non strutturati spinge ad adottare, almeno in prima istanza, soluzioni NoSQL.

Database, framework e tool

Ubuntu Core

I dati non vanno soltanto archiviati ed elaborati, vanno anche raccolti. Tra i dispositivi che ne generano ci sono quelli che rientrano nell’ampia famiglia dell’IoT e dei dispositivi edge. Raccogliere i dati laddove vengono generati diventa una strategia sempre più diffusa, perché aumenta sia la velocità sia la sicurezza. Doti che Ubuntu Core, versione rivista di Ubuntu Server, raccoglie in sé anche in virtù del secure boot e della full disk encryption che garantiscono un elevato livello di sicurezza delle applicazioni e dei dati. Eseguendolo su dispositivi IoT, robot industriali e gateway, si sta facendo spazio nell’automotive e nello sviluppo di dispositivi per le Smart City e le case intelligenti. Un sistema operativo embedded che consente sia lo sviluppo di app per i dispositivi sia il reset allo stato di fabbrica.

Il software sviluppato su sistemi embedded può essere eseguito su hardware dalle risorse limitate, anche perché assumendo il ruolo di client, il dispositivo su cui girano le app può sfruttare le risorse del server a cui è collegato.

Amazon Web Services

Contrariamente a quanto si possa credere, le più grandi fortune di Amazon non provengono dalla piattaforma ecommerce ma proprio da Amazon Web Services (Aws) che contribuisce alla maggior parte del fatturato e degli utili della multinazionale di Seattle.

Servizi che includono qualsiasi aspetto che riguardi l’uso dei Big data, a partire dalla potenza di calcolo distribuita fino agli strumenti per l’analisi, il machine learning e i database gestiti (Aurora) anche NoSQL (il già citato DynamoDB). È pressoché impossibile trovare un comparto dell’economia che non possa fare uso di Aws che, peraltro, ha già attecchito nei settori dell’intrattenimento, del gaming, dei servizi finanziari e del marketing. Una suite di applicazioni e di strumenti hardware distribuiti che coprono ogni esigenza di chi lavora con i Big data. Servizi e prodotti che hanno un costo variabile a seconda delle necessità.

Tableau

Nel vasto panorama dei software per la visualizzazione dei dati spicca Tableau, acquistata da Salesforce nel 2019 per 15,7 miliardi di dollari. Nella sua versione Public, Tableau può essere usato online con diverse limitazioni mentre, la versione Server che permette installazioni on-premise è strumento utilizzato per la Business intelligence che consente analisi dei dati in un maggiore numero di formati e le connessioni live a fonti di dati.

Grazie alle sue capacità di integrazione con diversi linguaggi orientati ai dati (Python e R su tutti) non ci sono limiti né nel visualizzare dati né nell’implementare modelli matematici per predire evoluzioni future nei contesti di riferimento come, per esempio, le vendite di un prodotto o di un servizio. (Qui una gallery delle “viz”, le visualizzazioni, create con Tableau).

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 3