MongoDB ir dokumentu orientēta NoSQL datu bāze, kas pazīstama ar savām elas­tī­ga­jām shēmām, praktiski ne­ie­ro­be­žo­to ho­ri­zon­tā­lo mē­ro­go­ja­mī­bu, augsto kļūdu toleranci un pie­eja­mī­bu. Tomēr lie­to­ju­miem, kas prasa stingru kon­sek­ven­ci, zemu latences līmeni vai minimālas pār­val­dī­bas izmaksas, citas datu bāzu ar­hi­tek­tū­ras var piedāvāt vairāk pie­lā­go­tus ri­si­nā­ju­mus. Šīs MongoDB al­ter­na­tī­vas ietver gan relatīvās datu bāzes un kolonnu orien­tē­tas NoSQL sistēmas, gan atmiņas datu bāzes un iegultos ri­si­nā­ju­mus.

Kas ir MongoDB un kādas ir tā al­ter­na­tī­vas?

Daudzus gadus relatīvās datu bāzes bija ne­ap­s­trī­dams standarts datu pār­val­dī­bā. Tomēr mūsdienu tīmekļa lie­to­jum­prog­ram­mu mainīgās datu va­ja­dzī­bas ir vei­ci­nā­ju­šas al­ter­na­tī­vu pieeju attīstību – un tieši šeit savu lomu spēlē MongoDB. Atšķirībā no re­la­tī­va­jām sistēmām (RDBMS), MongoDB datus glabā dokumentu orientētā formātā, iz­man­to­jot elastīgus BSON do­ku­men­tus, kas or­ga­ni­zē­ti ko­lek­ci­jās. Katram do­ku­men­tam var būt pilnīgi atšķirīga struktūra, atšķirībā no re­la­tī­va­jās datu bāzēs izmantotā stingrā tabulu formāta. Pa­tei­co­ties BSON formātam, kas ir līdzīgs JSON, MongoDB atbalsta visus Ja­vaScript datu tipus, padarot to par populāru izvēli Ja­vaScript balstītām plat­for­mām.

Kā NoSQL datu bāze, MongoDB neizmanto SQL vai­cā­ju­miem. Tā vietā tā izmanto savu vaicājumu valodu, MongoDB Query Language (MQL). Vēl viena izcila MongoDB funkcija ir tās ho­ri­zon­tā­lā mē­ro­go­ja­mī­ba. Sistēma izplata datus vairākās serveru instancēs, iz­man­to­jot sa­da­lī­ša­nu, kas palielina datu pie­eja­mī­bu un kopējo veikt­spē­ju. Turklāt MongoDB atbalsta ACID at­bil­sto­šas transak­ci­jas, no­dro­ši­not, ka dati paliek kon­sek­ven­ti un droši uzglabāti pat kļūdu, sistēmas avāriju vai vien­lai­cī­gas piekļuves gadījumā no vairākiem lie­to­tā­jiem.

MySQL: pierādīta RDBMS struk­tu­rē­tiem datiem

MySQL tika iz­strā­dāts 20. gadsimta 90. gadu vidū Zvied­ri­jas uzņēmumā MySQL AB un ātri kļuva pazīstams kā ātrs, uzticams atvērtā koda datu bāzes ri­si­nā­jums. 2008. gadā Sun Microsystems, kas kopš 2010. gada sākuma bija daļa no teh­no­lo­ģi­ju giganta Oracle, iegādājās MySQL un kopš tā laika ir atbildīgs par tā attīstību. Šodien MySQL ir viens no visplašāk iz­man­to­ta­jiem relatīvo datubāzu ri­si­nā­ju­miem pasaulē, kas pieejams gan kā atvērtā koda, gan ko­mer­ciā­la uzņēmumu versija.

Kā MongoDB al­ter­na­tī­va, MySQL ir īpaši piemērota sce­nā­ri­jiem, kuros ne­pie­cie­ša­ma stingra datu kon­sek­ven­ce, stabila SQL fun­kcio­na­li­tā­te un labi iz­strā­dā­ta datu bāzes struktūra. Tā piedāvā augstu kļūdu toleranci, vairākas mē­ro­go­ša­nas iespējas un dažādas saskarnes. Turklāt MySQL spēj apstrādāt lielus struk­tu­rē­tu datu apjomus. Tās skaidrais, vien­kār­šais dizains padara to draudzīgu arī ie­sā­cē­jiem.

MySQL priekš­ro­cī­bu pārskats

  • Pieejams gan kā atvērtā koda datu bāze, gan kā uzņēmuma versija
  • Augsta kļūdu to­le­ran­ces, ātruma un pie­eja­mī­bas pakāpe
  • Lie­to­tā­jam draudzīgs, pat ie­sā­cē­jiem
  • Vairākas mē­ro­go­ša­nas iespējas
  • Dažādi uz­gla­bā­ša­nas mehānismi dažādiem lie­to­ša­nas ga­dī­ju­miem
  • Liela kopiena un plaša do­ku­men­tā­ci­ja
  • Viegli in­teg­rē­jams daudzās vidēs un sistēmās
  • Daļa no LAMP skriptu kopuma (Linux, Apache, MySQL un PHP)

PostgreSQL: jaudīga datu bāze ar objektu-relaciju pieeju

PostgreSQL ir vēl viena relatīvā datu bāzes sistēma, kuras at­tīs­tī­bas vēsture ir daudz garāka nekā MySQL. Sākotnēji iz­strā­dā­ta 1980. gados kā Ka­li­for­ni­jas Uni­ver­si­tā­tes projekts, PostgreSQL kopš 1997. gada ir atvērtā koda datu bāze. Tā apvieno stabilu relatīvo modeli ar objektu-re­la­tī­va­jiem pa­pla­ši­nā­ju­miem, padarot to ideāli piemērotu sce­nā­ri­jiem, kuros ne­pie­cie­ša­ma datu in­teg­ri­tā­te, uzlabotas SQL funkcijas un augsta elastība.

MongoDB al­ter­na­tī­va, PostgreSQL izceļas ar pilnīgu ACID at­bil­stī­bu un daudz­ver­si­ju vien­lai­cī­gu­ma kontroli (MVCC), no­dro­ši­not stabilu veikt­spē­ju pat pie augstas paralēlās slodzes. Tās elastīgā pa­pla­ši­nā­ju­mu sistēma, kas ietver tādas rīkus kā PostGIS ģeo­tel­pis­ka­jiem datiem un Ti­mesca­leDB efektīvai laika rindu pār­val­dī­bai, padara to ļoti pie­lā­go­ja­mu.

PostgreSQL priekš­ro­cī­bu pārskats

  • Atvērtā koda un brīvi pieejams
  • Augsta izturība un drošība
  • Lieliska veikt­spē­ja pat pie lielas slodzes
  • Daudz­vei­dī­gi pa­pla­ši­nā­ju­mi dažādiem lie­to­ša­nas ga­dī­ju­miem
  • Daudz­vei­dī­gas mē­ro­go­ša­nas iespējas
  • Ļoti elastīgs
  • Daudz­vei­dī­gas saskarnes
  • Aktīva kopiena

MariaDB: SQL datu bāze, kas iz­strā­dā­ta at­bil­sto­ši mūsdienu prasībām

MariaDB ir vēl viena relatīvā datu bāze, kas darbojas at­bil­sto­ši atvērtā koda modelim. Pa­tei­co­ties GNU General Public Licence Version 2 (GPLv2), lietotāji var apskatīt, modificēt un izplatīt kodu. MariaDB tika izveidota 2010. gadā kā kopienas vadīta MySQL atzars un ir kļuvusi par spēcīgu MongoDB al­ter­na­tī­vu sce­nā­ri­jiem, kur relāciju in­teg­ri­tā­te un SQL saderība ir ļoti svarīga. Tā piedāvā plašu uz­gla­bā­ša­nas dzinēju klāstu, kas piemēroti dažādiem lie­to­ša­nas ga­dī­ju­miem, tostarp Co­lumnSto­re ko­lonnvei­da analīzei un Aria transak­ci­ju darba slodzēm. MariaDB lepojas arī ar nativu JSON atbalstu, kas ļauj daļēji struk­tu­rē­tus datus tieši uzglabāt tabulās un izgūt, iz­man­to­jot SQL. Tās Galera Cluster nodrošina sinhrono multi-master rep­li­kā­ci­ju, ga­ran­tē­jot augstu pie­eja­mī­bu. Turklāt tādas funkcijas kā Window Functions, Common Table Expressions (CTE) un Virtual Columns atbalsta sa­rež­ģī­tas analīzes un atskaites sce­nā­ri­jus.

MariaDB priekš­ro­cī­bas īsumā

  • Atvērtā koda ar aktīvu attīstību
  • MySQL saderīgs
  • Efektīvi uz­gla­bā­ša­nas mehānismi dažādām lie­to­jum­prog­ram­mām
  • Augsta veikt­spē­ja un mē­ro­go­ja­mī­ba
  • Robusta sta­bi­li­tā­te
  • Pilnīga SQL atbalsts un viegla in­teg­rā­ci­ja
  • Ne­at­ka­rīgs no plat­for­mas

Apache Cassandra: NoSQL ri­si­nā­jums ar kolonnu orientētu pieeju

Apache Cassandra ir iz­klie­dē­ta NoSQL datu bāze, kas izmanto kolonnu orientētu modeli, padarot to par piemērotu MongoDB al­ter­na­tī­vu ārkārtīgi lieliem datu kopumiem, lineārai mē­ro­go­ša­nai un augstai kļūdu toleranci. Tās vien­ādran­ga ar­hi­tek­tū­ra nodrošina, ka, ja viens mezgls ne­dar­bo­jas, sistēma turpina darboties.

Cassandra izmanto savu vaicājumu valodu Cassandra Query Language (CQL), kas ļauj veikt SQL tipa mi­jie­dar­bī­bu ar datiem. Ar au­to­mā­tis­ko sa­da­lī­ša­nu Cassandra ir gandrīz bezgalīgi skalējama, un kon­fi­gu­rē­ja­mi kon­sek­ven­ces līmeņi ļauj lie­to­tā­jiem līdz­sva­rot veikt­spē­ju ar datu in­teg­ri­tā­ti. Apache Cassandra rak­stu­rī­ga arī ātra datu vaicājumu apstrāde, kas iet roku rokā ar robustu drošības ar­hi­tek­tū­ru.

Apache Cassandra priekš­ro­cī­bu pārskats

  • Atvērtā koda sistēma
  • Pa­tei­co­ties ho­ri­zon­tā­la­jai un ver­ti­kā­la­jai mē­ro­go­ja­mī­bai, labi piemērota lieliem datu kopumiem
  • SQL tipa vaicājumu valoda (CQL)
  • Augsta kļūdu to­le­ran­ces, elas­tī­gu­ma un pie­eja­mī­bas pakāpe
  • Lieliska caur­laidspē­ja un ātra apstrāde
  • Se­lek­tī­vas ACID ga­ran­ti­jas, pa­tei­co­ties kon­fi­gu­rē­ja­mai kon­sek­ven­ci

Redis: zemākā latence pa­tei­co­ties RAM balstītai uz­gla­bā­ša­nai

ne­sais­tī­ta atmiņas datu bāze, Redis ir stabila MongoDB al­ter­na­tī­va lie­to­ju­miem, kas prasa ļoti ātru reakciju. Datu bāze sasniedz mazāk nekā mi­li­se­kun­des lielu kavēšanos, jo dati tiek glabāti RAM, nevis cietajā diskā. Redis parasti tiek izmantots reāllaika analīzei, ziņojumu star­pnie­cī­bai un sesiju pār­val­dī­bai.

Vēl viena priekš­ro­cī­ba ir dažādas mē­ro­go­ša­nas iespējas. Datubāzi var mērogot gan vertikāli (pa­lie­li­not RAM ka­pa­ci­tā­ti), gan ho­ri­zon­tā­li (iz­man­to­jot Redis Cluster). Lai gan tās galvenā uzmanība ir vērsta uz veikt­spē­ju, ja darba slodzes prasa sa­rež­ģī­tus datus vai plašas vaicājumu iespējas, Redis sasniedz savas robežas. Turklāt, pa­lie­li­no­ties datu apjomam, ne­pie­cie­ša­mī­ba pēc lielākas RAM var ātri pa­lie­li­nāt darbības izmaksas.

Redis priekš­ro­cī­bu pārskats

  • Atvērtā koda datu bāze
  • Lieliska veikt­spē­ja pa­tei­co­ties datu uz­gla­bā­ša­nai atmiņā
  • Īpaši ātra reakcija – mazāk nekā viena mi­li­se­kun­de
  • Elastīgas mē­ro­go­ša­nas iespējas
  • Ideāli piemērota reāllaika analīzei
  • Augsta lie­to­tā­jam drau­dzī­gums
  • Plaša saderība ar plat­for­mām, sistēmām un valodām

SQLite: mi­ni­mā­lis­tisks SQL ri­si­nā­jums bez servera procesiem

SQLite integrē pilnībā fun­kcio­nā­lu relatīvo datu bāzes sistēmu tieši lie­to­jum­prog­ram­mā, dar­bo­jo­ties kā bib­lio­tē­ka, kas vienā failā glabā gan datus, gan shēmu. Tas nozīmē, ka nav ne­pie­cie­šams atsevišķs servera pa­kal­po­jums, tādējādi novēršot ne­pie­cie­ša­mī­bu pēc in­sta­lā­ci­jas, kon­fi­gu­rā­ci­jas un lielākās daļas ad­mi­nis­tra­tī­vo uzdevumu. Bib­lio­tē­ka ir ārkārtīgi kompakta, aizņemot tikai dažus simtus kilobaitu, atbalsta lielāko daļu SQL-92 standarta un ir paredzēta vis­pā­rē­jiem datu gla­bā­ša­nas formātiem.

Sākotnēji iz­strā­dāts ASV mi­li­tā­ra­jām va­ja­dzī­bām, SQLite tagad ir pieejams kā publiskā domēna prog­ram­ma­tū­ra. Projektos, kuros ne­pie­cie­šams viegls, pār­nē­sā­jams ri­si­nā­jums, piemēram, iegultās ierīcēs, IoT sensoriem, galda datoru lie­to­jum­prog­ram­mās vai vietējā datu analīzē, SQLite ir ideāla MongoDB al­ter­na­tī­va. Pa­tei­co­ties atsevišķu failu vien­kār­ša­jai pār­ne­sa­mī­bai, daudzi iz­strā­dā­tā­ji SQLite izmanto arī kā elastīgu backend savām lie­to­jum­prog­ram­mām.

SQLite priekš­ro­cī­bu pārskats

  • Darbība bez servera
  • Zems apkopes piepūles līmenis – nav ne­pie­cie­ša­ma in­sta­lā­ci­ja, kon­fi­gu­rā­ci­ja vai pastāvīga apkope
  • Mazs ietekmes apjoms
  • Augsta pār­ne­sa­mī­ba
  • Augsta uz­ti­ca­mī­ba un avārijas pār­slēg­ša­nās iespējas
  • Dublējumi, iz­man­to­jot failu kopēšanu
  • Atbalsts daudzām valodām
Go to Main Menu