apeescape2.com
  • Põhiline
  • Elustiil
  • Planeerimine Ja Prognoosimine
  • Muu
  • Brändikujundus
Andmeteadus Ja Andmebaasid

Ärianalüüsi platvorm: õpetus MongoDB liitmise torujuhtme abil

Kasutamine andmed huvitavatele küsimustele vastamiseks teadlased on hõivatud tänapäevases andmepõhises maailmas. Arvestades tohutut andmemahtu, on nende töötlemise ja analüüsimise väljakutse suur; eriti statistikute või andmeanalüütikute jaoks, kellel pole aega investeerida äriteabe platvormide õppimisse või Hadoopi ökosüsteemi, Sparki või NoSQL-i andmebaaside pakutavatesse tehnoloogiatesse, mis aitaksid neil terabaiti andmeid minutite jooksul analüüsida.

Tänapäeval on normiks, et teadlased või statistikud ehitavad oma mudelid selliste analüüsipakettide andmete alamhulkadele R , MATLAB või Oktaav ja seejärel andke valemid ja andmetöötlusetapid IT-meeskondadele, kes seejärel toodangu analüüsi lahendusi loovad.



Selle lähenemisviisi üks probleem on see, et kui teadlane mõistab midagi uut pärast oma mudeli käitamist kõigi tootmises olevate andmete suhtes, tuleb seda protsessi uuesti korrata.

Mis oleks, kui teadlane saaks töötada a MongoDB arendaja analüüsida kõiki tootmisandmeid ja kasutada seda oma uurimusliku andmekogumina, ilma et peaks õppima mingit uut tehnoloogiat või keerukaid programmeerimiskeeli või isegi SQL-i?

mongodb ja äriteave



Kui me kasutame MongoDB's Aggregation Pipeline ja TÄHENDA tõhusalt suudame selle saavutada üsna lühikese aja jooksul. Selle artikli ja saadaoleva koodi kaudu siin selles GitHubi hoidlas , tahaksime näidata, kui lihtne on seda saavutada.

Enamik turul olevaid äriteabe tööriistu pakub teadlastele võimalusi importida tööriista NoSQL-i ja teiste Big Data tehnoloogiate andmekogumeid, seejärel tehakse teisendused ja analüüs tööriista sees. Kuid selles äriteabe õpetuses kasutame MongoDB liitmise torujuhtme jõudu, ilma et andmeid MongoDB-st välja tõmmataks, ja teadlane kasutab tootmise suurandmete süsteemis igasuguste teisenduste tegemiseks lihtsat liidest.

MongoDB koondintorustik ärianalüüsi jaoks

Lihtsamalt öeldes on MongoDB agregatsioonitorustik raamistik andmekogumi andmete teisenduste rea teostamiseks. Esimene etapp võtab sisendina kogu dokumentide kogu ja sealt edasi võtab iga järgmine etapp sisendina eelmise teisenduse tulemuste komplekti ja toodab mõne teisendatud väljundi.



Liitmistorustikus saab kasutada 10 tüüpi teisendusi:

  • $ geoNear: väljastab dokumendid määratud punktist kõige lähemal olevas järjekorras

  • $ match: filtreerib mis tahes antud avaldiste määratud sisendkirje

    mida apache säde teeb
  • $ projekt: loob sisendväljade või arvutatud väljade alamhulgaga tulemuse

  • $ redact: piirab dokumentide sisu dokumendi teabe põhjal

  • $ lahti: võtab dokumendist massiivi välja, millel on n elementi, ja tagastab massiivi asendava väljana dokumendi, mille iga element on lisatud igale dokumendile

  • $ group: rühmitatakse ühe või mitme veeru järgi ja teostatakse teiste veergude liitmine

    kes lõi c programmeerimiskeele
  • $ limiit: valib sisendikomplektidest esimesed n dokumenti (kasulik protsentiili arvutamiseks jne)

  • $ skip: eirab sisendkomplekti esimest n dokumenti

  • $ sort: sorteerib kõik sisestatud dokumendid vastavalt antud objektile

  • $ välja: võtab kõik eelmisest etapist tagastatud dokumendid ja kirjutab need kollektsiooni

Välja arvatud ülaltoodud loendis esimene ja viimane, ei ole reegleid nende teisenduste rakendamise järjekorra kohta. $ out-i tuleks kasutada ainult üks kord ja lõpuks, kui soovime liitmistehingu tulemuse kirjutada uude või olemasolevasse kollektsiooni. $ geoNear saab kasutada ainult torujuhtme esimese etapina.

Asjade hõlpsama mõistmise hõlbustamiseks läbige kaks andmekogumit ja kaks nende andmekogumite jaoks asjakohast küsimust.

Palkade erinevus määramise järgi

MongoDB agregatsioonijuhtme võimsuse selgitamiseks laadisime alla andmekogumi, mis sisaldab kogu USA ülikoolide õpetajate palgateavet. Need andmed on saadaval aadressil nces.ed.gov . Meil on andmeid 7598 asutusest järgmiste väljadega:

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 }

Nende andmetega tahame välja selgitada (keskmiselt), mis vahe on dotsentide ja professorite palgal riigiti. Siis saab dotsent aru, millises seisus teda palga osas professorile lähemal hinnatakse.

Sellele küsimusele vastamiseks peab teadlane kõigepealt kogumist halvad andmed välja rookima, sest meie andmestikus on paar rida / dokumenti, kus keskmine palk on null või tühi string. Andmekogumi selle puhastamise lisamiseks lisame järgmise etapi:

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

See filtreerib välja kõik üksused, millel on neis kahes väljas stringi väärtused. MongoDB-s on iga tüüp esindatud kordumatu numbriga - stringide puhul on tüübinumber 2.

See andmekogum on hea näide, sest pärismaailma andmeanalüütikas peavad insenerid sageli tegelema ka andmete puhastamisega.

Nüüd, kui meil on mõned stabiilsed andmed, võime jätkata järgmisse etappi, kus keskmistame palgad riikide kaupa:

javascripti kuupäev millisekundites
{$group: {_id: '$State', StateAVGSalaryProfessors: {$avg: '$AVGSalaryProfessors'}, StateAVGSalaryAssociateProfessors: {$avg: '$AVGSalaryAssociateProfessors'}}}

Peame lihtsalt käivitama ülaltoodud tulemuste komplekti prognoosi ja saama riigi keskmiste palkade erinevuse, nagu on näidatud allpool meie torujuhtme 3. etapis:

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

See peaks andma meile riiklikul tasemel keskmise palgaerinevuse professorite ja dotsentide vahel kogu Ameerika Ühendriikide 7519 õppeasutuse andmekogust. Selle teabe tõlgendamise veelgi mugavamaks muutmiseks tehkem lihtne sortimine, et teaksime, millises osariigis on kõige vähem erinevusi, lisades $ sort -etapi:

{$sort: { SalaryDifference: 1}}

Sellest andmekogumist nähtub, et Idaho, Kansas ja Lääne-Virginia on kolm osariiki, kus dotsentide ja professorite palkade erinevus on kõigi teiste osariikidega võrreldes kõige väiksem.

Selle jaoks loodud täielik liitmistorustik on näidatud allpool:

[ {$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}} ]

Saadud andmekogum, mis ilmub, näeb välja selline. Teadlased saavad neid tulemusi ka CSV-sse eksportida, et sellest visualiseerimispakettide (näiteks Tableau) või lihtsate Microsoft Exceli diagrammide kaudu aru anda.

mongodbi andmekogumi näide

Keskmine palk tööliigi järgi

Veel üks näide, mida selles artiklis uurime, hõlmab järgmist: www.data.gov . Arvestades kõigi Ameerika Ühendriikide osariigi ja kohalike omavalitsuste organisatsioonide palgateavet, tahaksime välja selgitada iga osariigi täistööajaga ja osalise tööajaga “Financial Administration” töötajate keskmise palga.

Andmekogum on imporditud, mille tulemuseks on 1975 dokumenti, kus iga dokument järgib seda skeemi:

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'});

Vastus sellele küsimusele võib aidata finantsameti töötajal valida parim riik, kuhu kolida. Meie MongoDB agregaatori torujuhtme tööriista abil saab seda teha üsna lihtsalt:

Esimeses etapis filtreerige veerg GovernmentFunction, et loobuda kõikidest üksustest, mis pole finantshalduse üksused:

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

Juhendaja järgmises etapis rühmitame üksused osariikide kaupa ja arvutame igas osariigis keskmised täis- ja osalise tööajaga palgad:

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

Lõpuks sorteerime tulemused kõrgemapalgalistest riikidest madalamapalgalistest riikidest:

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

See peaks võimaldama tööriistal luua järgmise liitmistorustiku:

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

Liitmistorustiku käitamine peaks andma selliseid tulemusi:

kuidas ehitada vaarika pi 3

mongodbi liitmistorustik

Ehituskivid

Selle äriteabe rakenduse loomiseks kasutasime TÄHENDA , mis on kombinatsioon MongoDB , ExpressJS , NurgaJS ja SõlmJS .

TÄHENDAB äriteavet

Nagu te juba teate, on MongoDB skeemita dokumentide andmebaas. Ehkki iga tema salvestatud dokument on piiratud 16 MB-ga, muudab selle paindlikkus ja jõudlus koos pakutava liitmistorustiku raamistikuga MongoDB-le selle tööriista ideaalselt sobivaks. MongoDB-ga alustamine on tänu sellele väga lihtne põhjalik dokumentatsioon .

Node.js, teine ​​MEANi lahutamatu komponent, pakub sündmuspõhist serveripoolset Javascripti keskkonda. Node.js käitab Javascripti, kasutades Google Chrome'i V8 mootorit. Node.js mastaapsuse lubadused on see, mis juhib paljud organisatsioonid selle poole.

Express.js on Node.js-i kõige populaarsem veebirakenduste raamistik. See muudab veebirakenduste jaoks API-de või mis tahes muu serveripoolse ärikihi loomise lihtsaks. See on oma minimalistliku olemuse tõttu väga kiire, kuid on ka üsna paindlik.

AngularJS, mille on loonud ja haldavad mitmed Google'i insenerid, on kiiresti saamas üheks kõige populaarsemaks meie käsutuses olevaks esiotsa Javascripti raamistikuks.

On kaks põhjust, miks MEAN on nii populaarne ja meie valik rakenduste arendamiseks techXplorersis:

  • Oskuste kogum on lihtne. JavaScripti mõistval inseneril on hea minna kõikidele kihtidele.

  • Suhtlus kasutajaliidese ja andmebaasi vaheliste kihtide vahel toimub kõik JSON-objektide kaudu, mis säästab meil märkimisväärset aega erinevate kihtide kujundamisel ja arendamisel.

Järeldus

Selles MongoDB liitmise torujuhtme õpetuses oleme näidanud kulutõhusat viisi, kuidas anda teadlastele tööriist, kus nad saavad kasutada tootmisandmeid uurivad andmekogumid ja käivitada erinevaid teisenduste komplekte, et mudeleid analüüsida ja neist koostada.

Saime selle rakenduse otsast lõpuni välja töötada ja juurutada vaid 3 päeva jooksul. Selle rakenduse töötas välja 4 kogenud inseneri meeskond (2 USA-s ja 2 Indias) ja a disainer ja vabakutseline UX-i ekspert aidates meil mõelda liidese kujundamisest. Mingil hetkel tulevikus võtan aega, et selgitada, kuidas selline koostöö toimib, et ehitada vinge tooteid uskumatult lühikese aja jooksul.

Loodame, et kasutate ära MongoDB agregatsioonitorustiku eeliseid ja annate võimu oma teadlastele, kes saavad oma nutika analüüsi ja teadmistega maailma muuta.

See rakendus on reaalajas mängimiseks siin .

TopTracker vabastab vabakutselistele makselahenduse, võimaldades tasuta globaalseid makseid

Muu

TopTracker vabastab vabakutselistele makselahenduse, võimaldades tasuta globaalseid makseid
Kasutajaliidese kujundamise parimad tavad ja levinud vead

Kasutajaliidese kujundamise parimad tavad ja levinud vead

Ui Disain

Lemmik Postitused
Kuidas luua Tornado abil lihtsat Pythoni veebiserveriserverit
Kuidas luua Tornado abil lihtsat Pythoni veebiserveriserverit
Tehisintellekt vs BI: erinevused ja sünergiad
Tehisintellekt vs BI: erinevused ja sünergiad
Naisinseneride kaitseks
Naisinseneride kaitseks
Kõik, mida peate teadma CVS-Aetna ühinemise kohta
Kõik, mida peate teadma CVS-Aetna ühinemise kohta
Miks otsustavad rohkem ettevõtjaid luua otsingufonde, mitte uusi ettevõtteid?
Miks otsustavad rohkem ettevõtjaid luua otsingufonde, mitte uusi ettevõtteid?
 
Eramajutuse täiustamine: Airbnb vs Expedia
Eramajutuse täiustamine: Airbnb vs Expedia
GraphQL vs REST - GraphQLi õpetus
GraphQL vs REST - GraphQLi õpetus
Tootestrateegia: põhimõistete ja protsesside juhend
Tootestrateegia: põhimõistete ja protsesside juhend
Koostööprojekt - juhend ettevõtte edukaks tootekujunduseks
Koostööprojekt - juhend ettevõtte edukaks tootekujunduseks
Kujunduspiirangud ei ole piirangud - need käitavad loovust
Kujunduspiirangud ei ole piirangud - need käitavad loovust
Lemmik Postitused
  • lahknevus, kuidas roboti programmeerida
  • css vastavalt ekraani suurusele
  • mobiilsed veebirakendused on tavaliselt ehitatud HTML5 ja Java abil.
  • Oracle'i andmebaasi kujundamise parimad tavad
  • sõlme js ülejäänud api autentimine
  • erinevus sõlme js ja javascripti vahel
Kategooriad
Projekti Juht Brändikujundus Kujundusprotsess Puldi Tõus Kpi-D Ja Analytics Vilgas Ux Disain Innovatsioon Vilgas Talent Tagumine Ots

© 2021 | Kõik Õigused Kaitstud

apeescape2.com