Tartalmi kivonat
Szekeres Gergő 2011/2012 1. félév Óbudai Egyetem, Döntéstámogató Rendszerek Adatbányászat az Azure felhőben Döntéstámgató rendszerek Bevezető A dolgozat témájának az adatbányászati lehetőségeket választottam Azure környezetben. Az Azure nem más, mint a Microsoft felhő alapú szolgáltatása. Az Azure szolgáltatásai lényegében megegyeznek a „hagyományos” MSSQL 2008 szolgáltatásaival, viszont az eltérő architektúrából adódnak különbségek. A célom ezeknek a különbségeknek a bemutatása, valamint egy átfogó képet adni az Azure platform nyújtotta szolgáltatásokról. A dolgozatomban az elméleten túl egy gyakorlati példán keresztül bemutatom, hogy hogyan lehetséges az adatbányászat a felhőben. 1 Szekeres Gergő 2011/2012 1. félév Óbudai Egyetem, Döntéstámogató Rendszerek Áttekintés A Windows Azure platform egy felhő alapú számítási és szolgáltatási platform, amelynek komponensei a Microsoft
adatközpontjaiban futnak. Az alábbi ábra1 a platform összetevőit mutatja be. Az Azure és a felhasználó közti elsődleges interfész a Management Portál. Ez egy webes alapú rendszer, ahol a felhasználó minden szükséges beállítást elvégezhet. Az Azure több komponenst is tartalmaz, úgymint Windows Azure, SQL Azure, AppFabric, Marketplace. SQL Azure A Microsoft SQL Azure az MSSQL szerver szolgáltatásainak kiterjesztése a felhőbe. A „hagyományos” MSSQL szerverrel ellentétben, ami az esetek nagy részében az üzemeltető szerverein fut, a Microsoft SQL Azure Database - az Azure adatbázis szolgáltatása - a Microsoft adatközpontjainak egyikén működik. Az SQL Azure nem más, mint egy felhő alapú relációs adatbázis platform, amely SQL Server technológiára épült. Az Azure használatával lehetőség van egyszerűen létrehozni relációs adatbázis kezelő alkalmazásokat a felhőben, és kihasználni az előnyét az elosztott adatközpontok
által nyújtott nagyválllalati („enterprise”) elérhetőséget, skálázhatóságot és biztonságot a beépített adatvédelemmel és öngyógyító képességekkel. A legfontosabb előnyök Üzemeltetés SQL Azure a nagyválllalati adatközpontokra jellemző skálázhatóságot és funkcionalitását nyújt megnövekedett adminisztrációs tevékenységek nélkül, amit a saját üzemeltetésű SQL Serverek 1 A dolgozatban lévő ábrák az irodalomjegyzékben megadott Microsoft hivatalos dokumentációkból valók. 2 Szekeres Gergő 2011/2012 1. félév Óbudai Egyetem, Döntéstámogató Rendszerek esetén jelen lennének. Az önmenedzselő képesség lehetővé teszi az üzemben tartóknak, hogy adatszolgáltatást nyújtson az alkalmazásoknak anélkül, hogy az üzemeltetésre emberi és kiszámíthatatlan anyagi erőforrásokat kelljen áldoznia. Magas rendelkezésre állás Az SQL Azure Windows Server és SQL Server technológiákra épült, ami eléggé
flexibilis ahhoz, hogy megbírkózzon bármilyen használattal. A szolgáltatás számtalan redundáns másolatot tartalmaz az adatokról, így egy esetleges meghibásodás esetén a szolgáltatás automatikusan lekezeli azt, és továbbra is fenntartja a szolgáltatás elérhetőségét. Skálázhatóság A legnagyobb előnye az SQL Azure adatbázisnak, hogy egyszerűen lehet skálázni az alkalmazást. A „növekedéssel párhuzamos fejlesztés” („pay-as-you-grow”) fizetés lehetővé teszi, hogy csak annyi adatmennyiség után kelljen fizetni, amennyit ténylegesen felhasználunk. Ez tökéletes lehet olyan alkalmazások esetén, aminek a terheltsége időnként kiugró (például a Neptun rendszer), vagy hosszú távon nehezen tervezhető (nincs szükség folyamatos bővítésre, vagy éppen hatalmas kezdeti beruházásra). A megrendelt szolgáltatáshoz egyszerűen bármikor további erőforrásokat adhatunk, így növelve alkalmazásunk teljesítményét. Relációs
adatmodell Az SQL Azure az MSQL szerver alapjaira épül, így a fejlesztőknek nincs szükség új technológiákat megtanulni, mert az adattárolás pontosan ugyan úgy történik, mint egy „hagyományos” SQL szerver esetén. Az azonos felépítés miatt továbbra is lehetőség van adatbázisok létrehozására, amiben szintén lehetnek táblák, nézetek, tárolt eljárások és egyéb, már korábbról ismert adatbázis objektumok. Ez a megoldás lehetővé teszi, hogy a korábban megszerzett „hagyományos” SQL tapasztalatokat a felhőben futó alkalmazás esetén is hasznosíthassuk. SQL Azure Data Access Adathozzáférés A hagyományos helyi alkalmazásokban – néhány kivételtől eltekintve - alkalmazás kódja és az adatbázis egy fizikai adatközpontban vannak. Az SQL Azure ezen felül egy alternatív felépítést is nyújt. Az alábbi ábra azt a két lehetőséget mutatja meg, hogy az alkalmazás hogyan férhet az adatokhoz. 3 Szekeres Gergő 2011/2012
1. félév Óbudai Egyetem, Döntéstámogató Rendszerek Az „A” esetben (bal oldalt) az alkalmazás kódja az üzemeltetőnél maradt, de az adatok átkerülnek a „felhőbe”. Az alkalmazás kliens oldalon lévő programkódokat (osztálykönyvtárakat) használ, hogy hozzáférhessen az adatokon. Független, hogy milyen osztálykönyvtár van használatban, az adatok TDS protokollon SSL használatával kerülnek átvitelre. A „B” esetben az alkalmazás az Windows Azureban és az adatbázis az SQL Azureban van. Az alkalmazás ugyanazokat az osztálykönyvtárakat használhatja, mint az „A” estben. Az adatelérésben tehát nincs különbség a két eset között, egyedül az alkalmazás futásának helyszíne változott. Fontos megjegyezni, hogy a „B” esetben vagy vékony kliensű alkalmazást (például webes alapú alkalmazást), vagy webservice-ken keresztül a Windows Azureral kommunikáló alkalmazást lehet létrehozni. Adattárolás a felhőben Az SQL
szerver megjelenése és funkciói változatlanok az SQL Azure és a helyi adatbázis szerver között. Ellenben van néhány különbség a Transact-SQL és a belépés kezelése között. 4 Szekeres Gergő 2011/2012 1. félév Óbudai Egyetem, Döntéstámogató Rendszerek Amikor csak az adatok kerülnek át a felhőben, fontos, hogy vegyük figyelembe a hálózati késleltetést az adattároló és az alkalmazás között. Ez nagyobb, mintha az adatbázis is a helyi kiszolgálón működne. Az egyetlen lehetőség a késleltetés csökkentésére, hogy az alkalmazást is a felhőbe költöztetjük. Alkalmazás üzemeltetése a felhőben Az alkalmazás hosztolása a Windows Azureban opcionális, a felhasználó igényeitől függ, hogy van-e erre szükség. Ha az alkalmazás szintén a felhőben található, abban az esetben nagyobb teljesítmény érhető el a minimalizált hálózati késleltetés miatt. Ebben az esetben az alkalmazás és az adatbázis közötti hálózati
kommunikáció minimális időre csökken, hisz mindkettő egy adatközponton belül helyezkedik el, egyedül a kliens-alkalmazás közti kommunikáció jelenthet komolyabb válaszidőt. SQL Azure architektúra A Microsoft SQL Azure szolgáltatás a Microsoft adatközpontokban futó SQL Servereken futnak. Architekturális értelemben 4 absztrakciós réteget különböztethetünk meg, amik együtt dolgoznak, hogy kiszolgálják az alkalmazásokat: kliens, szolgáltatás, platform és infrastrukturális réteg. Ennek vizualizációját láthatjuk az alábbi ábrán: 5 Szekeres Gergő 2011/2012 1. félév Óbudai Egyetem, Döntéstámogató Rendszerek Kliens réteg A kliens réteg van a legközelebb az alkalmazáshoz, és ezt használja az alkalmazás, hogy kommunikáljon az SQL Azureral. A kliens réteg lehet az alkalmazó adatközpontjában, és a Windows Azure-ban is. Mivel az SQL Azure ugyanazt a TDS interfészt biztosítja, mint a helyi SQL szerver, így mindkettő esetében
használhatjuk a már megszokott eszközeinket. Szolgáltatás réteg A szolgáltatás réteg funkcionalitása egy átjáró biztosítása a kliens és a platform réteg között. A szolgáltatás réteg 3 funkciót támogat: • • • „Provisioning” szolgáltatás összekapcsolja a megadott adatbázist a Windows Azure platform felhasználói fiókkal „Billing and metering” lehetővé teszi a több bérlő általi felhasználási módot, így felhasználói fiókonként történik a számlátás. „Connection Routing” az alkalmazás és a fizikai szerver közti adatszolgáltatást valósítja meg Platform réteg Tartalmazza a fizikai szervert és a szolgáltatást, ami a szerviz réteget támogatja. A platform réteg több SQL Server példányból áll, amelyek a kezelését az SQL Azure „fabric” végzi. Infrastrukturális réteg Az infrastrukturális réteg a fizikai hardvert és az operációs rendszert reprezentálja a szerviz funkciók támogatásához.
Reporting funkció használat közben Az alábbiakban egy egyszerű példán szeretném bemutatni, hogy hogyan lehetséges riportokat, illetve kimutatásokat készíteni egy már meglévő adatbázis infrastruktúrából. A példában szereplő funkció nagyon egyszerű, de a technológia lehetővé teszi ennél bonyolultabb feladatok végrehajtását is. 1. ábraforrás: Microsoft Riport létrehozása, mint riportkészítő Az SQL Server Management Studio segítségével kapcsolódjunk az Azure SQL kiszolgálóhoz, és hozzunk létre egy nézet táblát (ez a lépés kihagyható, de a kód-újrahasznosítás szempontjából célszerű a nézettáblák használata). 6 Szekeres Gergő 2011/2012 1. félév Óbudai Egyetem, Döntéstámogató Rendszerek A Visual Studioban hozzunk létre egy Report Server projektet Állítsuk be az adatforrást. Adjunk hozzá egy riportot. Ennek hatására egy riport-varázsló nyílik meg 7 Szekeres Gergő 2011/2012 1. félév Óbudai
Egyetem, Döntéstámogató Rendszerek Válasszuk ki a már beállított adatforrást Írjuk meg a riport lekérdezését (itt a már létrehozott nézet táblát használjuk, természetesen bármilyen bonyolultabb lekérdezés megadható) Beállítható, hogy a táblázatban mi alapján legyenek csoportosítva az adatok (ez nem azonos az SQL group by csoportosításával!) Ha elkészült a riport az alábbi képernyőt láthatjuk, ahol tervező nézetben további beállításokra van lehetőség. A preview nézetben megnézhetjük, hogy hogyan fog kinézni a riport (valós) adatokkal 8 Szekeres Gergő 2011/2012 1. félév Óbudai Egyetem, Döntéstámogató Rendszerek A riporthoz egyszerűen hozzáadhatunk grafikonokat is Ha kész vagyunk a riport szerkesztésével, jelentkezzünk be az Azure menedzsment felületére felhasználónevünkkel és jelszavunkkal. Az újonnan létrehozott riport adatlapjáról másoljuk ki a Web Service URL-t. 9 Szekeres Gergő 2011/2012
1. félév Óbudai Egyetem, Döntéstámogató Rendszerek Illesszük most be a Visual Studióban szerkesztett riport Property ablakának TargetServerURL mezőjébe. Fontos, hogy ha az OverwriteDatasets és OverwriteDataSource mező nincs True-ra állítva, akkor nem fog érvényre jutni a beállítás A „solution explorer” ablakban a megoldásra kattintva a deploy funkciót kiválasztva telepíthetjük az alkalmazást Ezek után egy ablakban a rendszer be fogja kérni a riportnak az Azure felületen generált felhasználónevét és jelszavát A riport oldalát böngészőben megnyitva, és a riportot kiválasztva, elérhetővé válik a felhőben futó riportunk. 10 Szekeres Gergő 2011/2012 1. félév Óbudai Egyetem, Döntéstámogató Rendszerek Ezzel a megoldással általában beágyazott riportok esetén találkozhatunk. Ilyen lehet egy felhőben (vagy akár egy lokálisan) üzemeltetett alkalmazás, vagy akár egy SharePoint szerver. A riportkészítő által
elkészített riportok egyszerűen, egy rendszerüzemeltető által is könnyen beilleszthetőek egy alkalmazásban, ami intranetes környezetben nagyon hasznos lehet. A végfelhasználóknak azonban sokszor sokkal egyszerűbb megoldásra van szükségük. A továbbiakban erre láthatunk egy példát. Riport készítése, mint felső szintű felhasználó Nagy képzelőerő nélkül is könnyen belátható, hogy egy top menedzser, vagy egy Business Analyst munkakörben dolgozó döntéshozó a fenti lépéseket vagy nem tudja, esetleg nem is akarja végrehajtani, ugyanakkor nagyon hasznos lehet, ha saját magának össze tud „kattintgatni” egy kimutatást. Nekik nyújt segítséget a PowerPivot, ami a sokak által jól ismert Excel segítségével nyújt lehetőséget a számunkra releváns adatok és összefüggések megjelenítésére. Egy Excel munkafüzetben kattintsunk a PowerPivot fülre, majd a PowerPivot ablak gombra Válasszuk a Microsoft SQL Azure adatforrás típust 11
Szekeres Gergő 2011/2012 1. félév Óbudai Egyetem, Döntéstámogató Rendszerek Miután kiválasztottuk az adatforrást, lehetőség van a nézettábla további módosítására is. Ha elkészültünk, a PowerPivot gombra kattintva visszajutunk az Excelbe, ahol a beillesztett PowerPivot táblát beillesztve találjuk a munkafüzetünkbe. Ezek után egyszerű „fogd és vidd” módszerrel felépíthetjük a megjelenítendő táblázatot. A különböző szűrési feltételeket bármikor meg lehet változatni, és a csoportosítást is bár egyszerűen módosíthatja A generált kimutatásban lehetőség van akár évenkénti szűrésre, és az osztály kiválasztására. Mindezt bármilyen programozási tudás nélkül, alapszintű Office ismeretekkel megvalósítható. Összefoglalás Az SQL Azure használata minimálisan tér el a már megszokott SQL Server 2008 funkcióktól, ugyanakkor nagyon sok előnnyel rendelkezik. Ezek az előnyök egy kisvállalat számára
ugyanúgy érezhetőek, mint egy világméretű cégnek, így az alkalmazási köre rendkívül nagy lehet. Ne felejtsük el, hogy a bemutatott példákon a kliens bármilyen számítógép lehet, amin egy böngésző, illetve egy Excel fut. A vállalatnak nincs szüksége költséges hardware beruházásra, ráadásul ebből a végfelhasználó semmit nem észlel. A logikusan felépített architektúrának hála, a szolgáltatás interfésze teljesen megegyezik egy helyileg telepített SQL Server szolgáltatásaival, így az eddig megismert eszközök és tudás egyaránt használható. 12 Szekeres Gergő 2011/2012 1. félév Óbudai Egyetem, Döntéstámogató Rendszerek Irodalomjegyzék Hivatalos Azure dokumentáció (Microsoft): http://msdn.microsoftcom/en-us/library/windowsazure/gg552870aspx Azure riportok és a „hagyományos” riportok http://www.microsoftcom/windowsazure/features/reporting/ összehasonlítása (Microsoft): Riport létrehozás bemutatása
(Microsoft): http://www.microsoftcom/en-us/showcase/detailsaspx?uuid=4b811bbb-3d9b-4a2f-91871cb06e175bc3 PowerPivot oktatóanyag (Microsoft): http://www.microsoftcom/en-us/showcase/detailsaspx?uuid=dfb1ac98-ab80-4f8f-ab8e89e6bfdb02a7 Jelen dokumentum az irodalomjegyzékben feltüntetett weboldalak a 2011.1118 napi állapota alapján készült 13