sql >> Databáze >  >> NoSQL >> MongoDB

Bitva o databáze NoSQL - Porovnání MongoDB a Oracle NoSQL

Moderní IT potřebuje mít nerelační, dynamické schéma (to znamená, že žádné požadavky na Joins Statements Queries), aby poskytovalo podporu pro velká data/aplikace v reálném čase. NoSQL databáze byly vytvořeny s myšlenkou zlepšení výkonu zpracování dat a řešení schopnosti škálovat, aby bylo možné překonat distribuované zatížení databáze pomocí konceptu více hostitelů, získaly novou generaci poptávky po zpracování dat.

Kromě poskytování základní podpory pro různé datové modely a skriptovací jazyky umožňuje MongoDB vývojářům také snadné zahájení procesu.

Databáze NoSQL otevírá dveře... 

  • Textové protokoly využívající skriptovací jazyk (REST a, JSON, BSON)
  • Skutečně minimální náklady na generování, ukládání a přepravu dat
  • Podporujte zpracování velkého množství dat.
  • Vyšší výkon zápisu
  • Není vyžadováno k provádění objektově-relačního mapování a procesu normalizace
  • Žádné pevné kontroly s pravidly referenční integrity
  • Snížení nákladů na údržbu se správci databází 
  • Snížení nákladů na rozšíření
  • Rychlý přístup k párům klíč–hodnota
  • Rozšíření podpory pro strojové učení a inteligenci 

Přijetí trhem MongoDB 

Moderní potřeby pro Big Data Analytics a moderní aplikace hrají klíčovou roli v potřebě zlepšit životní cyklus zpracování dat bez očekávání rozšíření hardwaru a zvýšení nákladů.

Pokud plánujete novou aplikaci a chcete si vybrat databázi, může být dospět ke správnému rozhodnutí s mnoha možnostmi databáze na trhu komplikovaným procesem.

Pořadí oblíbenosti DB-engine ukazuje, že MongoDB je na 1. místě ve srovnání s Oracle NoSQL (který se umístil na 74. místě). Trend však naznačuje, že se něco mění. Potřeba mnoha cenově výhodných rozšíření jde ruku v ruce s mnohem jednodušším modelováním dat a administrace mění způsob, jakým by vývojáři chtěli uvažovat o tom nejlepším pro své systémy.

Podle informací o podílu na trhu Datanyze k dnešnímu dni existuje asi 289 webových stránek, které běží na Oracle Nosql s tržním podílem 11 %, kde jinde má MongoDB kompletních 12 185 webových stránek s podílem na trhu 4,66 %. Tato působivá čísla naznačují, že MongoDB má jasnou budoucnost.

Datové modelování NoSQL 

Datové modelování vyžaduje pochopení...

  • Typy vašich aktuálních dat.
  • Jaké jsou typy dat, které v budoucnu očekáváte?
  • Jak vaše aplikace získává přístup k požadovaným datům ze systému?
  • Jak vaše aplikace získá požadovaná data ke zpracování?

Vzrušující věc pro ty, kteří vždy následovali způsob Oracle vytváření schémat a následného ukládání dat, MongoDB umožňuje vytvářet kolekci spolu s dokumentem. To znamená, že vytváření kolekcí není nezbytností před vytvořením dokumentu, díky čemuž je MongoDB velmi ceněn pro svou flexibilitu.

V Oracle NoSQL je však nejprve nutné vytvořit definici tabulky a poté můžete pokračovat ve vytváření řádků.

Další skvělá věc je, že MongoDB nezahrnuje přísná pravidla pro implementaci schématu a vztahů, což vám dává svobodu pro neustálé zlepšování systému, aniž byste se museli obávat nutnosti zajistit těsný návrh schématu.

Podívejme se na některá srovnání mezi MongoDB a Oracle NoSQL.

Porovnání konceptů NoSQL v MongoDB a Oracle

Terminologie NoSQL

MongoDB 

Oracle NoSQL

Fakta

Kolekce

Tabulka / zobrazení

Kolekce / tabulka funguje jako úložný kontejner; jsou podobné, ale ne totožné.

Dokument

Řádek

Pro MongoDB data uložená v kolekci ve formě dokumentů a polí.

Pro Oracle NoSQL je tabulka kolekcí řádků, kde každý řádek obsahuje datový záznam. Každý řádek tabulky se skládá z klíčových a datových polí, která jsou definována při vytvoření tabulky.

Pole

Sloupec

Index

Index

Obě databáze používají index ke zlepšení rychlosti vyhledávání v databázi.

Úložiště dokumentů a klíč–hodnota 

Oracle NoSQL poskytuje úložný systém, který ukládá hodnoty indexované klíčem; tento koncept je považován za nejméně složitý model, protože datové sady se skládají z indexovaného páru klíč–hodnota. Záznamy organizované pomocí hlavních a mollových tónin.

Hlavní klíč lze zobrazit jako ukazatel objektu a vedlejší klíč jako pole v záznamu. Efektivní vyhledávání dat je umožněno použitím klíče jako mechanismu pro přístup k datům stejně jako primární klíč.

MongoDB rozšiřuje páry klíč–hodnota. Každý dokument má jedinečný klíč, který slouží k načtení dokumentu. Dokumenty jsou známé jako dynamické schéma, protože kolekce v dokumentu nemusí mít stejnou sadu polí. Kolekce může mít společné pole s různými typy dat. Tyto atributy vedou datový model dokumentu k přímému mapování pro podporu moderních objektově orientovaných jazyků.

MongoDB 

Oracle NoSQL 

Dokumenty

Příklad: 

Obchod klíč-hodnota

Příklad: 

BSON a JSON

Oracle NoSQL používá JSON jako standardní datový formát k přenosu (páry data + atribut-hodnota). Na druhou stranu MongoDB používá BSON.

MongoDB

Oracle NoSQL

BSON 

JSON 

Binární JSON – binární datový formát – umožňuje rychlejší zpracování

Javascript Object Notation – standardní formát. Mnohem pomalejší zpracování ve srovnání s BSON.

Charakteristika:

Charakteristiky:

BSON není na rozdíl od JSON v textu čitelném pro člověka. BSON je zkratka pro binárně kódovanou serializaci dat podobných JSON, která se používá hlavně pro ukládání dat a formát přenosu s MongoDB. Datový formát BSON se skládá ze seznamu uspořádaných prvků obsahujících název pole (řetězec), typ a hodnotu. Pokud jde o datové typy, které BSON podporuje, všechny datové typy běžně se vyskytující v JSON a zahrnují dva další datové typy (binární data a datum). Binární data nebo známá jako BinData, která mají méně než 16 MB, lze uložit přímo do dokumentů MongoDB. BSON údajně spotřebovává více místa než datové dokumenty JSON.

Existují dva důvody, proč MongoDB spotřebovává více místa ve srovnání s Oracle NoSQL: 

  • MongoDB dosáhla cíle, kterým je schopnost rychlého procházení, přičemž možnost rychlého procházení vyžaduje, aby dokument BSON nesl další metadata (délka řetězce a podobjektů).
  • Design BSON dokáže rychle kódovat a dekódovat. Například celá čísla jsou uložena jako 32 (nebo 64) bitová celá čísla, aby se eliminovala analýza do az textu. Tento proces využívá více místa než JSON pro malá celá čísla, ale je mnohem rychlejší na analýzu.

Definice datového modelu

Prohlášení o shromažďování MongoDB

Vytvořit sbírku

db.createCollection("users")

Vytvoření kolekce s automatickým _id

db.users.insert

( {
    User_id: "U1",
    First_name: "Mary"                  
    Last_name : "Winslet",  

    Age       : 15

    Contact   : {

               Phone: "123-456-789"

               Email: "[email protected]"  

                }

   access  : {

              Level:5,

              Group:"dev"

             }            

})

MongoDB umožňuje vložení souvisejících informací do stejného databázového záznamu. Návrh datového modelu

Příkaz tabulky Oracle NoSQL

Použití SQL CLI k nastavení jmenného prostoru: 

Create namespace newns1; 

Použití jmenného prostoru k přidružení tabulek a podřízené tabulky

news1:users

News1:users.access

Vytvořte tabulku s IDENTITOU pomocí:

Create table newns1.user (

idValue INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 MAXVALUE 10000), 

User_id String,

First_name String,

Last_name String, 

Contact Record (Phone string,         

                Email string),

Primary key (idValue));

Vytvořte tabulku pomocí SQL JSON: 

Create table newns1.user (

idValue INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 MAXVALUE 10000),

User_profile JSON, 

Primary Key (shard(idValue),User_id));

Řádky pro tabulku uživatelů:zadejte JSON

{

  "id":U1,

  "User_profile" : {

     "First_name":"Mary",

     "Lastname":"Winslet",

     "Age":15,

     "Contact":{"Phone":"123-456-789",                   

     "Email":"[email protected]"

                   }

}

Na základě definic dat výše umožňuje MongoDB různé metody vytváření schémat. Kolekci lze definovat explicitně nebo při prvním vložení dat do dokumentu. Při vytváření kolekce můžete definovat objectid. Objectid je primární klíč pro dokumenty MongoDB. Objectid je 12bajtový binární typ BSON, který obsahuje 12 bajtů generovaných ovladači MongoDB a serverem pomocí výchozího algoritmu. MongoDB objectid je užitečné a slouží k seřazení dokumentu vytvořeného v konkrétní kolekci.

Oracle NoSQL má několik způsobů, jak začít definovat tabulky. Pokud ve výchozím nastavení používáte Oracle SQL CLI, vytvoření nové tabulky bude umístěno v sysdefault, dokud se nerozhodnete vytvořit nový jmenný prostor, který k němu přiřadí sadu nových tabulek. Výše uvedený příklad demonstruje vytvořený nový jmenný prostor „ns1“ a uživatelská tabulka je spojena s novým jmenným prostorem.

Kromě identifikace primárního klíče používá Oracle NoSQL také sloupec IDENTITY k automatickému zvýšení hodnoty pokaždé, když přidáte řádek. Hodnota IDENTITY se generuje automaticky a musí to být datový typ Integer, long nebo number. V Oracle NoSQL se IDENTITY spojuje s generátorem sekvencí podobně jako koncept objectid u MongoDB. Protože Oracle NoSQL umožňuje použít klíč IDENTITY jako primární klíč. Pokud považujete klíč IDENTITY za primární klíč, je třeba toto pečlivě zvážit, protože může mít vliv na vkládání dat a proces aktualizace.

Definice úrovně tabulky/kolekce MongoDB a Oracle NoSQL ukazují, jak jsou „kontaktní“ informace začleněny do stejné jediné struktury bez nutnosti další definice schématu. Výhodou vložení datové sady je to, že k načtení vloženého datového souboru nebudou nutné žádné další dotazy.

Pokud chcete udržovat svůj systém v jednoduché formě, MongoDB poskytuje nejlepší možnost, jak uchovat datové dokumenty s menšími komplikacemi. MongoDB zároveň poskytuje funkce pro poskytování stávajícího komplexního datového modelu z relačního schématu pomocí nástroje pro ověřování schémat.

Oracle NoSQL poskytuje možnosti použití SQL, jako je dotazovací jazyk s DDL a DML, což vyžaduje mnohem méně úsilí pro uživatele, kteří mají nějaké zkušenosti s používáním systémů relační databáze.

Shell MongoDB používá Javascript, a pokud vám nevyhovuje jazyk nebo používání mongo shellu, pak je pro tento proces nejvhodnější zvolit nástroj IDE. Nejlepších 5 MongoDB IDEtools v roce 2020, jako studio 3T, Robo 3T, NoSQLBooster, MongoDB Compass a Nucleon Database Master, vám pomůže při vytváření a správě složitých dotazů s využitím agregačních funkcí.

Výkon a dostupnost

Vzhledem k tomu, že model datové struktury MongoDB používá dokumenty a kolekce, je použití formátu dat BSON pro zpracování velkého množství dat mnohem rychlejší ve srovnání s Oracle NoSQL. Zatímco někteří považují dotazování dat pomocí SQL za pohodlnější cestu pro mnoho uživatelů, problémem se stává kapacita. Když máme k dispozici obrovské množství dat, potřebujeme zvýšenou propustnost a následuje použití SQL k návrhu složitých dotazů, tyto procesy nás žádají, abychom přehodnotili kapacitu serveru a nárůst nákladů v průběhu času.

MongoDB i Oracle NoSQL poskytují funkce sdílení a replikace. Sdílení je proces, který umožňuje distribuci datové sady a celkové zátěže zpracování mezi více fyzických oddílů, aby se zvýšila rychlost zpracování (čtení/zápis). Implementace shardu pomocí oracle vyžaduje, abyste měli předem informace o tom, jak fungují shardingové klíče. Důvodem procesu předběžného plánování je nutnost implementovat shard klíč na úrovni spouštění schématu.

Implementace shardu s MongoDB vám dává prostor, abyste nejprve pracovali na datové sadě a před implementací identifikovali potenciální správný shard klíč na základě vzorů dotazů. Vzhledem k tomu, že proces shardingu zahrnuje replikaci dat, MongoDB má reputaci také pro rychlou replikaci dat. Replikace se stará o odolnost proti chybám, protože musí mít všechna data na jediném serveru.

Závěr 

Co dělá MongoDB preferovaným před Oracle NoSQL, je to, že je v binárním formátu a jeho vrozené vlastnosti jsou lehké, průchodné a efektivní. To umožňuje podporovat postupující moderní aplikace v oblasti strojového učení a umělé inteligence.

Charakteristiky MongoDB umožňují vývojářům pracovat mnohem jistěji a rychleji vytvářet moderní aplikace. Datový model MongoDB umožňuje zpracování obrovského množství nestrukturovaných dat s vylepšenou rychlostí, která je ve srovnání s Oracle NoSQL dobře promyšlená. Oracle NoSQL vítězí, pokud jde o nástroje, které nabízí, a možné možnosti vytváření datových modelů. Je však nezbytné zajistit, aby se vývojáři a návrháři mohli rychle učit a přizpůsobovat technologii, což není případ Oracle NoSQL.


  1. Co je Hadoop Mapper Class v MapReduce?

  2. Objekt kolekce není volatelná chyba s PyMongo

  3. dial tcp [::1]:6397:connectex:Nelze navázat spojení, protože cílový počítač jej aktivně odmítl

  4. Operátor agregačního potrubí MongoDB $sum