Un database chiave-valore รจ una strategia di storage non relazionale NoSQL in cui i record vengono memorizzati come una serie di chiavi (l'identificatore) e valori (il valore dell'identificatore). Le coppie chiave-valore possono essere un semplice numero o una stringa, oppure un valore puรฒ essere un oggetto come un'immagine o dati geospaziali. Le applicazioni con volumi elevati che richiedono risposte rapide traggono vantaggio dai database chiave-valore.ย
Che cosa sono i Key-value Store?
I database relazionali memorizzano i dati in tabelle, ma una relazione chiave-valore รจ una serie di chiavi e valori. La chiave รจ l'identificatore univoco utilizzato per eseguire query sul database per trovare il valore corretto. Ad esempio, il prezzo di un prodotto puรฒ essere memorizzato con "prezzo" come chiave e "12,00" come valore. Alcune applicazioni utilizzano archivi chiave-valore per i metadati che possono essere utilizzati per eseguire query su informazioni aggiuntive in database relazionali piรน grandi o in altri database non relazionali.
L'archiviazione di una serie di coppie chiave-valore accelera le query, in modo che le applicazioni che necessitano di risposte rapide e supportano milioni di utenti possano trarre vantaggio dall'utilizzo di un database chiave-valore. Lo storage a valore chiave รจ vantaggioso anche quando le aziende devono archiviare metadati semplici da collegare a ulteriori silos di dati piรน grandi. Alcune aziende utilizzano coppie chiave-valore per i set di dati semplici in cui milioni di richieste arrivano nel database, ma solo pochi valori devono essere restituiti per query.
Negozi chiave-valore in azione
Le applicazioni che eseguono query per piccoli dataset possono trarre vantaggio dalla velocitร di un archivio chiave-valore. Ad esempio, supponiamo di avere un feed di social media utilizzato da milioni di utenti. Gli utenti aggiornano costantemente il feed e l'applicazione mostra i cinque thread principali del feed. ร possibile memorizzare una coppia chiave-valore con il post piรน recente e il link al post.
Anche le applicazioni in tempo reale traggono vantaggio dai key value store in azione. Poichรฉ gli archivi chiave-valore restituiscono i dati rapidamente, le applicazioni con ticker o aggiornamenti secondi per secondo li utilizzano. Ad esempio, un ticker di stock che mostra l'ultimo valore di un determinato stock richiede aggiornamenti della visualizzazione ogni secondo. Per queste query รจ possibile utilizzare un database chiave-valore.
Esempi di database chiave-valore
Store chiave-valore e database relazionali
I databaseย relazionali tradizionali hanno ancora il loro scopo nelle applicazioni convenzionali. Un database relazionale memorizza i valori in una strategia di tipo tabellare. Un singolo record ha piรน colonne e ogni colonna ha un valore assegnato. Gli sviluppatori assegnano un identificatore univoco a ciascun record, in modo che le informazioni possano essere associate al record corretto. Ad esempio, un identificatore univoco collega il nome e l'indirizzo del cliente. Il nome e l'indirizzo in questo esempio sono due colonne e le informazioni del cliente, tra cui l'identificatore univoco, il nome e l'indirizzo, sono un unico record.
Gli archivi chiave-valore associano una singola chiave di identificazione univoca a un valore. Il valore puรฒ essere piรน di un semplice numero o stringa. Gli archivi chiave-valore possono assegnare un oggetto a un singolo identificatore chiave, pertanto gli sviluppatori non sono limitati ai dati di base. ร inoltre possibile utilizzare una combinazione di chiavi per recuperare dati specifici.
Scegliere il giusto Key-value Store
Le applicazioni che utilizzano archivi chiave-valore hanno bisogno di risposte rapide, quindi cerca un database che offra caching in-memory. I dati utilizzati di frequente possono essere memorizzati nella cache in memoria, il che significa che il motore di database non deve cercare i dati su un disco, recuperarli e quindi trasferirli nell'applicazione richiedente. Poichรฉ gli archivi chiave-valore eseguono azioni di lettura e scrittura rapide e continue, la memorizzazione nella cache รจ ottimale per le performance.
I requisiti di data storageย di grandi dimensioni possono trarre vantaggio dal partizionamento e dalla distribuzione dei dati. La distribuzione orizzontale consente agli amministratori di migliorare le performance aggiungendo nodi al cluster di database. Sono disponibili diverse strategie di partizionamento, tra cui l'hashing e lo sharding. Scegli una strategia adatta alla tua infrastruttura e alle preferenze degli amministratori.
Migliori prassi per l'implementazione del key value store
Sia che tu decida di implementare uno store di valore chiave on-premise o nel cloud, devi seguire alcune best practice per preservare le performance. All'inizio potresti non notare problemi di performance, ma spesso si presentano dopo la crescita del database e l'aumento del numero di utenti delle applicazioni. Alcune best practice:
Utilizza chiavi primarie composte per ottimizzare le query a intervallo.
Utilizzare una chiave di ordinamento per le query a intervallo.
Usa una chiave di sharding per lo storage distribuito.
Negli esempi precedenti, le best practice sono necessarie per le performance. Le performance sono cruciali per un database chiave-valore, in modo che possa supportare le applicazioni in tempo reale. Anche i dati memorizzati nella cache miglioreranno le performance, quindi scegli un motore di database che li supporti.
Conclusione
Se hai un'applicazione a volume elevato che richiede dati che possono essere memorizzati come coppia chiave-valore, un archivio chiave-valore potrebbe essere la scelta migliore. La velocitร รจ un fattore critico in questi database, quindi scegline uno che memorizza i dati nella memoria e offre un metodo di hashing o sharding distribuito. Puoi lavorare con database on-premise o cloud, ma se stai cercando una soluzione, Pure Storage offre soluzioni di storage adatte alla tua azienda.