Programmēšana

NoSQL izceļamās: labākās atslēgas vērtību datu bāzes salīdzinājumā

Lielākajai daļai lietojumprogrammu ir nepieciešama kāda veida noturība - veids, kā datus glabāt ārpus lietojumprogrammas glabāšanai. Pats vienkāršākais veids ir ierakstīt datus failu sistēmā, taču tas ātri var kļūt par lēnu un neērtu problēmu risināšanas veidu. Pilnīga datu bāze nodrošina efektīvu veidu, kā indeksēt un iegūt datus, taču tā var būt arī pārmērīga. Dažreiz viss, kas jums nepieciešams, ir ātrs veids, kā paņemt brīvas formas informāciju, saistīt to ar etiķeti, kaut kur ievietot un atkal ātri izvilkt.

Ievadiet atslēgas vērtību krātuvi. Būtībā tā ir NoSQL datu bāze, taču tai ir ļoti specifisks mērķis un apzināti ierobežots dizains. Tās uzdevums ir ļaut jums paņemt datus (vērtību), uzlikt tiem etiķeti (atslēgu) un saglabāt tos vai nu atmiņā, vai kādā atmiņas sistēmā, kas ir optimizēta ātrai izgūšanai. Lietojumprogrammās tiek izmantotas atslēgas vērtību datubāzes, sākot no objektu kešatmiņas līdz koplietotu datu koplietošanai starp lietojumprogrammu mezgliem.

Daudzas relāciju datu bāzes var darboties kā galveno vērtību veikali, taču tas ir nedaudz līdzīgi kā izmantot traktora piekabi, lai dotos uz pārtikas preču braucieniem. Tas darbojas, taču tas ir dramatiski neefektīvs, un problēmas risināšanai ir daudz vieglāki veidi. Atslēgu vērtību krātuve, tāpat kā citas NoSQL datu bāzes, nodrošina tieši pietiekamu infrastruktūru vienkāršai vērtību glabāšanai un izgūšanai, tiešāk integrējas lietojumprogrammās, kuras to izmanto, un sīkāk mērogojas ar lietojumprogrammu slodzi.

Salīdzinātas atslēgas vērtības NoSQL datu bāzes funkcijas

Pieci plaši izmantoti produkti (ieskaitot vienu mākoņpakalpojumu) ir jūsu vērts. par tiem skaidri tiek izrakstīti rēķini par atslēgas vērtību datu bāzēm vai kā galvenā funkcija tiek piedāvāta atslēgas vērtības glabāšana. Viņu galvenās atšķirības:

  • Hazelcast un Memcached tiecas pēc minimālisma un pat neuztraucas dublēt datus diskā.
  • Aerospike, Cosmos DB un Redis ir pilnīgākas, taču tās joprojām griežas ap atslēgas vērtības metaforu.

Tabula: Salīdzināti atslēgas vērtības NoSQL datu bāzes produkti

Atslēga: L= Linux, W= Windows, M= MacOS, S= Solaris, Es= iOS A= Android, O= Cits.

*Izmantojot trešās puses ieviešanu.

 AerospikeHazelcast IMDGMicrosoft Azure Cosmos DBMemcachedRedis
PlatformasLWMOJavaTikai mākoņainsLWMOLWMO
Pašreizējā versija3.14.1.13.9N / A1.5.14.0.1
Sākotnējā izlaišana20122008201720032009
LicenceAGPLApache 2ĪpašnieksBSDBSD
Ar disku atbalstītsJāBSD
Kopu veidošana
Dalīšana / sadalīšana
Vietējie skriptiJava
DarījumiPar atslēgu
IegulējamsJā*

Jā*

Jā*

Aerospike atslēgas vērtības NoSQL datu bāze padziļināti

Ja Redis tiek pieminēts steroīdos, varētu teikt, ka Aerospike ir Redis par steroīdiem. Tāpat kā Redis, arī Aerospike ir atslēgas vērtību krājums, kas var darboties kā pastāvīga datu bāze vai datu kešatmiņa. Aerospike ir veidots tā, lai to varētu viegli apvienot un mērogot, lai labāk atbalstītu uzņēmuma darba slodzi.

Aerospike unikālas funkcijas

Aerospike lielā mērā sasaucas gan ar citiem galveno vērtību krājumiem, gan citām NoSQL datu bāzēm. Dati tiek glabāti un izgūti, izmantojot atslēgas, un datus var glabāt vairākos pamatdatu veidos, ieskaitot 64 bitu veselus skaitļus, virknes, dubultprecizitātes pludiņus un neapstrādātus bināros datus, kas seriālizēti no vairākām izplatītākajām programmēšanas valodām.

Aerospike var arī saglabāt datus komplekss veidi - vērtību saraksti, galveno vērtību pāru kolekcijas, ko sauc par kartēm, un ģeotelpiskie dati GeoJSON formātā. Aerospike var veikt ģeotelpisko datu vietējo apstrādi, piemēram, lai noteiktu, kuras datu bāzē saglabātās vietas ir vistuvāk viena otrai, vienkārši veicot vaicājumu, padarot to par pievilcīgu iespēju tādu lietojumprogrammu izstrādātājiem, kuras paļaujas uz atrašanās vietu.

Aerospike saglabātos datus var sakārtot vairākos hierarhiskos konteineros. Dažas NoSQL sistēmas ir orientētas uz dokumentu, tas nozīmē, ka dati tiek iekapsulēti kāda veida objektos, parasti JSON. Izmantojot Aerospike, konteineri ir aptuveni līdzīgi dokumentiem, bet ar Aerospike raksturīgajām funkcijām un uzvedību. Katrs konteinera veids ļauj tajā esošajiem datiem iestatīt dažādas uzvedības īpašības.

Piemēram, augstākais konteineru līmenis, nosaukumvietas, nosaka, vai dati tiek glabāti diskā, RAM vai abos; vai dati tiek atkārtoti kopā vai pāri kopām; un kad un kā ir beidzies vai izlikts datu termiņš. Izmantojot nosaukumvietas, Aerospike ļauj izstrādātājiem saglabāt atmiņā visbiežāk pieejamos datus, lai pēc iespējas ātrāk reaģētu.

Kā Aerospike apstrādā uzglabāšanu un kopu veidošanu

Aerospike savus datus var glabāt gandrīz jebkurā failu sistēmā, taču tas ir īpaši rakstīts, lai izmantotu SSD priekšrocības. Tas nozīmē, ka neceriet nomest Aerospike uz jebkura veca SSD un gaidīt labus rezultātus. Aerospike izstrādātāji uztur apstiprinātu SSD ierīču sarakstu, un viņi ir izveidojuši rīku ar nosaukumu ACT, lai novērtētu SSD atmiņas ierīču veiktspēju zem Aerospike slodzēm.

Aerospike, tāpat kā lielākā daļa NoSQL sistēmu, replicēšanas un kopu veidošanas nolūkos izmanto koplietojamu neko arhitektūru. Aerospike nav galveno mezglu un manuālas sadrupināšanas. Katrs mezgls ir identisks. Dati tiek nejauši sadalīti pa mezgliem un tiek automātiski līdzsvaroti, lai nepieļautu vājās vietas. Ja vēlaties, varat noteikt noteikumus par to, cik agresīvi dati tiek līdzsvaroti. Sinhronizēšanai savā starpā varat konfigurēt vairākas kopas, kas darbojas dažādos tīkla segmentos vai pat dažādos datu centros.

Scenāriji Aerospike

Tāpat kā Redis, arī Aerospike ļauj izstrādātājiem rakstīt Lua skriptus vai UDF (lietotāja definētas funkcijas), kas darbojas Aerospike dzinējā. Jūs varat izmantot UDF, lai lasītu vai mainītu ierakstus, taču vislabāk tos izmantot, lai veiktu ātrdarbīgas, tikai lasāmas, kartes samazinošas darbības kolekcijās vai ierakstu “straumes” vairākos mezglos.

Kur iegūt Aerospike

Aerospike kopienas izdevumu var lejupielādēt tieši no Aerospike vietnes. Tas ietver serveru izdevumus Linux, darbvirsmas versijas Apple MacOS un Microsoft Windows, mākoņa izdevumus Amazon EC2, Azure un Google Compute Engine un Docker konteinerus. Uzņēmuma Aerospike izdevums ir pieejams, izmantojot Aerospike Quick Start programmu, kas nodrošina neierobežotu 90 dienu izmēģinājuma versiju.

Avota kods ir pieejams vietnē GitHub.

Hazelcast IMDG atslēgas vērtības NoSQL datu bāze padziļināti

Hazelcast ir jāmaksā kā “atmiņas datu režģis”, būtībā veids, kā apvienot RAM un CPU resursus vairākās mašīnās, lai ļautu datu kopas izplatīt pa šīm mašīnām un manipulēt atmiņā.

NoSQL datubāzes piedāvā atslēgas vērtības, diagrammas vai dokumenta funkcijas. Hazelcast koncentrējas uz atslēgas vērtības funkcionalitāti, uzsverot ātru piekļuvi izplatītajiem datiem. Pēc ražotāju domām, to var izmantot arī kā alternatīvu tādiem produktiem kā Pivotal Gemfire, Software Terracotta un Oracle Coherence.

Hazelcast var palaist kā izplatītu pakalpojumu vai arī iegult tieši Java lietojumprogrammā. Klienti ir pieejami Java, Scala, .Net, C / C ++, Python un Node.js, un viens Go darbiem.

Funkcijas, kas raksturīgas tikai Hazelcast

Hazelcast ir veidots ar Java, un tai ir uz Java orientēta ekosistēma. Katrs mezgls Hazelcast kopā JVM darbina Hazelcast pamata bibliotēkas eksemplāru IMDG. Tas, kā Hazelcast darbojas ar datiem, ir cieši saistīts arī ar Java valodas struktūrām. Piemēram, Java kartes saskarni Hazelcast izmanto, lai nodrošinātu atslēgas vērtību glabāšanu. Tāpat kā ar Memcached, nekas netiek ierakstīts diskā; viss visu laiku tiek turēts atmiņā.

Viena priekšrocība, ko Hazelcast var nodrošināt izplatītā vidē, ir “cache”, kur bieži pieprasītie objekti tiek migrēti uz serveri, kurš veic pieprasījumus. Tādā veidā pieprasījumus var izpildīt tieši atmiņā tajā pašā sistēmā, neprasot turp un atpakaļ pāri tīklam.

Papildus Hazelcast var saglabāt un izplatīt daudz citu veidu datu struktūras, izņemot atslēgu vērtību pārus. Daži no tiem ir vienkārši Java objektu, piemēram, Map, ieviešana. Citi ir raksturīgi Hazelcast. Piemēram, MultiMap ir atslēgas vērtību krātuves variants, kas vienā un tajā pašā taustiņā var saglabāt vairākas vērtības. Šīs funkcijas ļauj atdarināt dažu citu NoSQL sistēmu uzvedību, piemēram, datu sakārtošanu dokumentos, taču empāze ir par struktūrām, kas ļauj ātri izplatīt datus un piekļūt tiem.

Kā Hazelcast rīkojas ar kopu veidošanu

Hazelcast kopām nav galvenā / verga iestatījuma; viss ir peer-to-peer. Dati tiek automātiski sadalīti un izplatīti visiem klastera dalībniekiem. Varat arī noteikt dažus klastera dalībniekus kā “lite”, kuriem sākumā nav datu, bet vēlāk tos var paaugstināt par pilntiesīgiem dalībniekiem. Tas ļauj dažus mezglus izmantot stingri aprēķinam vai datu pakāpeniskai izplatīšanai, izmantojot kopu, kamēr tie tiek tiešsaistē.

Hazelcast var arī nodrošināt, ka darbības turpinās tikai tad, ja vismaz noteikts mezglu skaits ir tiešsaistē. Tomēr šī darbība ir jākonfigurē manuāli, un tā darbojas tikai noteiktām datu struktūrām. Sākot ar Hazelcast versiju 3.9, jūs varat pārkonfigurēt datu struktūras visā klasterī, vispirms to neliekot bezsaistē.

Kur dabūt Hazelcast

Hazelcast ir pieejams lejupielādei tieši no Hazelcast vietnes. Parasti to izvieto kā Java .JAR failu kolekciju. Docker attēli ir pieejami arī oficiālajā Docker reģistrā.

Uzņēmuma Hazelcast izdevumu varat lejupielādēt tieši no Hazelcast. Jūs varat arī iegūt 30 dienu bezmaksas izmēģinājuma atslēgu Hazelcast.

Memcached atslēgas vērtības NoSQL datu bāze padziļināti

Memcached ir aptuveni tikpat vienkāršs un ātrs, cik saņem atslēgas vērtības krātuve. Sākotnēji Memcached tika rakstīts kā emuāru veidošanas platformas LiveJournal paātrinājuma slānis, un kopš tā laika tas ir kļuvis par visuresošu tīmekļa tehnoloģiju kaudzes sastāvdaļu. Ja jums ir daudz mazu datu fragmentu, kurus var saistīt ar vienkāršu atslēgu, un tie nav jāatkārto starp kešatmiņas gadījumiem, Memcached ir pareizais rīks.

Funkcijas, kas raksturīgas tikai Memcached

Memcached visbiežāk izmanto vaicājumu kešatmiņai no datu bāzes un rezultātu saglabāšanai tikai atmiņā. Šajā ziņā tas atšķirībā no daudzām citām NoSQL datu bāzēm ir atslēgas vērtība vai citas, jo tās glabā datus pastāvīgā formā.

Memcached neko neatbalsta savu datu krātuvi. Visi taustiņi tiek turēti tikai atmiņā, tāpēc tie iztvaiko ikreiz, kad tiek atiestatīts Memcached gadījums vai serveris, kurā tas tiek mitināts. Tādējādi Memcached īsti nevar izmantot kā NoSQL datu bāzes aizstājēju.

Lai gan to var izmantot, tas ir ātrgaitas veids, kā atlicināt parasti izmantotos datus, kas var prasīt vairāk laika, lai vaicātu no avota.

Visus datus, kurus var seriālizēt binārā plūsmā, var ievietot Memcached. Vērtības var iestatīt kā derīgas pēc noteikta laika vai pēc pieprasījuma, atsauces taustiņus uz lietojumprogrammas vērtībām. Atmiņas apjoms, ko veltāt jebkuram Memcached gadījumam, ir pilnībā atkarīgs no jums, un vairāki serveri var palaist Memcached blakus, lai sadalītu slodzi. Turklāt Memcached skalas lineāri ar sistēmā pieejamo serdeņu skaitu, jo tā ir daudzšķiedru lietojumprogramma.

Vispopulārākajām programmēšanas valodām ir Memcached klientu bibliotēkas. Piemēram, libmemcached ļauj C un C ++ programmām strādāt tieši ar Memcached instancēm. Tas arī ļauj Memcached iegult C programmās.

Kā Memcached rīkojas kopu izveidē

Pat ja jūs varat palaist vairākus Memcached gadījumus neatkarīgi no tā, vai tajā pašā serverī vai vairākos tīkla mezglos, starp gadījumiem nav automātiskas datu apvienošanas vai sinhronizācijas. Memcached instancē ievietotie dati ir pieejami tikai no šī gadījuma, perioda.

Kur dabūt Memcached

Memcached avota kods ir pieejams lejupielādei no GitHub un oficiālajā Memcached vietnē. Lielākajā daļā Linux izplatījumu krātuvēs ir pieejami Linux bināri faili. Windows lietotāji to var izveidot tieši no avota; daži neoficiāli bināri faili ir būvēti agrāk, bet, šķiet, tie nav droši pieejami.

Microsoft Azure Cosmos DB atslēgas vērtības NoSQL datu bāze padziļināti

Lielākajai daļai datu bāzu ir viena visaptveroša paradigma: dokumentu krātuve, atslēgu vērtību krātuve, plašu kolonnu krātuve, grafu datu bāze un tā tālāk. Ne tik Azure Cosmos DB. Atvasināts no Microsoft NoSQL datu bāzes kā pakalpojuma DocumentDB, Cosmos DB ir Microsoft mēģinājums izveidot vienu datu bāzi, kurā var izmantot vairākas paradigmas.

Azure Cosmos DB unikālās funkcijas

Lai atbalstītu dažādus datu modeļus, Cosmos DB izmanto tā saukto atomu ierakstu secības glabāšanas sistēmu. Atomi ir primitīvi tipi, piemēram, virknes, veseli skaitļi un Būla vērtības. Ieraksti ir atomu kolekcijas, tāpat kā struktūras C. Secības ir vai nu atomu, vai ierakstu masīvi.

Cosmos DB izmanto šos veidojošos blokus, lai atkārtotu vairāku datu bāzu tipu darbību. Tas var atveidot parasto relāciju datu bāzēs atrodamo tabulu darbību. Bet tas var arī reproducēt datu tipu, kas atrodami NoSQL sistēmās, funkcionalitāti - bezjēdzīgi JSON dokumenti (DocumentDB un MongoDB) un diagrammas (Gremlin, Apache TinkerPop).

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