Hadoop és NoSQL technológiák és az Oracle Database

Néhány hónapja kérdezte tőlem egy egyetemista ismerős, hogyan viszonyul az Oracle a NoSQL adatbázis-kezelőköz. Én akkor teljesen értelmetlenül álltam a kérdés előtt, hiszen be kell valljam nem sokat hallottam korábban ilyen fogalomról. Aztán később rájöttem, hogy a Berkeley DB is valami hasonló technológia, kicsivel később pedig ráakadtam egy Oracle whitepaper doksira, ami épp erről szólt, sőt ehhez még hozzáveszi a Hadoop technológiák elemzését is, ráadásul azt is elemzi mi köze van mindehhez az Oracle-nek, illetve az Oracle adatbázis-kezelőnek. Egy ideje már a táskámban lapult a doksi kinyomtatva (tudom ez nem környezetbarát, de bíztam benne, hogy így lesz alkalmam elolvasni), és ma egy külföldi kiküldetés során a reptérre menet átolvastam az anyagot. Számomra az alábbiak jöttek le a doksiból.

Mindenekelőtt az Oracle elismeri, hogy az Open Source adatbázis-kezelők nagyon gyorsan fejlődnek és a kutatók és fejlesztők számára kiváló lehetőség a nyílt forráskódú megoldásokban az új kutatási eredmények implementálása. Az Oracle Corporation ma egyébként méltán nevezhető a vezető nyílt forráskódú adatbázis szállítónak, miután 2005-ben felvásárolta az InnoDB-t, mely a MySQL legelterjedtebb tároló motorja, 2006-ban akvirálta a nagy teljesítményű, beágyazott, kulcs/érték párokkal működő adatbázis-kezelők, a Berkeley DB-t, végül pedig a múlt évben a Sun akvizíció révén már a vezető open sorce adatbázis, a MySQL is az Oracle termékportfóliójának része. A címben szereplő két technika, a Hadoop (MapReduce) és a NoSQL is leginkább a nyílt forráskódú adatbázisok terén jelenik meg. Mindkét megoldás célja a nagy tömegű (értsd nagyon nagy) adatok feldolgozása. Itt több 100 Terabyte-ra, de akár Petabyte, vagy azon felüli adatmennyiségre kell gondolni.

A Hadoop célja a nagy tömegű adatok hatékony feldolgozása, lekérdezése, illetve kötegelt beolvasása. Az adatok a Hadoop Destributed File System (HDFS) területése töltődnek be, melyet a Hadoop végig szkennel, és a feldolgozás eredményét újabb fájlokban állítja elő. Ez talán nem is tekinthető adatbázis-kezelőnek, mivel nem támogat olyan tipikus adatbázis funkciókat, mint az indexelés, SQL interfész, bár számos open source projekt dolgozik ezek megvalósítását is. A Hadoop tipikusan a scale-ot architektúrákra épít, azaz nagyon sok szerverre osztja szét a feldolgozást a MapReduce technológiával. Ezért ott jó megoldás, ahol nagyon sok olcsó szerverrel kívánjuk az adatokat hatékonyan összegyűjteni. Ez belátható, hogy képes lehet bármely nagy szerver teljesítményét felülmúlni.

Azonban a legtöbb helyen az adatok begyűjtése és előzetes feldolgozása csak a kezdet, és később egyéb alkalmazások számára kell elérhetővé tenni, üzleti folyamatokba beépíteni. Ez már egyáltalán nem pálya a Hadoop számára, ezért tökéletesen egészíti ki az Oracle adatbázis-kezelő, ami már képes az adatok megfelelő biztonságának, rendelkezésre állásának, komplex elemezésének, stb. támogatására. Tehát alapvetően a kereskedelmi adatbázis-kezelők, mint az Oracle Database nem képesek a Hadoop kiváltására, sokkal inkább az együttműködésen van a hangsúly.

Míg a Hadoop az adatgyűjtésre fókuszál, addig a NoSQL a nagy számú, de egyszerű adatmódosító (update), illetve olvasó műveletekre van kihegyezve akár több százmillió online felhasználó mellett. Felsorolni is nehéz a létező NoSQL adatbázisokat, de érdekes módon több közülük Oracle technológiára építenek. A Dynamo, a Voldemort és a GenieDB például a Berkeley DB-t használja tároló motorként, míg a Voldemort és a Riak az InnoDB-t (nem tévedés, a Voldemort mindkettővel képes működni). Bár a NoSQL adatbázis hívők szeretik kiemelni, hogy ez teljesen más elven működik, mint a hagyományos, SQL alapú adatbázis-kezelők, ugyanakkor ebben az esetben is igaz, hogy számos projekt folyik az SQL interfészek elkészítésére, Ezért sokkal inkább nevezhetnénk NoSQL helyett „Nem csak SQL” technológiának. Mivel ez is a horizontáli skálázhatóságra épít, ezért értelemszerűen nem tudja támogatni (de semmiképp sem hatékonyan) például a más táblákat, sőt akár más sorokat érintő update műveleteket tartalmazó tranzakciókat, az online schema változtatásokat vagy épp elosztott lekérdezéseket. De gondot okoz a szerverfarm bővítése is, amennyiben a NoSQL adatbázis infrastruktúra elérte határait. Éppen ez az a terület, amiben az Oracle Real Application Clusters nagyon erős, hiszen a cluster bővítése ebben az esetben nem igényli az adatok átszervezését, ami önmagában nem egy kis feladat, de az is probléma a NoSQL esetében, hogy amikor a határait feszegeti egy rendszer, akkor már egyébként is lassul a teljesítménye, amit egy adat átszervezéssel járó művelet még tovább ront, rossz esetben az egész összeomolhat üzemi működés mellett. Itt tehát megint látható hogy van egy pont, amikor célszerű az Oracle Database használata, ami ebben az esetben is jól egészíti ki a NoSQL megoldások egyébként elismert előnyeit.

Akit az elemzés további részletei érdekelnek, annak javaslom a Whitepaper letöltését és elolvasását: Hadoop and NoSQL Technologies and the Oracle Database.

Már épp publikálni akartam ezt a bejegyzést, mikor  egy vadonatúj whitepaper-re bukkantam ugyanazon kollégától, aki a fentit is írta. Ebben már kicsivel indulatosabban fogalmaz, ami nyilván arra vezethető vissza, hogy talán indokolatlanul nagy hype kerekedett mostanában a noSQL körül: Debunking the NoSQL hype. Ez az írás is csak megerősíti, hogy mindent a maga helyén kell kezelni, nem kell azt gondolni, hogy a NoSQL mindenre megoldást jelent.

És ha már itt tartunk, akkor még egy utolsó cikk hivatkozás, mégpedig az Oracle Berkeley DB NoSQL adattárként történő felhasználásáról: Using Oracle Berkeley DB as a NoSQL Data Store.

Comments:

A bejegyzés hemzseg a hibáktól. Jó lett volna utána nézni a dolgoknak mielőtt ilyen írásba kezd.
1. " Ezért sokkal inkább nevezhetnénk NoSQL helyett „Nem csak SQL” technológiának. " -> Nem nevezhetnék, hanem pontosan ennek nevezik. A NoSQL nem "Nem SQL"-t jelent, hanem "Not only SQL"-t.
2. A Hadoop nem egy adatbázis-kezelő. Sőt még csak nem is tárolómotor. Csak egy programozható keretrendszer ami segít nagy mennyiségű adatok feldolgozásában így soha nem lesz hozzá "SQL szerű nyelv"
3. A Dynamonak semmi köze az berkleyDB-hez. Önmagában egy tárolómotor (mint az berkleyDB). A Riaknaknak pedig ezt használja tárolómotorként. Így megint messze van az InnoDBtől.

Posted by Németh Marcell on november 03, 2011 at 09:08 DE CET #

Kedves Marcell!

Köszönöm hozzászólásod! Beismerem nem vagyok a NoSQL és a Hadoop szakértője, Te viszont a stílusodra nem lehetsz büszke.

Nézzük sorra az észrevételeidet:
0. Utánanéztem a dolgoknak, a forrást meg is jelöltem.
1. Ha jól értem itt a megfogalmazásba kötöttél bele, ugyanarról beszélünk...
2. Hol állítottam, hogy a Hadoop adatbázis-kezelő? Nem találok ilyen állítást. SQL-szerű nyelvről sem írtam, csak SQL interfészről, azt sem a Hadoop, hanem a NoSQL esetében. Ennek is utánanéztem, lehet erről olvasni a neten.
3. Idézek: "Underneath Dynamo there is a local transactional database; either Berkeley DB, Berkeley DB Java Edition, MySQL or an in-memory key/value data structure" Forrás: http://blogs.oracle.com/berkeleydb/entry/is_berkeley_db_a_nosql_solutio. Riak esetében pedig ez a forrás: http://nosql.mypopescu.com/post/411673174/riak-and-innostore-the-innodb-based-storage

Szóval egyértelműen visszautasítom, hogy nem néztem utána a dolgoknak. Előfordulhat, hogy a hivatkozott forrás téved, ez esetben várom konstruktív, magalapozott észrevételeidet.

Egyébként időközben az Oracle is bejelentette saját Oracle NoSQL adatbázisát, illetve a Big Data Appliance-t, amely a NoSQL adatbázis mellett tartalmazza a nyílt forrású Apache™ Hadoop™ szoftvert és egyebeket. Erről még sajnos csak röviden volt időm írni.

Lajos

Posted by Sárecz Lajos on november 03, 2011 at 12:34 DU CET #

Post a Comment:
  • HTML Syntax: NOT allowed
About


Sárecz Lajos vagyok, 2003 óta dolgozok az Oracle Hungary Kft-nél értékesítési tanácsadóként. Szakterületem az Oracle Engineered Systems, azaz olyan szerverek, amelyek hardver és szoftver komponensek előre optimalizált konfigurációja.
A blogon publikált vélemények a saját nézeteimet tükrözik, nem feltétlenül egyeznek meg az Oracle álláspontjával.
The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
View Lajos Sárecz's LinkedIn profileView Lajos Sárecz's profile

Search

Archives
« április 2014
HKSzeCsPSzoV
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today