Relační nebo NoSQL databáze? Nebo obojí? Jan Musil CEE IBM Analytics Platform Technical Sales jan_musil@cz.ibm.com 1
Opravník omylů NoSQL databáze mohou pracovat pouze v Cloudu. Není pravda, že relační databáze nemohou pracovat v Cloudu. relačním databázím zvoní hrana. 2
Předem dané schéma konstrukce knihovny Vše je uspořádané a konzistentní Velmi rychlé vyhledávání Pomalá aktualizace dlouho trvá, než se pro knihu najde správné místo Omezená kapacita daná kapacitou knihovny Pokud chci konkrétní knihu, musím čekat na její zařazení Velmi rychlá aktualize místo umístění není vázané žádným schámatem resp. konstrukcí Neomezená kapacita omezená pouze prostorem Nekonzistentní a neuspořádané Není vhodné pro velmi rychlé vyhledávání konkrétní knížky 3
Relační & distribuované databáze (aka relační ) NoSQL databáze (aka NoSQL ) Předem pevně daná struktura (schéma) Relační vazby Modifikace musí zanechat data konzistentní (transakční zpracování) Uživatelé mají přístup pouze k platným (konzistentním) datům. Chyba systému nesmí poškodit (ztratit) platná data V případě požadavku 24x7 jsou data dostupná i za cenu delší odezvy systému. Stabilní objem dat s realitvně přesným odhadem nárůstu do budoucna Struktura dat není předem známa Konzistence dat není podmínkou Mezi daty nejsou vazby (možnost vnoření) Volnější podpora víceuživatelského přístupu Jednoduché rozhraní pro manipulaci s daty Prioritou je vysoká dostupnost dat s okamžitou odpovědí Jednouchá škálovatelnost Krátkodobě velmi rychlý nárůst objemu dat Odhad nárůstu objemu dat do budoucna je obtížný až nemožný 4
RDBMS RDBMS vs. NoSQL databáze NoSQL Vyspělost a stabilita Vysoce specializovaná podpora Podpora analytického a BI zpracování Dlouholeté zkušenosti s údržbou Vysoce kvalifikovaní odborníci (DBA) Jednoduše horizontálně škálovatelné Zpracování velkého objemu dat Minimalizace údržby Nízké náklady na provoz Flexibilní datový model Specializovaná podpora horizontální škálovatelnosti Rychlé transakční zpracování může vyžadovat redukci objemu dat (archivace) Vysoce specializovaní DBA Nákladné servery a datová úložiště Pevný datový model (při změnách důkladná analýza jejich vlivu a nedostupnost dat) Nízká technologická vyspělost Nedostatečná podpora Nízká podpora analytických a BI nástrojů Stále se nedaří dosáhnout minimalizace údržby Chybí zkušenosti 5
Ukládání v relační databázi Firma Jméno Příjmení Ulice PSČ Obec Telefon E-mail Čalounictví Hřebíček Čenda Hřebíček Cvokařská 13 130 00 Postoloprty 777 888 999 cenda@hrebicek.cz 6
Ukládání v relační databázi Firma Jméno Titul Příjmení Ulice PSČ Obec Telefon E-mail Čalounictví Hřebíček NULL Čenda Hřebíček Cvokařská 13 130 00 Postoloprty 777 888 999 cenda@hrebicek.cz NULL JUDr. Jaroslav Čech Uliční 1999/1 149 00 Praha 11 9999 9999 chech@atlas.cz 7
Ukládání v relační databázi Popis Provádíme servis všech typů vozidel, mechanické Firma Titul Jméno Příjmení Ulice PSČ Obec Telefon E-mail Čalounictví Hřebíček NULL Čenda Hřebíček Cvokařská 13 130 00 Postoloprty 777 888 999 cenda@hrebicek.cz NULL JUDr. Jaroslav Čech Uliční 1999/1 149 00 Praha 11 9999 9999 chech@atlas.cz AUTOSERVIS NULL NULL NULL Milešovská 3 130 00 Praha 3 222 726 867 SAP3@email.cz WWW NULL NULL autoservisp3.wgz.cz 8
Ukládání v relační databázi Obrázek Popis Provádíme servis všech typů vozidel, mechanické Firma Titul Jméno Příjmení Ulice PSČ Obec Telefon E-mail Čalounictví Hřebíček NULL Čenda Hřebíček Cvokařská 13 130 00 Postoloprty 777 888 999 cenda@hrebicek.cz NULL JUDr. Jaroslav Čech Uliční 1999/1 149 00 Praha 11 9999 9999 chech@atlas.cz AUTOSERVIS NULL NULL NULL Milešovská 3 130 00 Praha 3 222 726 867 SAP3@email.cz NULL NULL Milena Záhadná NULL NULL NULL 789123456 sifrovane@kju.ar WWW NULL NULL autoservisp3.wgz.cz NULL 9
Ukládání v relační databázi Obrázek Provádíme servis všech typů vozidel, mechanické Hudební skladatel Popis Firma Titul Jméno Příjmení Ulice PSČ Obec Telefon E-mail Čalounictví Hřebíček NULL Čenda Hřebíček Cvokařská 13 130 00 Postoloprty 777 888 999 cenda@hrebicek.cz NULL JUDr. Jaroslav Čech Uliční 1999/1 149 00 Praha 11 9999 9999 chech@atlas.cz AUTOSERVIS NULL NULL NULL Milešovská 3 130 00 Praha 3 222 726 867 SAP3@email.cz NULL NULL Milena Záhadná NULL NULL NULL 789123456 sifrovane@kju.ar NULL NULL Petr Karát NULL NULL NULL NULL NULL WWW NULL NULL autoservisp3.wgz.cz NULL NULL 10
Ukládání v NoSQL databázi Firma: Čalounictví Hřebíček Jméno: Čenda Přijmení: Hřebíček Ulice: Cvokařská 13 PSČ: 130 00 Obec: Postoloprty Telefon: 777 888 999 Email: cenda@hrebicek.cz 11
Ukládání v NoSQL databázi Firma: Čalounictví Hřebíček Jméno: Čenda Přijmení: Hřebíček Ulice: Cvokařská 13 PSČ: 130 00 Obec: Postoloprty Telefon: 777 888 999 Email: cenda@hrebicek.cz Titul: JUDr. Jméno: Jaroslav Přijmení: Čech Ulice: Uliční 1999/1 PSČ: 149 00 Obec: Praha 11 Telefon: 9999 9999 Email: chech@atlas.cz 12
Ukládání v NoSQL databázi Popis: Provádíme servis všech typů vozidel, mechanické Firma: Čalounictví Hřebíček Jméno: Čenda Přijmení: Hřebíček Ulice: Cvokařská 13 PSČ: 130 00 Obec: Postoloprty Telefon: 777 888 999 Email: cenda@hrebicek.cz Titul: JUDr. Jméno: Jaroslav Přijmení: Čech Ulice: Uliční 1999/1 PSČ: 149 00 Obec: Praha 11 Telefon: 9999 9999 Email: chech@atlas.cz Firma: AUTOSERVIS Ulice: Milešovská 3 PSČ: 130 00 Obec: Praha 3 Telefon: 222 726 867 Email: SAP3@email.cz WWW: autoservisp3.wgz.cz 13
Ukládání v NoSQL databázi Obrázek: Popis: Provádíme servis všech typů vozidel, mechanické Firma: Čalounictví Hřebíček Jméno: Čenda Příjmení: Hřebíček Ulice: Cvokařská 13 PSČ: 130 00 Obec: Postoloprty Telefon: 777 888 999 Email: cenda@hrebicek.cz Titul: JUDr. Jméno: Jaroslav Příjmení: Čech Ulice: Uliční 1999/1 PSČ: 149 00 Obec: Praha 11 Telefon: 9999 9999 Email: chech@atlas.cz Firma: AUTOSERVIS Ulice: Milešovská 3 PSČ: 130 00 Obec: Praha 3 Telefon: 222 726 867 Email: SAP3@email.cz WWW: autoservisp3.wgz.cz Jméno: Milena Příjmení: Záhadná Telefon: 789123456 Email: sifrovane@kju.ar 14
Ukládání v NoSQL databázi Obrázek: Popis: Provádíme servis všech typů vozidel, mechanické Hudební skladatel Firma: Čalounictví Hřebíček Jméno: Čenda Příjmení: Hřebíček Ulice: Cvokařská 13 PSČ: 130 00 Obec: Postoloprty Telefon: 777 888 999 Email: cenda@hrebicek.cz Titul: JUDr. Jméno: Jaroslav Příjmení: Čech Ulice: Uliční 1999/1 PSČ: 149 00 Obec: Praha 11 Telefon: 9999 9999 Email: chech@atlas.cz Firma: AUTOSERVIS Ulice: Milešovská 3 PSČ: 130 00 Obec: Praha 3 Telefon: 222 726 867 Email: SAP3@email.cz WWW: autoservisp3.wgz.cz Jméno: Milena Příjmení: Záhadná Telefon: 789123456 Email: sifrovane@kju.ar Jméno: Petr Příjmení: Karát 15
CAP Teorém Distribuované systémy mohou být maximálně ve dvou z následujících třech stavů: -Consistency: Operace čtení vrátí stejná data z libovolného uzlu -Availability: Všichni mohou nepřetržitě zapisovat/číst bez ohledu na stav jednotlivých uzlů -Partition tolerance: Systém pracuje správně i přes chyby nebo zpoždění v síťové komunikaci mezi uzly Moderní interpretace -Při zpoždění/chybě v síťové komunikaci (P) si systém musí vybrat mezi konzistencí (C) nebo dostupností (A) CP garantuje konzistentní čtení resp. zápis na všech uzlech i za cenu dlouhé odezvy AP garantuje okamžitou odezvu i za cenu nekonzistentního výsledku 16 Copy right IBM Corporation 2015
AP systémy Potlačení konzistence ve prospěch dostupnosti a tolerance k narušení sítě resp. zpoždění na síti -Pouze eventuálně konzistentní Odlišný přístup ve srovnání s klasickými relačními systémy -Lze porušit pravidla ACID -Bez transakčního zpracování -Bez entitní a referenční integrity Ukládání dat v relačním formátu do předem známé struktury pozbývá smyslu -SQL jazyk není vhodný Řešení: NoSQL databáze 17 Copy right IBM Corporation 2015
NoSQL databáze Různorodost v datové struktuře -Grafy, Geo data, XML, JSON Jednoduchý dotazovací jazyk -Např. bez podpory joinů Není předem stanoveno schéma databáze -Struktura je součástí vlastního záznamu, např. ve formě klíč-hodnota Na aplikační úrovni podstatně jednodušší zpracování Jeden z představitelů: IBM Cloudant -jako služba -on-premise 18 Copy right IBM Corporation 2015
Co je to databáze jako služba (DBaaS)? 19 Kompletně v režii zákazníka Copy right IBM Corporation 2015 Design Admin Software Hardware Do-It-Yourself Udělej si sám V režii zákazníka V režii třetích stran Design Admin Software Hardware Infrastruktura jako služba IaaS V režii zákazník a V režii třetích stran Design Admin Software Hardware Databáze jako služba (DBaaS)
Výhody databáze jako služby Garantuje trvalou dobu provozu, dostupnost a škálovatelnost Eliminuje rizika spojená s administrací systému a správou databáze Snímá zodpovědnost za administraci a správu databáze z vývojářského týmu Vývojářský tým se může plně koncentrovat na vývoj aplikace 20 Copy right IBM Corporation 2015
Trochu historie V roce 2009 vytvořeno fyziky z MIT jako řešení pro zpracování velkého objemu dat (big data) z částicových urychlovačů Zpracování petabytů dat z Velkého hadronového urychlovače (LHC) Hosting pro vědce z celého světa Základem technologie je Apache CouchDB, se kterou je plně kompatibilní IBM uskutečnilo akvizici v únoru 2014 21 Copy right IBM Corporation 2015
Úvod do technologie IBM Cloudant Databáze jako služba (DBaaS) Představitel dokumentových databází -Data jsou ve tvaru JSON Technologie je vhodná pro mobilní, Web a IoT aplikace, které vyžadují: -Elastickou škálovatelnost -Vysokou dostupnost -Flexibilitu datového modelu 22 -Datovou mobilitu Dostupné jako: -Plně spravovaná DBaaS -On-premises privátní cloud -Hybridní architektura Služba dostupná 24x7x365 Globální DDN síť s více než 35 datovými centry Copy right IBM Corporation 2015
Cloudant DBaaS vs. Cloudant Local (On-Premise) DBaaS: Cloud database provisioning, správa a škálovatelnost se poskytuje zákazníkovi jako placená služba Cloudant databáze jako služba Security Synchronization Replication Performance Tuning Elastic Scalability High Availability Patching & Upgrading Cloudant OnPremise databázové prostředí Aplikace zákazníka Aplikace zákazníka On-Prem: On-premise database provisioning, správa a škálovatelnost se poskytuje zákazníkovi jako softwarový produkt s podporou 23 Copy right IBM Corporation 2015
IBM Cloudant kompletní infrastruktura 24 Copy right IBM Corporation 2014
Architektura Cloudant Local Požadavky na klastr -Databázové uzly Minimálně 3 uzly Rozšíření na libovolný počet -Load Balancer uzly Minimálně 1 uzel Doporučeny 2 z důvodu failover Podporované platformy -Debian 6.0.10 -Ubuntu Server 12.04.4 -Red Hat Enterprise Linux Server 6.5 -CentOS 6.5 25 Copy right IBM Corporation 2014
Cloudant HTTP API a nástroje HTTP RESTful API -GET PUT POST DELETE COPY -HTTP požadavek ve formě množiny URI endpoints Nástroje pro přímý přístup -Řádkové nástroje: curl, jq -Pluginy do Web prohlížečů: Postman, Chrome Poster, Chrome JSONView Příklady: 26 Copy right IBM Corporation 2014
Vývojové nástroje 27 Copy right IBM Corporation 2014
Obchodní modely Cloudant Managed Garantovaná výkonnost v prostředí Public Cloud DBaaS Cloudant Local Síla DBaaS v prostředí vlastního datového centra Cloudant Dedicated Hostováno a spravováno IBM Cloudant Multi-tenant Hostováno a spravováno IBM Hostováno na platformě zákazníka a spravováno prostřednictvím Cloudant DevOps služeb 24x7 Premium Support Community Support 24x7 Premium Support Určeno pro produkci, výkonnostní testy, PoC a vývoj Poplatky měsíčně, podle počtu uzlů Dostupné v prostředí SoftLayer, AWS, Rackspace, Azure data centers Určeno pro vývoj, testování a malá produkční prostředí Poplatky měsíčně, na základě přeneseného objemu dat a počtu HTTP API Dostupné v prostředí SoftLayer, Rackspace, Amazon, Azure Určeno pro produkci a vývoj Trvalá SW licence nebo měsíčně podle počtu uzlů On-premise nebo cloud platforma dle výběru 28 Single-tenant klastry Multi-tenant klastry Single-tenant klastry Copy right IBM Corporation 2014
Jan Musil jan_musil@cz.ibm.com 29 Copy right IBM Corporation 2014