Video: FIWARE Wednesday Webinars - Core Context Management 2024
Di gran lunga il più semplice dei database NoSQL (non solo SQL) in un ambiente di big data sono quelli che utilizzano il modello di coppia chiave-valore (KVP). I database KVP non richiedono uno schema (come gli RDBMS) e offrono una grande flessibilità e scalabilità.
I database KVP non offrono funzionalità ACID (Atomicity, Consistency, Isolation, Durability) e richiedono agli implementatori di pensare al posizionamento dei dati, alla replica e alla tolleranza ai guasti poiché non sono espressamente controllati dalla tecnologia stessa. I database KVP non sono stati digitati. Di conseguenza, la maggior parte dei dati viene archiviata come stringhe.
Tasto | Valore |
---|---|
Colore | Blu |
Libazione | Birra |
Eroe | Soldato |
Questo è un set di chiavi molto semplificato e valori. In un'implementazione di big data, molte persone avranno idee diverse su colori, libagioni ed eroi.
Key | Value |
---|---|
FacebookUser12345_Color | Red |
TwitterUser67890_Color | Brownish |
FoursquareUser45678_Libation | "Vino bianco" |
Google + User24356_Libation | "Dry martini con una svolta " |
LinkedInUser87654_Hero | " Miglior venditore " |
Con l'aumento del numero di utenti, tenere traccia delle chiavi precise e dei relativi valori può essere difficile. Se è necessario tenere traccia delle opinioni di milioni di utenti, il numero di coppie chiave-valore ad esse associate può aumentare in modo esponenziale. Se non si desidera limitare le scelte per i valori, la rappresentazione di stringa generica di KVP fornisce flessibilità e leggibilità.
Potrebbe essere necessario un ulteriore aiuto nell'organizzazione dei dati in un database di valori-chiave. La maggior parte offre la capacità di aggregare le chiavi (e i relativi valori) in una raccolta. Le raccolte possono essere costituite da un numero qualsiasi di coppie chiave-valore e non richiedono il controllo esclusivo dei singoli elementi KVP.
Un database di coppie chiave-valore open source ampiamente utilizzato è chiamato Riak. È sviluppato e supportato da una società chiamata Basho Technologies ed è reso disponibile con Apache Software License v2. 0.
Riak è un'implementazione molto veloce e scalabile di un database di valori-chiave. Supporta un ambiente ad alto volume con dati in rapida evoluzione perché è leggero. Riak è particolarmente efficace nell'analisi in tempo reale del trading nei servizi finanziari. Utilizza "bucket" come meccanismo di organizzazione per raccolte di chiavi e valori.
Le implementazioni Riak sono cluster di nodi fisici o virtuali disposti in modo peer-to-peer. Nessun nodo principale esiste, quindi il cluster è resiliente e altamente scalabile.Tutti i dati e le operazioni sono distribuiti attraverso il cluster. I cluster più grandi hanno prestazioni migliori e più veloci rispetto ai cluster con un minor numero di nodi. La comunicazione nel cluster è implementata tramite un protocollo speciale chiamato Gossip. Gossip memorizza le informazioni sullo stato del cluster e condivide le informazioni sui bucket.
Riak ha molte caratteristiche e fa parte di un ecosistema composto da:
-
Elaborazione parallela: Utilizzando MapReduce, Riak supporta la capacità di decomporre e ricomporre query nel cluster per analisi e calcoli in tempo reale.
-
Link e link walking: Riak può essere costruito per simulare un database grafico usando i collegamenti. Un collegamento può essere pensato come una connessione unidirezionale tra coppie chiave-valore. Camminando (seguendo) i collegamenti forniranno una mappa delle relazioni tra coppie chiave-valore.
-
Cerca: Riak Search ha una capacità di ricerca full-text distribuita a tolleranza d'errore. I bucket possono essere indicizzati per una rapida risoluzione del valore dei tasti.
-
Indici secondari: Gli sviluppatori possono taggare valori con uno o più valori di campo chiave. L'applicazione può quindi interrogare l'indice e restituire un elenco di chiavi corrispondenti. Questo può essere molto utile nelle implementazioni di big data perché l'operazione è atomica e supporterà comportamenti in tempo reale.
Le implementazioni Riak sono più adatte per
-
Dati utente per social network, comunità o giochi
-
Raccolta e archiviazione di dati ad alto volume e contenuti multimediali
-
Livelli di cache per il collegamento di database RDBMS e NoSQL
-
Applicazioni mobili che richiedono flessibilità e affidabilità