RDBMS fejlesztési irányok. Ferris Wheel (óriáskerék) Jim Gray törvényei. Elosztott adatbázisok problémái. Elosztott adatbázisok

Hasonló dokumentumok
MapReduce paradigma a CAP-tétel kontextusában. Adatb haladóknak. Balassi Márton Adatbázisok haladóknak 2012.

MMK-Informatikai projekt ellenőr képzés 4

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat

Elosztott adatbázis-kezelő formális elemzése

Élet az SQL-en túl: Az adatfeldolgozás legújabb trendjei. Földi Tamás

Component Soft és tovább

Adatbáziskezelő-szerver. Relációs adatbázis-kezelők SQL. Házi feladat. Relációs adatszerkezet

Adatbázis rendszerek I

Alternatív adatbázisok Gráfadatbázisok

GENERÁCIÓS ADATBÁZISOK A BIG DATA KÜLÖNBÖZŐ TERÜLETEIN

Gartner: Hype Cycle for Big Data NoSQL Database Management Systems

NoSql, Document Store, MongoDB. Gombos Gergő

Nem klaszterezett index. Beágyazott oszlopok. Klaszterezett index. Indexek tulajdonságai. Index kitöltési faktor

Nem klaszterezett index. Klaszterezett index. Beágyazott oszlopok. Index kitöltési faktor. Indexek tulajdonságai

NoSQL technológiák. NoSQL Fórum Budapest, március 23. Diasablon: - a fotók sajátok :)

Reaktív programozás szerver oldalon

Szárnyas Gábor (BME) diáinak felhasználásával.

Adatbázis, adatbázis-kezelő

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Párhuzamosítás adatbáziskezelő rendszerekben

Weblog elemzés Hadoopon 1/39

Virtuális Obszervatórium. Gombos Gergő

Rendszermodernizációs lehetőségek a HANA-val Poszeidon. Groma István PhD SDA DMS Zrt.

Másolatképzési technikák és azok felhasználási lehetőségei

Nem-relációs adatbáziskezelés. Gajdos Sándor május 8.

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Tudásalapú információ integráció

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Tranzakció-kezelés, alapfogalmak. Vassányi István, 2012.

Döbrönte Zoltán. Data Vault alapú adattárház - Fél óra alatt. DMS Consulting Kft.

Big Data adattárházas szemmel. Arató Bence ügyvezető, BI Consulting

Az adatbázisrendszerek világa

Takács Gábor mérnök informatikus, okl. mérnöktanár

Muppet: Gyors adatok MapReduce stílusú feldolgozása. Muppet: MapReduce-Style Processing of Fast Data

Webes alkalmazások fejlesztése 11. előadás. Alkalmazások felhőben Giachetta Roberto

MySQL kontra MongoDB programozás. SQL és NoSQL megközelítés egy konkrét példán keresztül

NIIF Központi Elosztott Szolgáltatói Platform

Tematika. MongoDB koncepció JSON Schemaless logika Replicaset képzés Sharding Aggregate framework

Adatbázisműveletek és lekérdezésoptimalizálás

Többfelhasználós és internetes térkép kezelés, megjelenítés

Vodafone ODI ETL eszközzel töltött adattárház Disaster Recovery megoldása. Rákosi Péter és Lányi Árpád

SQLServer. Particionálás

Microsoft SQL Server telepítése

NAGY TELJESÍTM. Szerzők Dévai. István Automatizálási. és s Alkalmazott Informatikai Tanszék

Webes alkalmazások fejlesztése 11. előadás. Alkalmazások felhőben. Alkalmazások felhőben Számítástechnikai felhő

Adattárház tiszta alapokon Oracle Day, Budapest, november 8.

2011. November 8. Boscolo New York Palace Budapest. Extrém teljesítmény Oracle Exadata és Oracle Exalogic rendszerekkel

Hálózatba kapcsolt adatbázisok. Erős Levente, TMIT 2011.

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Hadoop és használata az LPDS cloud-on

Big Data az adattárházban

Data Vault adatmodellezés.

GENERÁCIÓS ADATBÁZISOK A BIG DATA KÜLÖNBÖZŐ TERÜLETEIN

Felhők teljesítményelemzése felhő alapokon

Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter

RHadoop. Kocsis Imre Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

MongoDB THE NOSQL DATABASE. Készítette: Hugyák Tamás v2.1.1

Csima Judit szeptember 6.

Adatbázisok elmélete

Y márci

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

NoSQL adatbázisok. Adatb haladóknak. Trencséni Márton Adatbázisok haladóknak szeptember 25.

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Komponens alapú szoftverfejlesztés 10. előadás. Elosztott alkalmazások architektúrái. Elosztott alkalmazások architektúrái

Adatmodellezés. 1. Fogalmi modell

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

webalkalmazások fejlesztése elosztott alapon

Teljesen elosztott adatbányászat pletyka algoritmusokkal. Jelasity Márk Ormándi Róbert, Hegedűs István

Programozás alapjai II. (7. ea) C++

MPP Adattárház Teradata alapokon

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

ADATBÁZIS RENDSZEREK. Adatbázisok története, alapfogalmak, adatmodellek. Krausz Nikol, Medve András, Molnár Bence

Adatbázis rendszerek 7. előadás State of the art

Gráf adatbázisok NoSql, neo4j. Gombos Gergő

Alkalmazásokban. Dezsényi Csaba Ovitas Magyarország kft.

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Indexek és SQL hangolás

Informatikai alapismeretek Földtudományi BSC számára

Oracle GoldenGate Studio Nagyon rövid bemutató. Quick Talk. Gollnhofer Gábor

Big Data tömeges adatelemzés gyorsan

Adatbázisok (relációs, objektum relációs, NoSQL) Adatbáziskezelő rendszerek Adatbázisok felépítése Adatbázisok tervezése

COMPANY PROFILE SZOFI ALGORITHMIC RESEARCH KFT

Budapest Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Adatbázisok Oktatási Labor. Adatbázisok haladóknak VITMAV12

Valós idejű megoldások: Realtime ODS és Database In-Memory tapasztalatok

30 MB INFORMATIKAI PROJEKTELLENŐR ADATBÁZISOK MEGVALÓSÍTÁSA (ADATBÁZISOK, ADATBÁZISKEZELŐK, ADATBÁZISOK FELÉPÍTÉSE, ADATBÁZISOK TERVEZÉSE)

TABLE ACCESS FULL HASH CLUSTER BY INDEX ROWID BY USER ROWID BY GLOBAL INDEX ROWID BY LOCAL INDEX ROWID

Az alapprobléma. Az SQL querydeklaratív Azt mondjuk meg, hogy mit akarunk eredménynek Nem azt, hogy milyen fizikai műveletek történjenek

IBM SPSS Modeler 18.2 Újdonságok

Oracle SQL Developer Data Modeler és a DW adatmodellezés. Gollnhofer Gábor Meta Consulting Kft.

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán és Berényi Attila

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Nyilvántartási Rendszer

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Oracle E-Business Suite üzemeltetés a Rába Járműipari Holding Nyrt.-nél

OE-NIK 2010/11 ősz OE-NIK ősz

Átírás:

1 RDBMS fejlesztési irányok Column store Tömb adatmodell JIT fordító és vektorizált végrehajtás Ferris wheel (óriáskerék) Elosztott adatbázisok Ferris Wheel (óriáskerék) Optimalizált scan műveletek Table scan, index scan Adattárházak alapvető funkciója, optimalizálni kell Sokáig tart, nagy IO költség Egyszerre több query is olvashatja ugyanazt a táblát Miért kell ehhez többször betölteni az adatot? Viszont a queryk nem egyszerre indulnak A queryk újrahasznosítják a másik által már elindított scaneket Nem az elején kezdik a scant, hanem felülnek a már futó scan műveletekre A tábla végére érve a scan tovább fut elölről Akkor van vége, ha épp nincsen olyan query, ami még további sorokat szeretne olvasni Jim Gray törvényei Scale-out: Az adatfeldolgozás csak masszív párhuzamosítással oldható meg Az számolást kell vinni az adathoz és nem az adatot a számoláshoz 6 Elosztott adatbázisok Adat particionálás (sharding) Vertikális particionálás Kulcs tartományok külön szervereken Funkcionális particionálás Függőleges particionálás Bizonyos oszlopok külön szervereken Replikáció Magas rendelkezésre állás (redundancia) Terheléselosztás Nem kell külön back-up + ezek kombinációi Elosztott adatbázisok problémái Lassú hálózat Szerveren belül nagyon gyors IO Racken belül közös switch Rackek között más lassabb kapcsolat Geo-redundáns rendszerek: nagy késleltetésű hálózat Co-location awareness A rendszer kihasználja az adatok közeliségét A feladatokat úgy kell szervezni, hogy az minimális hálózaton keresztüli adatmozgatással járjon Replikáció Az adatokról több másolat készül, külön-külön szerverekre Ugyanakkor az adatírási műveletek bonyolultak lesznek Hogyan tarthatóak a replikák szinkronban, úgy, hogy az ne rontsa a teljesítményt? 1

7 Elosztott műveletek Feltesszük: a tábla több szerver között van elosztva Scan Be kell olvasni minden sort pontosan egyszer Sort Shardonként sorba rendezés, majd merge sort Key lookup Az indexek szintén shardolhatók Adott kulcstartomány adott shardon Join? Ez általánosságban kemény dió Elosztott JOIN Elmélet régen kidolgozva Általános esetben nem oldható meg optimálisan Optimalizálási probléma Minimális adatmozgatás legyen a hálózaton át Hogyan kell ehhez az adatokat és a végrehajtást szervezni? A JOIN queryről nehezen mondható meg az eredményhalmaz számossága! Kevés implementáció Gyakran nem is az RDBMS része, hanem felső réteg Korlátozott funkcionalitással MySQL cluster SQL Azure Microsoft Parallel Data Warehouse stb. 9 10 Elosztott JOIN ötletek Mindent tükrözzünk le mindenhova Párhuzamosítható futás Sok tárhelyet igényel, de egyszerű megvalósítani A kisebb táblát másoljuk oda, ahol a nagyobb van Mi van akkor, ha van WHERE feltétel is? Okos statisztikák kellenek Akár statisztika készítése menet közben Előre mintavételezett táblák A kicsi, ritkán írt táblákat eleve tükrözzük le minden shardra Elosztott JOIN ötletek 2 Particionáljunk idegen kulcs szerint Ha tudjuk, hogy a tábla mindig joinban fog szerepelni Ekkor az INNER JOIN egy shardon belül elvégezhető Lazy-JOIN A ritkán használt oszlopokat más, nagy kapacitású, de lassabb tárterületre tesszük Előbb lefuttatjuk a JOIN-okat (semi join), majd utána gyűjtjük hozzá a többi oszlopot Ekkor elegendő első körben csak a JOIN-hoz szükséges oszlopokat mozgatni (vagy tükrözni) 11 Elosztott JOIN ötletek 3 Alkalmazzunk okos cache-elést Ha már egy táblát valahova lemásoltunk, akkor egy darabig tartsuk is meg ott A hatékony cache-elés nagyban függ a futtatott query-ktől Milyen oszlopok, milyen sorok? Mennyire szűrnek a WHERE feltételek N. Li (2012) Több táblás JOIN tovább bonyolódik Nem mindegy a sorrend Gond, ha a JOIN ciklikus Graywulf Szalay Sándor Johns Hopkins Egyetem, Baltimore ELTE közreműködéssel SQL Server klaszterek tudományos célú felhasználása Load-balancing, probabilistic join, distributed join, array database stb. SkyQuery, turbulencia, stb. DataScope: klaszter DB + GPU integrációval 2

13 Web 2.0 Keresők, óriásáruházak, közösségi oldalak Néha exponenciális növekedés A nagy vasak nem bővíthetők a végtelenségig Hatalmas adatmennyiség Kevésbé strukturált adatok Magas rendelkezésre állás Nem baj, ha nem teljesen konzisztens RDBMS 16 Elosztott rendszerek Elosztott rendszerekre nagy igény lett 1000+ nódus olcsó szerverekből Shared nothing megközelítés A nódusok meghibásodás a napi rutin része RDBMS-nél máig implementálatlan a több gépre történő scale-out Fő probléma: elosztott JOIN Próbálkozások vannak, pl. MySQL Cluster, Graywulf stb. Egy egyszerűbb út: új megközelítésű adatbázisok nosql (not only SQL) Sürgős fejlesztési kényszer Az RDBMS nagyon bonyolult, nem lehet gyorsan bővíteni a funkcionalitás Legyen sokkal egyszerűbb, de elosztott! Min lehet spórolni? Nem SQL nyelv Nem deklaratív programozási modell (imperatív) Nem relációs adatmodell Nincsenek általános scan és join műveletek Az ACID tranzakciós modell egyszerűsítése BASE (ld. később) 18 Két fontos terület Nagy mennyiségű adat feldolgozása Rendszeres műveletek Sok adat redukálása, scan Nagy számú felhasználó kiszolgálása Terhelés megosztása Random műveletek Adatok replikálása Adatbiztonsági okokból Terhelésmegosztás miatt Hadoop Google cikk alapján, Apache projekt, teljesen Java Hadoop Distributed File System Elosztott fájlrendszer, replikáció több gép között Nagy fájlokra (n 64Mb optimalizálva) Feladatütemező Sokgépes környezetben biztosítja a feladatok particionált futtatását Co-location-aware A feladatoknak párhuzamosíthatóknak kell lenniük Vagy túl bonyolult megírni, vagy ehelyett: Egyszerű építőkockákkal lehet csak dolgozni 3

20 Map/Reduce Feladatok megfogalmazása Filter, Map és Reduce függvény implementálható Ebből kell összerakni a programot A futtatás az adat kis darabjain történik A feldolgozandó adatcsomagokat az ütemező osztja ki Az adathalmaz többi részét egy-egy függvény nem láthatja Egy program több Filter/Map/Reduce rétegből állhat A rétegek a HDFS-re való írással osztják meg egymás között az adatokat Map/Reduce Filter Előzetes szűrést végez az adatokon Map Az előzetesen megszűrt adathalmaz minden elemére meghívódik Transzformációs műveleteket végez a következő reduce lépés számára Reduce Egy komplett adatcsomagot dolgoz fel A kapott adatok kombinációjából új adatokat állít elő A bemeneti adatok több partícióról, shardról is származhatnak 21 Map/Reduce Nagy előny szinte korlátlan scale-out működik Nagy hátrány: túl alacsony szintű, de pl.: PIG: magas szintű nyelv Hadoophoz Hive: Query nyelv + indexek Hadoophoz Nem új technológia, csak újra felfedezték Map/Reduce vs. RDBMS Amit MapReduce-szal meg lehet oldani, azt RDBMS-sel is A nehéz elosztott JOIN-okat a MapReduce sem tudja Hadoop fájlrendszer helyett legyenek táblák stb. nosql adatmodellek Key-Value (Redis, MongoDB, Scalien) Value lehet sokféle Dokumentum (bináris, xml stb.) String, lista, hash-tábla stb. BigTable (Google, Hbase, Cassandra) Sorok kulccsal Oszlopcsaládok (előre definiált) Oszlopok (nem előre definiált) Valójában key-value kompozit kulccsal Lehet még gráf, objektum stb. nosql alapok Alapműveletek adat megtalálása kulcs alapján egyetlen kulcshoz tartozó érték módosítása Tranzakciók egyszerűek egyetlen kulcs értékének a módosítása atomi a tranzakciók egylépésesek, nem párhuzamosítottak nincsen szükség a bonyolult izolációs rendszerre Nincsen scan művelet Kereséshez mindenképp kell index Indexeket karban kell tartani Van, hogy kézzel kell megoldani, de gyakran gyári támogatás is van 4

Konzisztencia Biztonsági mentés helyett replikáció Az adatok több példányban tárolódnak Mi biztosítja, hogy a replikák konzisztensek maradnak? Kell valami replikációs protokoll Általában aszinkron C Konzisztencia ablak Mennyi idő után válik a rendszer konzisztenssé Rendelkezésre állás Az adatok folyton elérhetőek Több belépési pont Nincsen egyetlen kritikus elem sem Geo-redundancia A válasz legyen gyors Minimális késleltetés Még akkor is, ha a visszaadott adat nem konzisztens A Partíció tűrés Elosztott rendszer Hálózati kapcsolat (lassú, törékeny) P Több belépési pont A rendszer akkor is működőképes marad, ha egyes részei nem látják egymást Elosztott funkcionalitás Pl. Facebook felhasználó bejelentkezés, fénykép megosztás, levelesláda CAP-tétel A háromból egyszerre csak kettő teljesíthető! A C P Tranzakciós modell lazítása BASE ACID elosztott rendszernél nagyon drága (2PC) Hiba esetén nem lehet tranzakciót érvényesíteni Helyette: BASE basically available, soft-state, eventually consistent Eleve olyan rendszert feltételez, ahol vannak hibák A hibákat optimista módon kezeli A tranzakciók hatásai nem egy időben jelennek meg ehhez kellene a kétlépéses érvényesítés üzenet formájában, véges idő alatt terjednek BA: Basically available Főleg CP rendszer esetében Legalább a rendszer egy része maradjon elérhető Soft-state A változások véges ideig tartó üzenetekkel történnek A rendszer állapota akkor is változhat, ha épp nincsen input Minden adatra lehet egy érvényességi idő Ha ez lejárt, akkor meg kell vizsgálni, hogy konzisztens-e még Eventually consistent Főleg AP rendszer esetében A változások aszinkron propagálnak (gossip protokollok) Egy idő után konzisztenssé válik Konzisztencia ablak 5

Konfliktusok feloldása Hiba miatt inkonzisztens állapot Fel kell oldani Többségi szavazáson múló algoritmusok Pl. Paxos Node-ok quorumokba szerveződve szavaznak Időbélyegzőn alapuló algoritmusok Mindig a legfrissebb adat tekintendő Deklaratív nyelv, optimalizáló RDBMS BigTable Hadoop Optimalizált scan Elsődleges kulcs szerinti elérés Indexek szerinti keresés Join műveletek Párhuzamos végrehajtás Egyszerű sharding Tranzakciók Többlépéses tranzakciók Durability ACID BASE backup/log replikáció replikáció Egyszerű load balancing Nem strukturált adat Szabványos API 6