socialgekon.com
  • Hlavná
  • Dizajn Značky
  • Uverejnenie
  • Finančné Procesy
  • Projektový Manažment
Veda O Údajoch A Databázy

Platforma Business Intelligence: Výukový program využívajúci agregačný kanál MongoDB

Použitím údaje na zodpovedanie zaujímavých otázok je to, čo majú vedci v dnešnom svete založenom na údajoch plné ruky práce. Vzhľadom na obrovské objemy dát je ich spracovanie a analýza veľká; najmä pre štatistikov alebo analytikov dát, ktorí nemajú čas investovať do výučby platforiem business intelligence alebo technológií poskytovaných ekosystémami Hadoop, Spark alebo NoSQL, ktoré by im pomohli analyzovať terabajty dát v priebehu niekoľkých minút.

Dnes je normou, že vedci alebo štatistici vytvárajú svoje modely na podmnožinách údajov v analytických balíkoch, ako je R , MATLAB alebo Oktáva , a potom zverte vzorce a kroky spracovania údajov IT tímom, ktoré potom vytvárajú riešenia analytiky výroby.

Jedným z problémov tohto prístupu je, že ak si výskumník uvedomí niečo nové po spustení modelu na všetkých produkčných dátach, proces sa musí opakovať znova a znova.



Čo ak by výskumník mohol pracovať s a Vývojár MongoDB a spustiť svoju analýzu všetkých produkčných údajov a použiť ich ako svoj prieskumný súbor údajov bez toho, aby ste sa museli učiť novú technológiu alebo zložité programovacie jazyky alebo dokonca SQL?

mongodb a business inteligencia

Ak použijeme Agregačný plynovod MongoDB a ZMYSEL efektívne to môžeme dosiahnuť v primerane krátkom čase. Prostredníctvom tohto článku a kódu, ktorý je k dispozícii tu v tomto úložisku GitHub , chceli by sme ukázať, aké ľahké je to dosiahnuť.

Väčšina nástrojov Business Intelligence, ktoré sú na trhu, poskytuje výskumníkom spôsoby, ako do tohto nástroja importovať súbory údajov z NoSQL a iných technológií veľkých dát. Potom sa transformácie a analýzy uskutočnia vo vnútri nástroja. Ale v tomto výučbe Business Intelligence používame silu MongoDB Aggregation Pipeline bez toho, aby sme vytiahli dáta z MongoDB, a výskumník používa jednoduché rozhranie na vykonávanie všetkých druhov transformácií na produkčnom systéme veľkých dát.

Agregačný kanál MongoDB pre Business Intelligence

Jednoducho povedané, agregačný kanál MongoDB je rámec na vykonávanie série transformácií údajov na množine údajov. Prvá fáza berie ako vstup celú zbierku dokumentov a od tej doby v každej nasledujúcej fáze berie ako vstup výslednú sadu predchádzajúcej transformácie a produkuje nejaký transformovaný výstup.

V agregačnom potrubí je možné použiť 10 typov transformácií:

  • $ geoNear: vypíše dokumenty v poradí od najbližších po najvzdialenejšie od zadaného bodu

  • $ match: filtruje vstupný záznam nastavený ľubovoľnými danými výrazmi

  • $ project: vytvorí výsledkovú sadu s podmnožinou vstupných polí alebo vypočítaných polí

  • $ redact: obmedzuje obsah dokumentov na základe informácií z dokumentu

  • $ unwind: vezme pole poľa s n prvkami z dokumentu a vráti n dokumentov s každým prvkom pridaným do každého dokumentu ako pole nahradzujúce toto pole

  • $ group: zoskupuje sa podľa jedného alebo viacerých stĺpcov a vykonáva agregácie v ďalších stĺpcoch

  • $ limit: vyberie prvých n dokumentov zo vstupných množín (užitočné pre výpočty percentilov atď.)

  • $ skip: ignoruje prvých n dokumentov zo vstupnej sady

  • $ sort: triedi všetky vstupné dokumenty podľa daného objektu

  • $ out: vezme všetky dokumenty vrátené z predchádzajúcej fázy a zapíše ich do zbierky

Okrem prvého a posledného v zozname vyššie neexistujú žiadne pravidlá týkajúce sa poradia, v ktorom sa môžu tieto transformácie použiť. $ out by sa malo použiť iba raz a na konci, ak chceme zapísať výsledok agregačného potrubia do novej alebo existujúcej kolekcie. $ geoNear je možné použiť iba ako prvý stupeň ropovodu.

Aby sme veci ľahšie pochopili, pozrime sa na dva datasety a dve otázky týkajúce sa týchto datasetov.

Rozdiel v platoch podľa označenia

Aby sme vysvetlili silu agregačného plynovodu MongoDB, stiahli sme si dataset, ktorý obsahuje platové informácie vysokoškolských inštruktorov pre celé USA. Tieto údaje sú k dispozícii na nces.ed.gov . Máme údaje od 7598 inštitúcií s nasledujúcimi poľami:

var FacultySchema = mongoose.Schema({ InstitutionName : String, AvgSalaryAll : Number, AVGSalaryProfessors : Number, AVGSalaryAssociateProfessors : Number, AVGSalaryAssistantProfessors : Number, AVGSalaryLecturers : Number, AVGSalaryInstructors : Number, StreetAddress : String, City : String, State : String, ZIPCode : String, MenStaffCount : Number, WomenStaffCount : Number }

Na základe týchto údajov chceme zistiť (v priemere), aký je rozdiel medzi platmi docentov a profesorov podľa štátu. Potom si docent môže uvedomiť, v akom stave je z hľadiska platu ohodnotený bližšie k profesorovi.

Ak chcete odpovedať na túto otázku, najskôr musí výskumný pracovník vyradiť zlé údaje zo zbierky, pretože v našom súbore údajov je niekoľko riadkov / dokumentov, kde je priemerný plat nulový alebo prázdny reťazec. Na dokončenie tohto vyčistenia množiny údajov pridáme nasledujúcu fázu:

{$match: {AVGSalaryProfessors: {$not: {$type: 2}}, AVGSalaryAssociateProfessors: {$not: {$type: 2}}}}

Týmto sa odfiltrujú všetky entity, ktoré majú v týchto dvoch poliach hodnoty reťazcov. V MongoDB je každý typ zastúpené jedinečným číslom - pre reťazce je číslo typu 2.

Táto množina údajov je dobrým príkladom, pretože pri analýze údajov v reálnom svete sa inžinieri často musia vysporiadať aj s vyčistením údajov.

Teraz, keď máme stabilné údaje, môžeme pokračovať v ďalšej fáze, kedy budeme priemerovať platy podľa stavu:

{$group: {_id: '$State', StateAVGSalaryProfessors: {$avg: '$AVGSalaryProfessors'}, StateAVGSalaryAssociateProfessors: {$avg: '$AVGSalaryAssociateProfessors'}}}

Potrebujeme len spustiť projekciu vyššie uvedenej výsledkovej sady a získať rozdiel v priemerných štátnych platoch, ako je uvedené nižšie v 3. etape nášho procesu:

{$project: {_ID: 1, SalaryDifference: {$subtract: ['$StateAVGSalaryProfessors', '$StateAVGSalaryAssociateProfessors']}}}

To by nám malo dať priemerný platový rozdiel na úrovni štátu medzi profesormi a docentmi zo súboru 7519 vzdelávacích inštitúcií po celých USA. Aby bola interpretácia týchto informácií ešte pohodlnejšia, urobme jednoduché triedenie, aby sme vedeli, ktorý štát má najmenší rozdiel, pridaním fázy $ sort:

{$sort: { SalaryDifference: 1}}

Z tohto súboru údajov je zrejmé, že Idaho, Kansas a Západná Virgínia sú tri štáty, v ktorých je rozdiel v platoch docentov a profesorov najmenší v porovnaní so všetkými ostatnými štátmi.

Celý agregačný kanál vygenerovaný pre toto je uvedený nižšie:

[ {$match: {AVGSalaryProfessors: {$not: {$type: 2}}, AVGSalaryAssociateProfessors: {$not: {$type: 2}}}}, {$group: {_id: '$State', StateAVGSalaryProfessors: {$avg: '$AVGSalaryProfessors'}, StateAVGSalaryAssociateProfessors: {$avg: '$AVGSalaryAssociateProfessors'}}}, {$project: {_ID: 1, SalaryDifference: {$subtract: ['$StateAVGSalaryProfessors', '$StateAVGSalaryAssociateProfessors']}}}, {$sort: { SalaryDifference: 1}} ]

Výsledný súbor údajov, ktorý sa zobrazí, vyzerá takto. Vedci môžu tiež tieto výsledky exportovať do formátu CSV, aby o nich mohli reportovať pomocou vizualizačných balíkov ako Tableau alebo prostredníctvom jednoduchých tabuliek programu Microsoft Excel.

príklad súboru údajov mongodb

Priemerná mzda podľa typu zamestnania

Ďalším príkladom, ktorý v tomto článku preskúmame, je súbor údajov získaný z www.data.gov . Vzhľadom na informácie o mzdách všetkých štátnych a miestnych vládnych organizácií v Spojených štátoch amerických by sme chceli zistiť priemernú mzdu zamestnancov finančnej správy na plný a čiastočný úväzok v každom štáte.

Dataset bol importovaný, výsledkom čoho je 1975 dokumentov, kde každý dokument dodržiava túto schému:

mongoose.Schema({ State : String, GovernmentFunction : String, FullTimeEmployees : Number, VariationPCT : Number, FullTimePay : Number, PartTimeEmployees : Number, PartTimePay : Number, PartTimeHours : Number, FullTimeEquivalentEmployment : Number, TotalEmployees : Number, TotalMarchPay : Number }, {collection: 'payroll'});

Odpoveď na túto otázku môže pomôcť zamestnancovi finančnej správy zvoliť si najlepší štát, do ktorého sa má presťahovať. S našim nástrojom založeným na agregovanom protokole MongoDB sa to dá urobiť celkom ľahko:

V prvej fáze vyfiltrujte stĺpec GovernmentFunction, aby ste zahodili všetky subjekty, ktoré nie sú „finančnou správou“:

{$match:{GovernmentFunction:'Financial Administration'}}

V ďalšej fáze tutoriálu zoskupíme entity podľa štátu a vypočítame priemerné platy na plný a čiastočný úväzok v jednotlivých štátoch:

{$group: {_id: '$State', FTP_AVG: {$avg: '$FullTimePay'}, PTM_AVG: {$avg: '$PartTimePay'}}}

Na záver zoraďujeme výsledky z lepšie platiacich štátov do menej platiacich štátov:

{$sort: {FTP_AVG: -1, PTM_AVG: -1}}

To by malo nástroju umožniť vygenerovať tento agregačný kanál:

[ {$match:{GovernmentFunction:'Financial Administration'}}, {$group: {_id: '$State', FTP_AVG: {$avg: '$FullTimePay'}, PTM_AVG: {$avg: '$PartTimePay'}}}, {$sort: {FTP_AVG: -1, PTM_AVG: -1}} ]

Spustenie agregačného potrubia by malo priniesť niektoré výsledky, ako je tento:

mongodb agregačný plynovod

Stavebné bloky

Na vytvorenie tejto aplikácie business intelligence sme použili ZMYSEL , čo je kombinácia MongoDB , ExpressJS , AngularJS a NodeJS .

ZNAMENÁ Business intelligence

Ako už možno viete, MongoDB je databáza dokumentov bez schémy. Aj keď je každý dokument, ktorý ukladá, obmedzený na veľkosť 16 MB, jeho flexibilita a výkon spolu s rámcom agregačného potrubia, ktorý poskytuje, robí MongoDB pre tento nástroj perfektným riešením. Začíname s MongoDB je veľmi jednoduché, vďaka jeho komplexná dokumentácia .

Node.js, ďalšia integrálna súčasť MEAN, poskytuje prostredie Javascript na strane servera založené na udalostiach. Node.js spúšťa Javascript pomocou motora V8 prehliadača Google Chrome. To, čo riadi, sú prísľuby škálovateľnosti Node.js veľa organizácií smerom k tomu.

Express.js je najpopulárnejší rámec webových aplikácií pre Node.js. Uľahčuje vytváranie rozhraní API alebo akýkoľvek iný druh podnikovej vrstvy na strane servera pre webové aplikácie. Je veľmi rýchly kvôli svojej minimalistickej povahe, ale je tiež dosť flexibilný.

AngularJS, vytvorený a udržiavaný množstvom inžinierov spoločnosti Google, sa rýchlo stáva jedným z najpopulárnejších front-endových rámcov Javascript, ktoré máme k dispozícii.

Existujú dva dôvody, prečo je MEAN taký populárny a naša voľba pre vývoj aplikácií na stránke techXplorers:

  • Zručnosť je jednoduchá. Inžinier, ktorý rozumie JavaScriptu, je dobrý vo všetkých vrstvách.

  • Komunikácia medzi frontendom a podnikmi až po databázové vrstvy sa deje všetko prostredníctvom objektov JSON, čo nám šetrí značný čas pri navrhovaní a vývoji v rôznych vrstvách.

Záver

V tomto výučbe plynovodu agregácie MongoDB sme demonštrovali nákladovo efektívny spôsob, ako dať výskumníkom nástroj, kde môžu využívať produkčné údaje ako prieskumné súbory údajov a spustiť rôzne sady transformácií, z ktorých sa dajú analyzovať a konštruovať modely.

Túto aplikáciu sme boli schopní vyvinúť a nasadiť end-to-end iba za 3 dni. Túto aplikáciu vyvinul tím 4 skúsených technikov (2 v USA a 2 v Indii) a dizajnér a nezávislý odborník na UX pomáha nám pri úvahách o dizajne rozhrania. V určitom okamihu v budúcnosti si nájdem čas a vysvetlím, ako táto úroveň spolupráce funguje pri vytváraní úžasných produktov v neuveriteľne krátkom čase.

Dúfame, že využijete výhody agregačného potrubia MongoDB a zveríte moc do rúk svojim výskumníkom, ktorí môžu pomocou inteligentnej analýzy a poznatkov zmeniť svet.

Táto aplikácia je živá na hranie tu .

Ako zjednodušiť súbežnosť pomocou reaktívneho modelovania v systéme Android

Mobilné

Ako zjednodušiť súbežnosť pomocou reaktívneho modelovania v systéme Android
Umenie kradnúť: Ako sa stať majstrom dizajnéra

Umenie kradnúť: Ako sa stať majstrom dizajnéra

Dizajn Používateľského Rozhrania

Populárne Príspevky
Kód Buggy CakePHP: 6 najčastejších chýb, ktoré vývojári CakePHP robia
Kód Buggy CakePHP: 6 najčastejších chýb, ktoré vývojári CakePHP robia
Príručka produktového dizajnéra ku konkurenčnej analýze
Príručka produktového dizajnéra ku konkurenčnej analýze
Komplexný zoznam agilných konferencií
Komplexný zoznam agilných konferencií
Štýly typografie pre web a redakčný a tlačený dizajn
Štýly typografie pre web a redakčný a tlačený dizajn
Recenzie spoločnosti Microsoft HoloLens - Preklenutie priepasti medzi AR a VR
Recenzie spoločnosti Microsoft HoloLens - Preklenutie priepasti medzi AR a VR
 
Riaditeľ plateného média
Riaditeľ plateného média
Zlé postupy pri návrhu databázy: Robíte tieto chyby?
Zlé postupy pri návrhu databázy: Robíte tieto chyby?
Ako nájsť stiahnuté súbory na iPhone
Ako nájsť stiahnuté súbory na iPhone
Vytvorenie Sprievodcu štýlom používateľského rozhrania pre lepšie UX
Vytvorenie Sprievodcu štýlom používateľského rozhrania pre lepšie UX
Osvedčené postupy mobilného elektronického obchodu pre UX (s infografikou)
Osvedčené postupy mobilného elektronického obchodu pre UX (s infografikou)
Kategórie
Inžiniersky ManažmentInvestori A FinancovanieÚpravaUverejneniePlánovanie A PrognózaAgilnýNástroje A Výukové ProgramyRise Of RemoteDistribuované TímyProjektový Manažment

© 2023 | Všetky Práva Vyhradené

socialgekon.com