Úvod do Big Data Martin Macák a Tomáš Rebok Masarykova univerzita, Brno Osnova prednášky Osnova prednášky 1. Čo sú to Big Data? Osnova prednášky 1. Čo sú to Big Data? 2. Ako pracovať s Big Data? Osnova prednášky 1. Čo sú to Big Data? 2. Ako pracovať s Big Data? 3. Aké nástroje existujú? Big Data ∙ data is the new oil Big Data ∙ data is the new oil ∙ všetci generujeme dáta Big Data ∙ data is the new oil ∙ všetci generujeme dáta ∙ koľko senzorov má napr. smartphone? Big Data ∙ data is the new oil ∙ všetci generujeme dáta ∙ koľko senzorov má napr. smartphone? ∙ problem nie je generovať dáta, problém už nie je ich ani uložiť ∙ problem je ich spracovať! (ziskať informaciu) Big Data domény Big Data – definícia Big Data – definícia Volume Big Data – definícia Volume Velocity Big Data – definícia Volume Velocity Variety Big Data – definícia Volume Velocity Variety Veracity Typické základné požiadavky na Big Data systémy ∙ ukladanie veľkého množstva dát ∙ spracovanie dát v rozumnom čase ∙ škálovateľnosť Big Data systémy – superpočítač ∙ vertikálne škálovanie Big Data systémy – cluster bežných počítačov ∙ horizontálne škálovanie Typy práce Data store Distributed file system Memory Presentation Transferring Storage Processing Orchestration Advanced analytics Resourcemanagement Data sources Nástroje ∙ pre každý typ práce existuje mnoho nástrojov Transferring ∙ presun dát zo zdrojov (zariadenia, databázy, súbory, webové stránky, . . . ) Transferring ∙ presun dát zo zdrojov (zariadenia, databázy, súbory, webové stránky, . . . ) ∙ aktívne alebo pasívne presúvanie Transferring ∙ presun dát zo zdrojov (zariadenia, databázy, súbory, webové stránky, . . . ) ∙ aktívne alebo pasívne presúvanie ∙ väčšinou máme možnosť predspracovania dát (filtrovanie, transformácia) Transferring ∙ presun dát zo zdrojov (zariadenia, databázy, súbory, webové stránky, . . . ) ∙ aktívne alebo pasívne presúvanie ∙ väčšinou máme možnosť predspracovania dát (filtrovanie, transformácia) Storage ∙ CAP Theorem (Brewer’s theorem) – v distribuovanom prostredí je nemožné súčasne splniť viac ako 2 z nasledujúcich vlastností : Storage ∙ CAP Theorem (Brewer’s theorem) – v distribuovanom prostredí je nemožné súčasne splniť viac ako 2 z nasledujúcich vlastností : ∙ consistency – každý uzol má rovnaký pohľad na dáta, vždy vráti najnovší úspešný zápis (lebo chybu) Storage ∙ CAP Theorem (Brewer’s theorem) – v distribuovanom prostredí je nemožné súčasne splniť viac ako 2 z nasledujúcich vlastností : ∙ consistency – každý uzol má rovnaký pohľad na dáta, vždy vráti najnovší úspešný zápis (lebo chybu) ∙ availability – každý uzol vráti nechybovou odpoveď v rozumnom čase (bez nutnosti garance vrátit najnovší zápis) Storage ∙ CAP Theorem (Brewer’s theorem) – v distribuovanom prostredí je nemožné súčasne splniť viac ako 2 z nasledujúcich vlastností : ∙ consistency – každý uzol má rovnaký pohľad na dáta, vždy vráti najnovší úspešný zápis (lebo chybu) ∙ availability – každý uzol vráti nechybovou odpoveď v rozumnom čase (bez nutnosti garance vrátit najnovší zápis) ∙ partition tolerance – systém dokáže pracovať aj pri výpadkoch Storage ∙ CAP Theorem (Brewer’s theorem) – v distribuovanom prostredí je nemožné súčasne splniť viac ako 2 z nasledujúcich vlastností : ∙ consistency – každý uzol má rovnaký pohľad na dáta, vždy vráti najnovší úspešný zápis (lebo chybu) ∙ availability – každý uzol vráti nechybovou odpoveď v rozumnom čase (bez nutnosti garance vrátit najnovší zápis) ∙ partition tolerance – systém dokáže pracovať aj pri výpadkoch ∙ Ak dôjde k zlyhaniu sieťové komunikácie, mali by sme sa rozhodnúť: ∙ Zrušiť operáciu a tým znížiť dostupnosť, ale zaistit konzistentnosť ∙ Pokračovať v operácii, a tým zabezpečiť dostupnosť, ale vnést riziko nesúladu Storage Storage ∙ Distributed File Systems Storage ∙ Distributed File Systems ∙ súbory Storage ∙ Distributed File Systems ∙ súbory Storage ∙ Distributed File Systems ∙ súbory ∙ Relational Database Management Systems Storage ∙ Distributed File Systems ∙ súbory ∙ Relational Database Management Systems ∙ štruktúrované dáta ∙ SQL Storage ∙ Distributed File Systems ∙ súbory ∙ Relational Database Management Systems ∙ štruktúrované dáta ∙ SQL Storage – NoSQL Database Management Systems Storage – NoSQL Database Management Systems Nepotrebujú preddefinovanú schému Storage – NoSQL Database Management Systems Nepotrebujú preddefinovanú schému ∙ Key-Value stores Storage – NoSQL Database Management Systems Nepotrebujú preddefinovanú schému ∙ Key-Value stores ∙ typicky operácie put, get, delete ∙ rýchle Storage – NoSQL Database Management Systems Nepotrebujú preddefinovanú schému ∙ Key-Value stores ∙ typicky operácie put, get, delete ∙ rýchle Storage – NoSQL Database Management Systems Nepotrebujú preddefinovanú schému ∙ Key-Value stores ∙ typicky operácie put, get, delete ∙ rýchle ∙ Document stores Storage – NoSQL Database Management Systems Nepotrebujú preddefinovanú schému ∙ Key-Value stores ∙ typicky operácie put, get, delete ∙ rýchle ∙ Document stores ∙ Key-Value, kde Value má štruktúru (JSON, XML, . . . ) ∙ možnosť komplexnejších dotazov Storage – NoSQL Database Management Systems Nepotrebujú preddefinovanú schému ∙ Key-Value stores ∙ typicky operácie put, get, delete ∙ rýchle ∙ Document stores ∙ Key-Value, kde Value má štruktúru (JSON, XML, . . . ) ∙ možnosť komplexnejších dotazov Storage – NoSQL Database Management Systems ∙ Column-family stores Storage – NoSQL Database Management Systems ∙ Column-family stores ∙ column families s riadkami ∙ každý riadok je Key-Value, kde Value je množina stĺpcov (meno-hodnota) ∙ dotazovanie podobné SQL Storage – NoSQL Database Management Systems ∙ Column-family stores ∙ column families s riadkami ∙ každý riadok je Key-Value, kde Value je množina stĺpcov (meno-hodnota) ∙ dotazovanie podobné SQL Storage – NoSQL Database Management Systems ∙ Column-family stores ∙ column families s riadkami ∙ každý riadok je Key-Value, kde Value je množina stĺpcov (meno-hodnota) ∙ dotazovanie podobné SQL ∙ Graph databases Storage – NoSQL Database Management Systems ∙ Column-family stores ∙ column families s riadkami ∙ každý riadok je Key-Value, kde Value je množina stĺpcov (meno-hodnota) ∙ dotazovanie podobné SQL ∙ Graph databases ∙ ukladajú vrcholy a hrany medzi nimi (môžu mať atribúty) ∙ dotazovanie typicky cez jazyk Cypher alebo Gremlin Storage – NoSQL Database Management Systems ∙ Column-family stores ∙ column families s riadkami ∙ každý riadok je Key-Value, kde Value je množina stĺpcov (meno-hodnota) ∙ dotazovanie podobné SQL ∙ Graph databases ∙ ukladajú vrcholy a hrany medzi nimi (môžu mať atribúty) ∙ dotazovanie typicky cez jazyk Cypher alebo Gremlin Storage – NoSQL Database Management Systems ∙ Column-family stores ∙ column families s riadkami ∙ každý riadok je Key-Value, kde Value je množina stĺpcov (meno-hodnota) ∙ dotazovanie podobné SQL ∙ Graph databases ∙ ukladajú vrcholy a hrany medzi nimi (môžu mať atribúty) ∙ dotazovanie typicky cez jazyk Cypher alebo Gremlin Storage ∙ Multi-model databases Storage ∙ Multi-model databases ∙ uľahčujú tzv. polyglot persistence ∙ viacero typov databáz v jednej ∙ dotazovanie podobné SQL Storage ∙ Multi-model databases ∙ uľahčujú tzv. polyglot persistence ∙ viacero typov databáz v jednej ∙ dotazovanie podobné SQL Storage ∙ Multi-model databases ∙ uľahčujú tzv. polyglot persistence ∙ viacero typov databáz v jednej ∙ dotazovanie podobné SQL ∙ špecializované databázy Storage ∙ Multi-model databases ∙ uľahčujú tzv. polyglot persistence ∙ viacero typov databáz v jednej ∙ dotazovanie podobné SQL ∙ špecializované databázy ∙ Time-series, Spatial, . . . ∙ táto funkcionalita môže byť už zahrnutá v iných databázach Storage – NewSQL DBMS Storage – NewSQL DBMS Snaha o reákciu na vzostup NoSQL systémov vo svete tradičných SQL prístupoch Storage – NewSQL DBMS Snaha o reákciu na vzostup NoSQL systémov vo svete tradičných SQL prístupoch ∙ so zachováním ACID vlastností (Atomicity, Consistency, Isolation, Durability) Storage – NewSQL DBMS Snaha o reákciu na vzostup NoSQL systémov vo svete tradičných SQL prístupoch ∙ so zachováním ACID vlastností (Atomicity, Consistency, Isolation, Durability) ∙ do tej doby bolo pri implementácií škálovateľných architektúr potrebné niektoré riešenia Storage – NewSQL DBMS Snaha o reákciu na vzostup NoSQL systémov vo svete tradičných SQL prístupoch ∙ so zachováním ACID vlastností (Atomicity, Consistency, Isolation, Durability) ∙ do tej doby bolo pri implementácií škálovateľných architektúr potrebné niektoré riešenia ∙ na rozdiel od SQL neposkytovali dostatočné ACID a snažili sa prevažne o zachovanie konzistencie systému NewSQL riešenia sú založené na relačnom modeli Storage – NewSQL DBMS Snaha o reákciu na vzostup NoSQL systémov vo svete tradičných SQL prístupoch ∙ so zachováním ACID vlastností (Atomicity, Consistency, Isolation, Durability) ∙ do tej doby bolo pri implementácií škálovateľných architektúr potrebné niektoré riešenia ∙ na rozdiel od SQL neposkytovali dostatočné ACID a snažili sa prevažne o zachovanie konzistencie systému NewSQL riešenia sú založené na relačnom modeli ∙ používajú SQL ako hlavný jazyk rozhrania Storage – NewSQL DBMS Snaha o reákciu na vzostup NoSQL systémov vo svete tradičných SQL prístupoch ∙ so zachováním ACID vlastností (Atomicity, Consistency, Isolation, Durability) ∙ do tej doby bolo pri implementácií škálovateľných architektúr potrebné niektoré riešenia ∙ na rozdiel od SQL neposkytovali dostatočné ACID a snažili sa prevažne o zachovanie konzistencie systému NewSQL riešenia sú založené na relačnom modeli ∙ používajú SQL ako hlavný jazyk rozhrania ∙ klienti používajú tradičné databázové pojmy ako „table“ alebo „relation“ Storage – NewSQL DBMS Snaha o reákciu na vzostup NoSQL systémov vo svete tradičných SQL prístupoch ∙ so zachováním ACID vlastností (Atomicity, Consistency, Isolation, Durability) ∙ do tej doby bolo pri implementácií škálovateľných architektúr potrebné niektoré riešenia ∙ na rozdiel od SQL neposkytovali dostatočné ACID a snažili sa prevažne o zachovanie konzistencie systému NewSQL riešenia sú založené na relačnom modeli ∙ používajú SQL ako hlavný jazyk rozhrania ∙ klienti používajú tradičné databázové pojmy ako „table“ alebo „relation“ ∙ skutočná vnútorná reprezentácia môže byť úplné iná od tej v tradičných databázach ∙ napr. NuoDB môže ukladať formou key-value store (viď NoSQL databáze) Storage – NewSQL DBMS Základné charakteristiky architektúr: (prevzato z http://labs.sogeti.com/newsql-whats) Storage – NewSQL DBMS Rozdelenie NewSQL prístupov: Storage – NewSQL DBMS Rozdelenie NewSQL prístupov: ∙ Nové databáze ∙ komerčné: NuoDB (lze i community edition), ClustrixDB, Spanner (Google) ∙ open-source: VoltDB, Postgres-XC, Drizzle Storage – NewSQL DBMS Rozdelenie NewSQL prístupov: ∙ Nové databáze ∙ komerčné: NuoDB (lze i community edition), ClustrixDB, Spanner (Google) ∙ open-source: VoltDB, Postgres-XC, Drizzle ∙ Nové ukladanie dát pre MySQL ∙ rozšírujú možnosti škálovania vytvorením/rozšírením základných implementácií MySQL v otázkach ukladania dát ∙ TokuDB, GenieDB Storage – NewSQL DBMS Rozdelenie NewSQL prístupov: ∙ Nové databáze ∙ komerčné: NuoDB (lze i community edition), ClustrixDB, Spanner (Google) ∙ open-source: VoltDB, Postgres-XC, Drizzle ∙ Nové ukladanie dát pre MySQL ∙ rozšírujú možnosti škálovania vytvorením/rozšírením základných implementácií MySQL v otázkach ukladania dát ∙ TokuDB, GenieDB ∙ Transparentné zoskupovanie diskov ∙ ponechávajú relačnú databázu (najčastejšie MySQL) a snažia sa vytvoriť súborový systém, ktorý prepojí viacero serverov a tým poskytne požadovanú škálovateľnosť ∙ ScaleBase, Continuent Tungsten Processing Processing Výpočty musia byť paralelizovateľné! Processing Výpočty musia byť paralelizovateľné! ∙ dávkové spracovanie Processing - Hadoop MapReduce Processing Výpočty musia byť paralelizovateľné! ∙ dávkové spracovanie ∙ prúdové spracovanie Processing Výpočty musia byť paralelizovateľné! ∙ dávkové spracovanie ∙ prúdové spracovanie ∙ grafové spracovanie Processing Výpočty musia byť paralelizovateľné! ∙ dávkové spracovanie ∙ prúdové spracovanie ∙ grafové spracovanie ∙ vysokoúrovňovejšie spracovanie Processing - Hive Processing Výpočty musia byť paralelizovateľné! ∙ dávkové spracovanie ∙ prúdové spracovanie ∙ grafové spracovanie ∙ vysokoúrovňovejšie spracovanie ∙ všeobecne účelové spracovanie Processing - Spark Processing Výpočty musia byť paralelizovateľné! ∙ dávkové spracovanie ∙ prúdové spracovanie ∙ grafové spracovanie ∙ vysokoúrovňovejšie spracovanie ∙ všeobecne účelové spracovanie Processing Výpočty musia byť paralelizovateľné! ∙ dávkové spracovanie ∙ prúdové spracovanie ∙ grafové spracovanie ∙ vysokoúrovňovejšie spracovanie ∙ všeobecne účelové spracovanie Rekapitulácia 1. Čo sú to Big Data? ∙ new oil ∙ 4V ∙ veľa aplikačných domén 2. Ako s nimi pracovať? ∙ superpočítač vs cluster ∙ veeeeľa nástrojov ∙ mnoho účelov ∙ Transferring ∙ Storage ∙ Processing ∙ . . . macak@mail.muni.cz rebok@ics.muni.cz Osnova kurzu (Poradie kurzov sa móže zmeniť) ∙ Organizačné info & Úvod do Big Data ∙ Prezentácia navrhovaných projektov & Predstavenie výpočetního centra CERIT-SC a MetaCloudu ∙ Úvod do Data a Process Miningu ∙ Elasticsearch a jeho aplikácie, CopAS & grafové DBs ∙ Úvod do Apache Hadoop ekosystému ∙ Zvaná prednáška (téma bude upresněné) ∙ . . . Konzultácie projektov . . . ∙ Prezentácie projektov