MUMPS - a legfontosabb Adatbázis amiről (valószínűleg) soha nem hallott • Publikálta William Vorhies 2016 január 28-án publikáció eredeti nyelven : http://www.datasciencecentral.com/profiles/blogs/mumps-themost-important-database-you-probably-never-heard-of • Szerző: Bill Vorhies Adat Kutató-Központ a Gyakorlati és tudományos Kereskedelmi Prediktív Adatmodellezés szerkesztőbizottságának igazgatója 2001 óta . Elérhetősége:
[email protected]
Összegzés: ha azt mondom neked van egy adatbázis széles körben használják, hogy mindent tud amit RDBMS és Hadoop-al lehet csinálni, de 50 éves? Soha nem hallottál MUMPS-ról? Nézd meg ezeket a megdöbbentő tényeket. Ha még soha nem hallottál a MUMPS-ról ne érezd magad magányos farkasnak. Egy kollégám említette nekem, és elvitt egy kis kutatásra. Amit én találtam , igazán elképesztő ! • MUMPS 1966-ban született megoldásként a nagy adattömegek feldolgozására többfelhasználós rendszerekben az egészségügyi ágazat számára. • Jóval megelőzte az RDBMS(relációs adatbáziskezelők) -et , de mindazokat a funkciókat és a NoSQL-t is beleértve (modern formájában) masszív párhuzamos feldolgozást biztosít, jól méretezhető, és fut a mai kor összes szokványos hardverén. • Könnyedén alkalmazható az adatmodellezés mind a négy típusa NoSQL DBS (kulcs-érték, oszlop, dokumentum, gráf). A 70-es és 80-as évektől, divatos RDBMS modellt is kezeli akár SQL lekérdezésekkel. • Osztott funkciójú NewSQL, és ráadásul teljesen ACID-kompatibilis. • Ma is él és virul sokféle egészségügyi ellátásra vonatkozó betegjogi információs rendszereknél, banki rendszerekben, az Európai Értéktőzsde alapszoftvere, valamint az utazási ágazatban szerte a világban. Ha már jártál orvosnál vagy a kórházban (USA), vagy használtál banki ATM-et szerte a világban, akkor valószínű, hogy az adatok feldolgozása és tárolása MUMPS-alapú rendszerrel volt megvalósítva. Annak ellenére, hogy 2016 -ot írunk (a MUMPS 50. évfordulója) még mindig megfelel a kor kereskedelmi igényeinek, és megmutatják, hogy nem szorulnak ki az egészségügyi vagy a nagy pénzügyi intézmények ellátó rendszereiből az RDBMS vagy NoSQL alternatívák ellnére sem. Nem túlzás azt állítani, hogy MUMPS -ban előbb volt NoSQL véna , minthogy a Google kutatói elkezdtek volna NoSQL-el foglalkozni.
Egy kis háttér. Eredetileg 1966-ban és azóta is folyamatosan frissítették az évek során, MUMPS eredeti nevén M assachusetts General Hospital U tility M ulti P rogramming S ystem vagy rövid néven M. Eredetileg kórházban fejlesztették ( és végül a banki szektorban), nagy áteresztőképességű többfelhasználós tranzakció-feldolgozás megvalósítására. Ahogy RDBMS -ek kifejlődtek (és végső soron NoSQL és NewSQL-ek is) a MUMPS rendszerek nem csak életképesek maradtak, de kiváló teljesítményt és méretezhetőséget nyújtva megfelelnek még a mai elvárásoknak is. Az eredeti megoldandó probléma az volt, hogyan tudni kell fogadni, tárolni, és feldolgozni a legkülönbözőbb tesztekkel és egyéb gyors ütemben előállított/gyűjtött adatokkal bíró egyetlen paciens/beteg napi feldolgozását. Ez magában legalább 12 különböző szerkezetű adathalmaz, beleértve a hőmérsékletet, a pulzusszám, a vér oxigén, vér pH, és mások. A kapott adatokat szenzorok segítségével (elektródák) számos mérést követően valós időben kell feldolgozni, valamint laboratóriumi vizsgálatokat elvégezni többször naponta betegenként. Átlagosan egy beteg adatokat el kell érnie mintegy 20 orvosnak/egészségügyi személyzetnek , és mindezt több 100.000 betegre vetítve is biztosítani kell. A dolog, kísértetiesen hasonlít a ma alkalmazott internetes adatfeldolgozáshoz, amit a modern IT világ csak a közelmúltban oldott meg a Spark és a Storm technológiákkal, ellenben a MUMPS redszereknek ezt sikerült produkálnia és megfelelnie már 40 , 50 évvel ezelőtt . MUMPS más néven A MUMPS eredeti szerzői jogai lejártak körülbelül egy évtizeddel ezelőtt. Egy továbbfejlesztett és aktívan fejleszetett utódja változatát forgalmaza az InterSystems Corp. CACHE néven. További változata is ismert, GT.M néven , elérhető Linux alatt ingyenes, nyílt forráskódú licenceléssel. Google rákeresésben még néhány találatot kapunk MUMPS alatt. Volt még egy mozgalom néhány évvel ezelőtt, hogy egyszerűen átkereszteljék "M"-nek, így érdemes erre is rákeresni MUMPS / M. Létezik Adatbázis belső nyelvi elemekkel a saját adatbázis-hoz? Ez a különlegesség tette a MUMPS -ot egyszerre hatékonyá és sikeressé. A MUMPS mindkét dolgot (adatbázis és programnyelv) egyszerre tartalmazza. Mivel a nyelv összeintegrálva jelenik meg az adatbázissal , az adatelérés a legoptimalizáltabb. A programnyelvet kritikákkal illették , miszerint archaikus , modern nyelvekkel összehasonlítva mint pl. a Pyton . Miután a "beépített" adatbázis lehetővé teszi MUMPS adatok magas szintű hozzáférését , más nyelvekre nincs is szüksége a programozás terén. Az adathozzáférés lehet "változók" (kulcsok) és "tömbök" (táblák), amelyek szerkezete tetszőleges/változatos. Az alapértelmezett szerkezet kulcsérték (bár MUMPS könnyedén kezeli a dokumentum, oszlopos, gráf, vagy akár RDBMS-relációs) és más modern párhuzamos JSON modelleket is. A szerkezet séma nélküli, és az adatokat tárolt többdimenziós hierarchikus gyér tömbök (más néven kulcs-érték csomópontok, al-fák, vagy asszociatív memória). Minden tömb lehet akár 32 index-kulcsú / dimenziójú. Úristen ! Ez úgy hangzik ,mintha megtaláltam volna a szent-forrását a Hadoop -nak :-) A legfontosabb, hogy a sebesség és a hatékonyság kulcsa, hogy az adatbázis elérhető közvetlenül a változók tárolási helyén , lekérdezések vagy keresés céljából is. A jellemzője a MUMPS-nyelv / DB -nek, hogy a felejtő memóriát(változó) és nem felejtő tárolót(global) ugyanazon szintaxissal
valósítja meg, amely lehetővé teszi egy funkció működéséhez mindkét memo-változó (illékony) vagy globális (nem felejtő) változót. Gyakorlatilag, ez biztosítja a rendkívül nagy teljesítményű adatokhoz való hozzáférést. Michael Byrne, erről így ír a Motherboard -nak publikált cikkében : "Változók (vagy kulcsértékek, ebben az esetben) csak címek különböző memória helyek az említett tömbökben, amelyek úgynevezett globalok a MUMPS adatbázisban. A MUMPS rendszer, amelyet lehet futtatni számos számítógép architektúrán, saját adathalmazt globális tömbökként tárol a nem felejtő memóriában(disk-en). Tehát, ellentétben a tömbök nyelvi fogalmával , mint a C ++, amely csak az adott program futási időtartama alatt, illetve a program létezésén belül a RAMcímtartományban valósul meg, a MUMPS képes globális tárolására a szerveren, hozzáférhető adott/bármely időpontban a rendszeren belül. Mi azt mondjuk, hogy ez tartós/perzisztens. " "Az eredmény az, hogy a MUMPS programozó az adatbázist közvetlenül “érinti” még lekérdezések esetében is. Ez gyorsabb, azzal ellentétben, mikor is egy köztes leképező/lekérdező nyelvvel valósítjuk meg az adathozzáférést , így lehetővé teszi egy csomó alternatív programozási ötlet megvalósíthatóságát. Az egy dolog, hogy mint programozó, tudok létrehozni egy tárolási elemet global-t, és adhatok meg még "leszármazottakat”/al-node is, aminek lehetnek további tulajdonságait is, ezen elemen belül. Szóval, mi csak összeszedünk különböző dolgokat , amik egy globál-ba tartozók , és bármikor hozzátehetünk menet közben mezőket-tulajdonságokat. Az összefüggések kapcsolati struktúrája hierarchikus. " Ki használ még ma is MUMPS-ot ? A MUMPS legfőbb hírnőke a Veteránok Egészségügyi Információs Rendszerek és Technológiai Architecture (Vista), amely egy hatalmas szoftvercsomag és mintegy 80 különböző szoftver modulot tartalmaz, támogatják a legnagyobb egészségügyi rendszereket az Egyesült Államokban. Fenntartja az elektronikus egészségügyi nyilvántartást 8 millió egyén által használt 180,000 egészségügyi személyzet szerte 163 kórházakban, több mint 800 klinikán, és 135 ápolási otthonban. Ez valósítja meg jelenleg az országos (USA) orvosi egészségügyi nyilvántartásokat egy közös hálózatban. • Indián Egészségügyi Szolgáltatás • Védelmi Minisztérium CHCS kórházi rendszer Jelenleg is MUMPS-ot használó nagy egészségügyi cégek • • • • • • • • • • •
Care központ Allscripts , Epics Coventry Egészségügy EMIS Partner HealthCare (beleértve a Massachusetts General Hospital) MEDITECH GE Healthcare (korábban IDX rendszerek és Centricity) Sunquest Információs Rendszerek Sok referencialaboratóriumok mint például DASA Quest Diagnostics Dynacare
MUMPS-ot használó pénzügyi intézmények • Ameritrade, a legnagyobb online kereskedelmi szolgáltatás az USA-ban több mint 12 milliárd tranzakció naponta • Bank of England • Barclays Bank 2010-ben, az Európai Űrügynökség a MUMPS / Cache -t választotta, hogy támogassa a Gaia küldetést, melynek feladata , hogy feltérképezzék a Tejút-at eddíg soha nem látott pontossággal.
Erősségek MUMPS megvalósítja az összes modellt ami létezik a NoSQL területén , és egyértelműen nagyon érett (50 éve bevált) technológia . • Rugalmas méretezhetőség/skálázhatóság, több akár “fapados” szerverekre. • Célja, hogy támogassa a Big Data mennyiségű adatfeldolgozást de ezentúl képes RDBMS szolgáltatásra is különlegesen jó teljesítményel. • Rendkívül egyszerűen adminisztrálható , lényegében nem igényel DBA-t. • Alsókategóriás hardvereken is hatékonyan használható és nyílt forráskódú. • Rugalmas adatmodellezésre képes , könnyen leutánozza akár az RDBMS funkciókat, támogatja kulcs-érték, dokumentum, és a gráf architektúrákat. • Könnyedén támogatja a fejlett analitikai megoldásokat és BI SQL-t. • Teljes ACID OLTP megfelelőség Gyengeségek • Nem ismert széles körben. Az egészségügy és pénügyi területen kívül kis piaci részesedéssel bír . • Kevés programozó . • Kevés kellék/segéd-program , leszámítva a kódkönyvtárakat amit InterSystems (a kereskedelmi értékesítő) biztosít.
Ezen technológiának nagy szüksége van az upgrade-re ? Csábító volna azt gondolni, hogy miért nem házasodnak össze a MUMPS és a Hadoop? A tény , hogy MUMPS nagyonis jól skálázható, és teljesítőképessége lehetővé teszi hogy minden módon Hadoop megoldás lehessen. Próbálom “összecsavarozni” őket (MUMPS,Hadoop) csak úgy tűnik, feleslegesen bonyolultá válna az eredmény és a nyereség mértéke a teljesítmény rovására íródna. Plusz megfelelni ama követelménynek , hogy a műszaki IT szakemberek számára, akik megértik a két rendszert, valahogy tartsuk őket szinkronban. Inkább NEM, a MUMPS rendben van, csak úgy, ahogy van.
Mi lehetőség van ebben ? Ezekután, bárki úgy döntene, hogy egy induló új projekthez a MUMPS-ot választja Hadoop vagy RDBMS helyett? Feltehetőleg nem. Mivel nincs elérhető , elegendő programozói kapacitás kürülöttünk. Azonban, ha az egészségügyben, vagy a pénzügyi területen dolgozik, különösen ott, ahol MUMPS már használatban van , ez nem is kérdés . A keresés a LinkedIn-en hozott mindössze 699 MUMPS fejlesztőt és 77 cache fejlesztőt . Ha már elsajátította a NoSQL -t és versenyelőnyt szeretne ez egy eléggé kicsi közösség. A MUMPS -ot mesteri szinten művelők viszont könnyen kihasználhatják a jó fizetés és a munkahelyi biztonságot az alkalmazási területeken.
Fordította : 2016 © CaIS-System Austria www.caisys.at