Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 27 reacties

Oracle heeft op zijn OpenWorld-conferentie in San Francisco software aangekondigd voor het verwerken van grote hoeveelheden data. Daaronder zijn een eigen NoSQL-database, gebaseerd op Berkeley DB, en integratie met Hadoop.

OracleNet als andere softwarebedrijven die zich richten op de zakelijke markt, wil Oracle meeliften met de toenemende populariteit van een fenomeen dat bekendstaat onder de buzznaam Big Data: het verwerken van grote hoeveelheden data. Op Oracle OpenWorld, een groot evenement van Oracle in San Francisco, kondigde ceo Larry Ellison daarom onder andere Oracle NoSQL aan, bedoeld voor het opslaan van grote hoeveelheden data.

Oracle NoSQL is gebaseerd op de Java-versie van Berkeley DB, dat in 2006 door Oracle werd overgenomen. In tegenstelling tot Berkeley DB biedt Oracle echter ondersteuning voor verschillende indexen, zodat de software gedistribueerd kan worden gedraaid. De software zal zowel in een opensourceversie als onder een commerciële licentie verkrijgbaar zijn, waarbij laatstgenoemde variant nog onbekende voordelen moet bieden. NoSQL-databases zijn simpele databases zonder ondersteuning voor complexe query's zoals join-operaties, maar met betere prestaties dan relationele databases. Voor complexe query's kan Oracle NoSQL-data worden uitgewisseld met Hadoop- of Oracle Database 11g-databases.

Naast de gedistribueerde NoSQL-database komt Oracle met op Hadoop gebaseerde software. Oracle Loader for Hadoop maakt gebruik van Hadoop Mapreduce om gegevensbestanden te optimaliseren voor Oracle Database 11g. Ook komt er software waarmee gegevens uit Hadoop kunnen worden uitgewisseld met Oracles eigen databasesoftware. Het R-project, bedoeld voor het verwerken van statistische gegevens, krijgt eveneens integratie voor gebruik in Oracle Database 11g, zodat deze direct informatie uit een Oracle-database kan aanspreken.

De aangekondigde software wordt gebundeld in een Big Data-appliance; een appliance is een bundeling van hardware en software die als één pakket wordt verkocht. Wat het pakket moet gaan kosten en welke hardware het omvat, is echter nog onbekend. Duidelijk is wel dat de software ook los van de appliance kan worden gebruikt.

Ellison maakte ook bekend welke cpu de Oracle Exalytics-appliance bevat. Het gaat om een Intel Xeon E7-4870 met maar liefst 40 cores. De Exalytics, die op een Sun Fire-server blijkt te zijn gebaseerd, werd maandag al aangekondigd, maar zoals vaker bij aankondigingen van Oracle, ontbreekt een groot deel van de specificaties.

Moderatie-faq Wijzig weergave

Reacties (27)

Mee eens dat NoSQL sneller is en beter schaalt, maar hier betaal je ook een boete voor. Een belangrijke daarvan is de bewaking van data integriteit d.m.v. keys zijn niet of nauwelijks mogelijk.

NoSQL is heel goed initiatief en zeer goed in te zetten, je moet alleen goed kijken waar je dat doet. Een goed voorbeeld is een database die niet veranderd, maar waar veel performance vereist is. Wij doen dit bij een IDP waarbij de account NoSQL database een subset is van een hot sync van een relationele database.
Er zijn ook een aantal NoSQL databases die weldegelijk consistent kunnen zijn. Dit noemen ze ook wel eventual consistency.

http://en.wikipedia.org/wiki/Eventual_consistency

Ligt maar net aan de insteek die je gebruikt bij de NoSQL database.
kan iemand mij vertellen van NoSQL is boven een echte relationele database?

Vroegah hadden we dBaseII en dBaseIII aan we terug naar die tijd?

Of doet Oracle dit om het uit de markt te houden?
NoSQL betekent simpelweg een database die geen SQL ondersteund. Vroeger had je dan DBase, tegenwoordig heb je een variteit aan database zoals Google's BigTable en Oracle's oplossing die geschikt zijn voor grote hoeveelheden data.

Berkeley DB (BDB) an sich is ook een NoSQL database: het ondersteund alleen key- value pairs en kan dus gebruikt worden als een grote dictionary. Vandaar dat LDAP gebruik kan maken van BDB als back-end voor zijn data.

Verder heb je oplossingen als MongoDB en CouchDB die simpelweg objecten op kunnen slaan. Bij relationele databases moet je f zelf je objecten persisten (opslaan in de database) en ophalen of een OR- mapper gebruiken. Bij zulke Object Databases sla je simpelweg het object op en kun je zoeken op data binnen die objecten.

In het laatste geval levert een NoSQL database je meer flexibiliteit op. Bij een relationele database moet je eerst je datamodel opbouwen voor de data die je wilt opslaan, terwijl je bij Object Databases simpelweg de objecten opslaat die je wilt bewaren.

[Reactie gewijzigd door Jaap-Jan op 4 oktober 2011 11:22]

NoSQL betekent simpelweg een database die geen SQL ondersteund.
Niet altijd: Er zijn een aantal 'NoSQL' oplossingen die k met SQL-queries te benaderen zijn. NoSQL is daarom ook een backronym geworden voor 'Not Only SQL'.
Inderdaad, een mooi voorbeeld hiervan is Cassandra die inmiddels ook een SQL taal ondersteund.
Geen indexen. Unstructered data. Alles, waar je Berkely DB voor had willen gebruiken.
Het is niet per s waar dat er geen indexen zijn. Cassandra bijvoorbeeld staat dat wel toe. Het grote verschil zit 'm in t feit dat je (in elk geval in Cassandra) je data in een ongestructureerde matrix opslaat, en je vaak zelf verantwoordelijk bent voor structurele data integriteit.
Dit betekent in de praktijk geen SQL queries (vandaar ook de naam NoSQL), maar wel een query systeem dat er iets van weg heeft.
De grootste en belangrijkste consequentie is schaalbaarheid: NoSQL DB's schalen horizontaal veel beter door dan traditionele relationele DB's, wat ze een geschiktere keus maakt voor grote websites zoals bijvoorbeeld Facebook.
Mongodb noemt zichzelf ook nosql meen ik.. dat is ook een niet relationele database, waar je wl indexes hebt.
Een document-oriented database.
zie ook http://www.mongodb.org/display/DOCS/Schema+Design
NoSQL-databases zijn simpele databases zonder ondersteuning voor complexe queries zoals joint-operaties, maar met betere prestaties dan relationele databases.
In principe is een NoSQL db n simpele index van key->value, geen verdere kolommen enzovoorts (waarbij key/value gewoon blobs kunnen zijn). Doordat het zo specialistisch is, is het ophalen van een record beter te optimaliseren (dus betere prestaties en schaalbaarheid). Je hebt geen query optimalisatie e.d. nodig, want het enige wat je kunt is met de native API records ophalen en opslaan - SQL Queries kun je niet uitvoeren.
Als je dan de relaties tussen tables in een setje commando's zelf uit moet schrijven is het dus de moderne snelle broer van dBase.

Select 1
Use Table <table 1> index <list of indexes>

Select 2
Use Table <table 2> index <list of indexes>

Select 1
Seek value

Select 2
Seek table1.value2

Doe iets met de kolommen van table2

Zoiets was dBase.


In SQL zou dit zijn

select <columns> from Table2 where Value = Select column-x from table1


Etc
Voor de duidelijkheid, die blobs kunnen dus ook json objecten zijn. Belangrijkste bij NoSQL is schaalbaarheid en snelheid. Vergelijk het bv. met Google BigTables, ook NoSQL.
NoSQL-databases zijn simpele databases zonder ondersteuning voor complexe queries zoals joint-operaties, maar met betere prestaties dan relationele databases.
Oracle doet het omdat de markt er naar vraagt. Er zijn viele (tientallen??) noSQL databases. Heel bekend is bijvoorbeeld Cassandra.

Grote database intensieve databases zoals twitter maken veel gebruik van noSQL om makkelijk te schalen. Je kunt noSQL goed vergelijken met memcached(zoals de naam al zegt, serversided memory caching). Bij noSQL kun je vaak vele vormen van data opslaan: strings, integers, objects maar ook bestanden als fotos, pdfs enzovoort.

Relationele databases vergen veel onderhoudt en schalen / shredding is gewoon een ramp vergeleken met noSQL.
NoSQL is een interessant gegeven als je de gebruiker relavante informatie wil geven.

Bijvoorbeeld producten die te maken hebben met de gezochte zoekterm - hiervoor zijn NoSQL databases beter geschikt dan de typische relationele databases.

Als je echter zeer gericht wil zoeken zijn relationele databases nog steeds de oplossing.

Beiden hebben hun voor- en nadelen en men kan dus perfect opteren om beide databasetypes te draaien binnen dezelfde organisatie. Ze zullen enkel een andere verantwoordelijkheid hebben.

Verder ondersteunen heel wat NoSQL databases inderdaad ook SQL zoals hieronder beschreven staat door YopY; het zou me dus niet verbazen als de commercile versie van oracle NoSQL dus ondersteuning bevat voor (een afgeleide?) van SQL.

Hopelijk heb ik bij deze een ruwe schets gegeven over wat NoSQL is.
Misschien omdat niet iedereen die hier op tweakers.net zit automatisch geinteresseerd is in software ontwikkeling of een beroep heeft waarin met zulke data gewerkt wordt dat je er iets als NoSQL voor nodig hebt?

Oftewel, je zit gewoon iemand af te branden omdat JIJ denkt dat iedereen maar moet weten wat NoSQL is.....
NoSQL is sneller en schaalt beter. Vandaar dat het in grootschalige websites erg populair is geworden.

Een leuke site over dit soort technologie en toepassingen kun je hier vinden: http://highscalability.com/
Zoals YopY reeds aangaf "kan" het sneller zijn maar is dit niet per s het geval.

Een relationele database zal altijd sneller zijn dan een NoSQL database als je zeer gericht zoekt; bijvoorbeeld by-id.

Zoals ik reeds hierboven ergens antwoordde is het doel van NoSQL databases verschillend dan deze van een relationele database.

Ook read-write (vooral write) heeft een invloed op performantie binnen NoSQL databases

[Reactie gewijzigd door F!SH op 4 oktober 2011 12:03]

Kan sneller zijn. 'is sneller' is een harde opmerking die je met cijfers zult moeten staven. Voor specifieke toepassingen kunnen relationele databases nog altijd sneller zijn.

Ze schalen idd wel beter. Omdat NoSQL oplossingen de data veelal niet-genormaliseerd opslaan kun je de data veel makkelijker over meerdere nodes verspreiden.
Uit deze benchmark blijkt dat de echte winst van NoSQL zit in het niet hoeven interpreteren van SQL. Met primary key lookups bleek dat het aantal queries/seconde in MySQL 105,000 was, maar dat er veel tijd verloren ging aan het interpreteren van SQL. Via een speciale interface waarbij data uit MySQL gehaald kan worden zonder SQL, konden 750.000 look-ups / seconde gedaan worden (en werd ook tegen netwerk i/o limieten aangelopen).

Er zullen best specialistische toepassingen zijn waar NoSQL voordeel biedt, maar ik denk dat te snel van een standaard MySQL-installatie afgestapt wordt.

@netman: de opslag blijft hetzelfde (innodb), waarmee het argument dat NoSQL sneller is omdat het data anders opslaat weg is.

[Reactie gewijzigd door GlowMouse op 4 oktober 2011 16:36]

Uh je haalt sql uit mysql. Volgens mij houd je dan nosql over.....en geen standaard mysql.
waarschijnlijk bedoelt men 4x een intel 4870 met ieder 10 cores; een 40core Intel CPU is er nog niet
Eventual consistent <> consistent. Cassandra is evt consistent en volgens het cap theorema niet consistent.
consistent beteknt dus :altijd en overal consistent. Overigens kan je bij cassandra bij de client eenconsistency level instellen. Hierdoor gedraagt het systeem van client & cassandra zich wel consistent.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True