Programiranje

NoSQL izstopajoče: Najboljše primerjane baze podatkov ključ-vrednost

Večina aplikacij potrebuje neko obliko vztrajnosti - način za shranjevanje podatkov zunaj aplikacije za hrambo. Najosnovnejši način je zapisovanje podatkov v datotečni sistem, vendar lahko to hitro postane počasen in težaven način reševanja težave. Celovita baza podatkov ponuja zmogljiv način za indeksiranje in pridobivanje podatkov, vendar je lahko tudi preveč močna. Včasih potrebujete le hiter način, kako pridobite informacijo v prostem vzorcu, jo povežete z nalepko, nekam pospravite in jo v hipu spet povlečete nazaj.

Vnesite shrambo ključ-vrednost. V bistvu gre za bazo podatkov NoSQL, vendar z zelo specifičnim namenom in namerno omejeno zasnovo. Njegova naloga je omogočiti, da vzamete podatke (vrednost), nanje pritrdite oznako (ključ) in jih shranite v pomnilnik ali v neki sistem za shranjevanje, ki je optimiziran za hitro iskanje. Aplikacije uporabljajo zbirke podatkov ključ-vrednost za vse, od predpomnjenja predmetov do skupne rabe podatkov med vozlišči aplikacij.

Številne relacijske zbirke podatkov lahko delujejo kot shrambe ključ-vrednost, vendar je to podobno kot uporaba traktorske prikolice za vožnjo po trgovinah. Deluje, vendar je izjemno neučinkovit in obstajajo veliko lažji načini za rešitev problema. Shramba ključ-vrednost, tako kot druge zbirke podatkov NoSQL, ponuja ravno dovolj infrastrukture za preprosto shranjevanje in iskanje vrednosti, se bolj neposredno integrira z aplikacijami, ki jo uporabljajo, in bolj natančno prilagaja delovnim obremenitvam aplikacije.

Primerjane funkcije baze podatkov No-SQL ključ-vrednost

Vredno je razmisliti o petih široko uporabljenih izdelkih (vključno z eno storitvijo v oblaku); izrecno se obračunavajo kot baze podatkov ključ-vrednost ali kot osrednjo funkcijo ponujajo shranjevanje ključ-vrednost. Njihove osnovne razlike:

  • Hazelcast in Memcached težijo k minimalizmu in se niti ne trudijo varnostno kopirati podatke na disku.
  • Aerospike, Cosmos DB in Redis imajo popolnejše lastnosti, vendar se kljub temu vrtijo okoli metafore ključne vrednosti.

Tabela: Primerjani izdelki baze podatkov No-SQL s ključno vrednostjo

Ključ: L= Linux, W= Windows, M= MacOS, S= Solaris, jaz= iOS, A= Android, O= Drugo.

*S pomočjo tretje strani.

 AerospikeHazelcast IMDGMicrosoft Azure Cosmos DBMemcachedRedis
PlatformeLWMOJavaSamo v oblakuLWMOLWMO
Trenutna verzija3.14.1.13.9N / A1.5.14.0.1
Začetna izdaja20122008201720032009
LicencaAGPLApač 2LastniškoBSDBSD
Podprta z diskomDa Ne Da Ne DaBSD
GrozdenjeDaDaDa Ne Da
Ostrenje / particioniranjeDaDaDa Ne Da
Nativni skriptiDaJavaDa Ne Da
TransakcijeNa ključDaDa Ne Da
VdelanoDa *

Da Ne Da *

Da *

Poglobljena baza podatkov NoSQL s ključno vrednostjo Aerospike

Če je Redis Memcached na steroidih, bi lahko rekli, da je Aerospike Redis na steroidih. Tako kot Redis je tudi Aerospike shramba ključ-vrednost, ki lahko deluje kot trajna baza podatkov ali predpomnilnik podatkov. Aerospike je zasnovan tako, da je enostaven za združevanje in enostaven za prilagoditev, da bi bolje podpiral delovne obremenitve v podjetju.

Lastnosti, značilne za Aerospike

Veliko v Aerospike odmeva tako v drugih shrambah ključ-vrednost kot v drugih zbirkah podatkov NoSQL. Podatki se shranjujejo in pridobivajo s ključi, podatki pa se lahko hranijo v številnih temeljnih podatkovnih vrstah, vključno s 64-bitnimi celoštevilnimi številkami, nizi, dvojnimi natančnostmi in neobdelanimi binarnimi podatki, serializiranimi iz številnih običajnih programskih jezikov.

Aerospike lahko podatke tudi shrani zapleteno tipi - seznami vrednosti, zbirke parov ključ / vrednost, imenovane zemljevidi, in geoprostorski podatki v obliki GeoJSON. Aerospike lahko izvede izvorno obdelavo geoprostorskih podatkov - na primer tako, da s samo izvedbo poizvedbe ugotovi, katere lokacije v bazi podatkov so si najbližje, zaradi česar je privlačna možnost za razvijalce aplikacij, ki se zanašajo na lokacijo.

Podatke, shranjene v programu Aerospike, je mogoče razvrstiti v več hierarhičnih vsebnikov. Nekateri sistemi NoSQL so usmerjeni v dokumente, kar pomeni, da so podatki vdelani v nekakšen predmet, običajno JSON. Z Aerospikeom so vsebniki približno podobni dokumentom, vendar imajo funkcije in vedenja, značilna za Aerospike. Vsaka vrsta vsebnika vam omogoča, da nastavite različne vedenjske lastnosti podatkov v njem.

Na primer, najvišji nivo posod, imenski prostori, določa, ali so podatki shranjeni na disku, v pomnilniku RAM ali oboje; ali se podatki podvajajo v gruči ali med skupinami; in kdaj ali kako se podatki iztečejo ali izselijo. S pomočjo imenskih prostorov Aerospike razvijalcem omogoča, da najpogosteje dostopne podatke shranijo v pomnilnik za čim hitrejši odziv.

Kako Aerospike ravna s shranjevanjem in združevanjem v skupine

Aerospike lahko hrani svoje podatke v skoraj vseh datotečnih sistemih, vendar so bili napisani posebej za izkoriščanje SSD-jev. Kljub temu ne pričakujte, da boste Aerospike spustili na kateri koli stari SSD in pričakovali dobre rezultate. Razvijalci Aerospike vzdržujejo seznam odobrenih SSD naprav in ustvarili so orodje z imenom ACT, s katerim ocenjujejo zmogljivost SSD shranjevalnih naprav pri delovnih obremenitvah Aerospike.

Aerospike, tako kot večina sistemov NoSQL, za kopiranje in združevanje uporablja arhitekturo, ki ni v skupni rabi. Aerospike nima glavnih vozlišč in ročnega ostrenja. Vsako vozlišče je enako. Podatki se naključno porazdelijo po vozliščih in samodejno uravnotežijo, da preprečijo nastanek ozkih grl. Če želite, lahko nastavite pravila za agresivno ponovno uravnoteženje podatkov. Za sinhronizacijo med seboj lahko konfigurirate več gruč, ki se izvajajo v različnih segmentih omrežja ali celo v različnih podatkovnih centrih.

Skriptiranje v programu Aerospike

Tako kot Redis tudi Aerospike omogoča razvijalcem pisanje skriptov Lua ali UDF (uporabniško določene funkcije), ki se izvajajo znotraj mehanizma Aerospike. UDF-je lahko uporabljate za branje ali spreminjanje zapisov, vendar je najbolje, da jih uporabite za izvajanje hitrih operacij samo za branje, zmanjševanje zemljevidov v zbirkah ali "tokove" zapisov na več vozliščih.

Kje dobiti Aerospike

Izdajo skupnosti Aerospike lahko prenesete neposredno s spletnega mesta Aerospike. To vključuje izdaje strežnikov za Linux, namizne različice za Appleov MacOS in Microsoftov Windows, izdaje v oblaku za Amazon EC2, Azure in Google Compute Engine ter zabojnike Docker. Podjetniška izdaja Aerospike je na voljo prek Aerospikeovega programa Quick Start, ki ponuja neomejeno 90-dnevno preskusno različico.

Izvorna koda je na voljo na GitHub.

Poglobljena baza podatkov NoSQL s ključno vrednostjo Hazelcast IMDG

Hazelcast se obračunava kot "podatkovna mreža v pomnilniku", v bistvu način združevanja RAM-a in CPU-jev na več strojih, da se omogoči distribucija naborov podatkov med njimi in manipulacija v pomnilniku.

Baze podatkov NoSQL ponujajo funkcije ključ-vrednost, graf ali dokument. Hazelcast se osredotoča na funkcionalnost ključ-vrednost in poudarja hiter dostop do porazdeljenih podatkov. Po mnenju proizvajalcev se lahko uporablja tudi kot alternativa izdelkom, kot so Pivotal Gemfire, Software Terracotta in Oracle Coherence.

Hazelcast lahko zaženete kot porazdeljeno storitev ali pa ga vdelate neposredno v aplikacijo Java. Stranke so na voljo za Javo, Scalo, .Net, C / C ++, Python in Node.js, ena za Go pa je v pripravi.

Značilnosti, značilne za Hazelcast

Hazelcast je zgrajen z Javo in ima ekosistem, osredotočen na Javo. Vsako vozlišče v gruči Hazelcast izvaja primerek osnovne knjižnice Hazelcast, IMDG, na JVM. Način, kako Hazelcast deluje s podatki, je tesno povezan tudi z jezikovnimi strukturami Jave. Jazelov vmesnik Map na primer uporablja Hazelcast za zagotavljanje pomnilnika ključ-vrednost. Tako kot pri Memcachedu tudi na disk ni zapisano nič; vse je vedno v spominu.

Prednost, ki jo lahko nudi Hazelcast v porazdeljenem okolju, je »blizu predpomnilnika«, kjer se pogosto zahtevani predmeti preselijo na strežnik, ki odda zahteve. Tako lahko zahteve izvedete neposredno v pomnilniku v istem sistemu, ne da bi bilo treba povratno potovanje po omrežju.

Poleg parov ključ / vrednost lahko prek Hazelcast shranite in distribuirate tudi številne druge vrste podatkovnih struktur. Nekatere so preproste izvedbe predmetov Java, na primer Map. Drugi so značilni za Hazelcast. MultiMap je na primer različica shranjevanja ključ-vrednost, ki lahko shrani več vrednosti pod isti ključ. Te funkcije omogočajo posnemanje nekaterih vedenj drugih sistemov NoSQL, na primer organiziranje podatkov v dokumente, vendar je vtis na strukturah, ki omogočajo hiter prenos in dostop do podatkov.

Kako Hazelcast obvladuje grozde

Skupine Hazelcast nimajo nastavitve master / slave; vse je enakovredno. Podatki se samodejno ostrijo in porazdelijo med vse člane gruče. Nekatere člane grozda lahko določite tudi kot »lahke«, ki sprva ne vsebujejo podatkov, pozneje pa jih lahko povišate v polne člane. To omogoča, da se nekatera vozlišča uporabljajo strogo za izračun ali za postopno distribucijo podatkov skozi gručo, medtem ko so ti povezani v splet.

Hazelcast lahko tudi zagotovi, da se operacije nadaljujejo le, če je na spletu vsaj določeno število vozlišč. Vendar morate to vedenje konfigurirati ročno in deluje le za določene podatkovne strukture. Od različice Hazelcast 3.9 lahko preoblikujete podatkovne strukture v gruči, ne da bi jo bilo treba najprej brez povezave.

Kje dobiti Hazelcast

Hazelcast je na voljo za prenos neposredno s spletnega mesta Hazelcast. Običajno je postavljen kot zbirka datotek Java .JAR. Slike Dockerja so na voljo tudi v uradnem registru Docker.

Podjetniško izdajo Hazelcast lahko prenesete neposredno iz Hazelcast. Za Hazelcast lahko dobite tudi 30-dnevni brezplačni preskusni ključ.

Poglobljena memcached baza podatkov NoSQL ključ-vrednost

Memcached je približno tako preprost in hiter, kot ga dobi shranjevanje ključ-vrednost. Prvotno napisan kot pospeševalni sloj za blogersko platformo LiveJournal, je Memcached od takrat postal vseprisotna komponenta skladov spletne tehnologije. Če imate veliko majhnih drobcev podatkov, ki jih je mogoče povezati s preprostim ključem in jih ni treba kopirati med primerki predpomnilnika, je Memcached pravo orodje.

Značilnosti, edinstvene za Memcached

Memcached se najpogosteje uporablja za predpomnjenje poizvedb iz baze podatkov in zadrževanje rezultatov izključno v pomnilniku. V zvezi s tem ni v nasprotju z mnogimi drugimi bazami podatkov NoSQL, ključ-vrednost ali kako drugače, saj shranjujejo podatke v neki trajni obliki.

Memcached ničesar ne shrani v svojo shrambo podatkov. Vse tipke so shranjene samo v pomnilniku, zato izhlapijo vsakič, ko se primerek Memcached ali strežnik, ki ga gosti, ponastavi. Memcachea torej ni mogoče uporabiti kot nadomestek za bazo podatkov NoSQL.

Za kaj pa ga lahko uporabimo, je hiter način shranjevanja pogosto uporabljenih podatkov, ki bi morda potrebovali več časa za poizvedbe iz vira.

Vse podatke, ki jih je mogoče serializirati v binarni tok, je mogoče shraniti v Memcached. Vrednosti lahko nastavite tako, da potečejo po določenem času ali na zahtevo s sklicevanjem na ključe vrednosti iz aplikacije. Količina pomnilnika, ki jo namenite kateremu koli primerku Memcached, je v celoti odvisna od vas in več strežnikov lahko Memcached poganja drug ob drugem za razporeditev obremenitve. Poleg tega Memcached linearno prilagaja število jeder, ki so na voljo v sistemu, ker gre za večnitno aplikacijo.

Večina priljubljenih programskih jezikov ima odjemalske knjižnice za Memcached. Na primer, libmemcached omogoča, da programi C in C ++ delujejo neposredno s primerki Memcached. Omogoča tudi vdelavo Memcached v programe C.

Kako Memcached obravnava grozde

Čeprav lahko zaženete več primerkov Memcached, bodisi na istem strežniku ali na več vozliščih v omrežju, med primerki ni samodejnega združevanja ali sinhronizacije podatkov. Podatki, vstavljeni v primerek Memcached, so na voljo samo iz tega obdobja.

Kje dobiti Memcached

Izvorna koda Memcached je na voljo za prenos iz GitHub in z uradne strani Memcached. Za večino distribucij Linuxa so v repozitorijih na voljo binarni programi Linux. Uporabniki sistema Windows ga lahko gradijo neposredno iz vira; nekateri neuradni binarni programi so bili zgrajeni v preteklosti, vendar se zdi, da niso zanesljivo dostopni.

Podatkovna baza NoSQL s ključno vrednostjo Microsoft Azure Cosmos DB

Večina baz podatkov ima eno krovno paradigmo: shramba dokumentov, shramba ključ-vrednost, shramba širokih stolpcev, baza podatkov grafov itd. Ne tako Azure Cosmos DB. Izveden iz Microsoftove baze podatkov NoSQL kot storitev DocumentDB, Cosmos DB je Microsoftov poskus ustvariti eno samo bazo podatkov, ki lahko uporablja več paradigem.

Značilnosti, ki so edinstvene za Azure Cosmos DB

Cosmos DB za podporo različnim podatkovnim modelom uporablja tako imenovani sistem za shranjevanje zaporedja atomov. Atomi so primitivni tipi, kot so nizi, cela števila in logične vrednosti. Zapisi so zbirke atomov, kot so strukture v C. Zaporedja so nizi atomov ali zapisov.

Cosmos DB te gradnike uporablja za kopiranje vedenja več vrst baz podatkov. Lahko reproducira vedenje tabel v običajnih relacijskih bazah podatkov. Lahko pa tudi reproducira funkcionalnost podatkovnih vrst, ki jih najdemo v sistemih NoSQL - brez sheme dokumenti JSON (DocumentDB in MongoDB) in grafi (Gremlin, Apache TinkerPop).

$config[zx-auto] not found$config[zx-overlay] not found