portaldacalheta.pt
  • Основен
  • Възходът На Дистанционното
  • Хора И Екипи
  • Инструменти И Уроци
  • Технология
Наука За Данни И Бази Данни

Платформа за бизнес разузнаване: Урок, използващ агрегиращия тръбопровод MongoDB



Използвайки данни за отговор на интересни въпроси е това, което изследователите са заети да правят в днешния свят, управляван от данни. Като се имат предвид огромни обеми данни, предизвикателството за обработката и анализа им е голямо; особено за статистици или анализатори на данни, които нямат време да инвестират в обучение на платформи за бизнес разузнаване или технологии, предоставени от базите данни на Hadoop eco-system, Spark или NoSQL, които биха им помогнали да анализират терабайта данни за минути.

Днес нормата е изследователите или статистиците да изграждат своите модели върху подмножества от данни в аналитични пакети като R , MATLAB , или Октава и след това дайте формулите и стъпките за обработка на данни на ИТ екипи, които след това изграждат решения за производствен анализ.



писане на тестови случаи в java

Един проблем при този подход е, че ако изследователят осъзнае нещо ново, след като пусне своя модел върху всички данни в производството, процесът трябва да се повтори отново.

Ами ако изследователят може да работи с a MongoDB разработчик и да извърши своя анализ върху всички производствени данни и да го използва като свой изследователски набор от данни, без да се налага да учи някаква нова технология или сложни програмни езици или дори SQL?



mongodb и бизнес разузнаване

Ако използваме MongoDB’s Aggregation Pipeline и ОЗНАЧАВА ефективно можем да постигнем това за разумно кратко време. Чрез тази статия и кода, който е на разположение тук в това хранилище на GitHub , бихме искали да покажем колко лесно е да се постигне това.



Повечето от инструментите за бизнес разузнаване, които са на пазара, осигуряват начини за изследователите да импортират набори от данни от NoSQL и други технологии за големи данни в инструмента, след което трансформациите и анализът се извършват вътре в инструмента. Но в този урок за бизнес разузнаване ние използваме силата на MongoDB Aggregation Pipeline, без да извличаме данните от MongoDB, а изследователят използва прост интерфейс, за да извърши всякакви трансформации в производствена система за големи данни.

МонгоDB агрегиращ тръбопровод за бизнес разузнаване

Просто казано, конвейерът за агрегиране на MongoDB е рамка за извършване на поредица от трансформации на данни в набор от данни. Първият етап приема цялата колекция от документи като вход, а оттам нататък всеки следващ етап приема набора от резултатите от предишната трансформация като вход и произвежда някакъв трансформиран изход.



Има 10 вида трансформации, които могат да се използват в агрегиращ тръбопровод:

  • $ geoNear: извежда документи в най-близкия до най-отдалечения от определена точка



  • $ match: филтрира входния запис, зададен от даден израз

  • $ project: създава набор от резултати с подмножество полета за въвеждане или изчислени полета



  • $ redact: ограничава съдържанието на документите въз основа на информация от документа

  • $ отвиване: взема поле от масив с n елемента от документ и връща n документи с всеки елемент, добавен към всеки документ като поле, заместващо този масив



  • $ group: групира по една или повече колони и извършва агрегиране на други колони

  • $ limit: избира първите n документи от входни набори (полезно за изчисления на процентили и т.н.)

  • $ skip: игнорира първите n документи от набора за въвеждане

  • $ sort: сортира всички входни документи според дадения обект

  • $ out: взема всички документи, върнати от предишния етап, и ги записва в колекция

Освен първото и последното в списъка по-горе, няма правила относно реда, в който тези трансформации могат да бъдат приложени. $ out трябва да се използва само веднъж и в края, ако искаме да запишем резултата от конвейера за агрегиране в нова или съществуваща колекция. $ geoNear може да се използва само като първи етап на тръбопровод.

За да направим нещата по-лесни за разбиране, нека разгледаме два набора от данни и два въпроса, свързани с тези набори от данни.

какво е физически двигател

Разлика в заплатите по предназначение

За да обясним силата на агрегационния тръбопровод на MongoDB, изтеглихме набор от данни, който съдържа информация за заплатите на университетския преподавателски персонал за целия САЩ. Тези данни са достъпни на nces.ed.gov . Имаме данни от 7598 институции със следните полета:

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 }

С тези данни искаме да разберем (средно) каква е разликата между заплатите на доцентите и професорите по държави. Тогава доцент може да осъзнае в кое състояние е оценен по-близо до професор по отношение на заплатата.

За да отговори на този въпрос, изследователят първо трябва да премахне лоши данни от колекцията, защото в нашия набор от данни има няколко реда / документи, където средната заплата е нула или празен низ. За да извършим това почистване на набора от данни, ще добавим следния етап:

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

Това ще филтрира всички обекти, които имат низови стойности в тези две полета. В MongoDB всеки тип е представен с уникален номер - за низове номерът на типа е 2.

Този набор от данни е добър пример, защото в реалния свят за анализ на данни инженерите често трябва да се справят и с почистването на данни.

Сега, след като разполагаме с някои стабилни данни, можем да продължим към следващия етап, където ще осредним заплатите по държави:

принципите на дизайна в дефиниция на изкуството
{$group: {_id: '$State', StateAVGSalaryProfessors: {$avg: '$AVGSalaryProfessors'}, StateAVGSalaryAssociateProfessors: {$avg: '$AVGSalaryAssociateProfessors'}}}

Просто трябва да изготвим проекция на горния набор от резултати и да получим разликата в средните заплати в държавата, както е показано по-долу в Етап 3 от нашия тръбопровод:

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

Това би трябвало да ни даде разликата в средната заплата на държавно ниво между професори и доценти от набор от данни от 7519 образователни институции в целия САЩ. За да бъде още по-удобно да тълкуваме тази информация, нека направим просто сортиране, за да знаем кое състояние има най-малка разлика, като добавим етап на сортиране $:

{$sort: { SalaryDifference: 1}}

От този набор от данни става ясно, че Айдахо, Канзас и Западна Вирджиния са три щата, където разликата в заплатите на доцентите и професорите е най-малка в сравнение с всички останали щати.

Пълният конвейер за агрегиране, генериран за това, е показан по-долу:

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

Полученият набор от данни, който се показва, изглежда така. Изследователите могат също да експортират тези резултати в CSV, за да докладват за тях, използвайки пакети за визуализация като Tableau или чрез прости диаграми на Microsoft Excel.

пример за набор от данни mongodb

Средно заплащане по вид заетост

Друг пример, който ще разгледаме в тази статия, включва набор от данни, получен от www.data.gov . Като се има предвид информацията за ведомостта на всички щатски и местни правителствени организации в Съединените американски щати, бихме искали да разберем средната заплата на служителите на „Финансова администрация“ на пълен и непълен работен ден във всеки щат.

Наборът от данни е импортиран, което води до 1975 документа, където всеки документ следва тази схема:

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

Отговорът на този въпрос може да помогне на служител на финансовата администрация да избере най-доброто състояние, в което да се премести. С нашия инструмент, базиран на конвейер MongoDB агрегатор, това може да се направи доста лесно:

На първия етап филтрирайте в колоната GovernmentFunction, за да отхвърлите всички субекти, които не са „Финансова администрация“:

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

В следващия етап от урока ще групираме обектите по щати и ще изчислим средните заплати за пълно и непълно работно време във всеки щат:

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

И накрая, ще сортираме резултатите от по-високо платените държави до по-нископлатените:

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

Това трябва да позволи на инструмента да генерира следния конвейер за агрегиране:

срещу съвети и трикове за код
[ {$match:{GovernmentFunction:'Financial Administration'}}, {$group: {_id: '$State', FTP_AVG: {$avg: '$FullTimePay'}, PTM_AVG: {$avg: '$PartTimePay'}}}, {$sort: {FTP_AVG: -1, PTM_AVG: -1}} ]

Изпълнението на конвейера за агрегиране трябва да доведе до някои резултати като този:

тръбопровод за агрегиране на mongodb

Изграждащи блокове

За да изградим това приложение за бизнес разузнаване, което използвахме ОЗНАЧАВА , което е комбинация от MongoDB , ExpressJS , Ъглов JS , и NodeJS .

СРЕДСТВО Бизнес интелигентност

Както може би вече знаете, MongoDB е база данни без схеми. Въпреки че всеки документ, който съхранява, е ограничен до 16MB по размер, неговата гъвкавост и производителност, заедно с рамката на агрегиращия конвейер, която осигурява, прави MongoDB идеално подходящ за този инструмент. Първите стъпки с MongoDB са много лесни, благодарение на него изчерпателна документация .

Node.js, друг неразделен компонент на MEAN, осигурява управлявана от събития сървърна Javascript среда. Node.js изпълнява Javascript, използвайки V8 двигателя на Google Chrome. Обещанията за мащабируемост на Node.js е това, което движи много организации към него.

Express.js е най-популярната рамка за уеб приложения за Node.js. Улеснява изграждането на API или какъвто и да е друг вид сървърен бизнес слой за уеб приложения. Той е много бърз поради минималистичния си характер, но е и доста гъвкав.

AngularJS, създаден и поддържан от редица инженери на Google, бързо се превръща в една от най-популярните фреймворкови Javascript рамки, налични на наше разположение.

Има две причини, поради които MEAN е толкова популярен и нашият избор за разработка на приложения в techXplorers:

  • Наборът от умения е прост. Инженер, който разбира JavaScript, е добре да разглежда всички слоеве.

  • Комуникацията между интерфейса между бизнеса и слоевете от бази данни се осъществява чрез JSON обекти, което ни спестява значително време при проектиране и разработване на различни слоеве.

    eclipse срещу Notepad++

Заключение

В този урок за конвейер за агрегиране на MongoDB демонстрирахме рентабилен начин да предоставим на изследователите инструмент, където те могат да използват производствени данни като изследователски набори от данни и изпълнява различни набори от трансформации за анализ и конструиране на модели от.

Успяхме да разработим и внедрим това приложение от край до край само за 3 дни. Това приложение е разработено от екип от 4 опитни инженери (2 в САЩ и 2 в Индия) и а дизайнер и експерт по UX на свободна практика помагайки ни с някои мисли за дизайна на интерфейса. В даден момент в бъдещето ще отделя време да обясня как работи това ниво на сътрудничество за създаване на страхотни продукти за невероятно кратко време.

Надяваме се да се възползвате от агрегационния тръбопровод на MongoDB и да предадете властта в ръцете на вашите изследователи, които могат да променят света с техния интелигентен анализ и прозрения.

Това приложение е на живо, за да се играе с него тук .

5 неща, които никога не сте правили с REST спецификация

Back-End

5 неща, които никога не сте правили с REST спецификация
Как да създадете бот за анализ на настроението по имейл: Урок за NLP.

Как да създадете бот за анализ на настроението по имейл: Урок за NLP.

Back-End

Популярни Публикации
Урок за ъглов 5: Ръководство стъпка по стъпка към първото ви приложение за ъглови 5
Урок за ъглов 5: Ръководство стъпка по стъпка към първото ви приложение за ъглови 5
Лов на Java изтичане на памет
Лов на Java изтичане на памет
SMB акаунт мениджър
SMB акаунт мениджър
Изградете ултрамодерни уеб приложения с ъглови материали
Изградете ултрамодерни уеб приложения с ъглови материали
Влияние върху влиятелните лица: Фирми-анализатори
Влияние върху влиятелните лица: Фирми-анализатори
 
Ръководство за стил на Sass: Урок за Sass за това как да напишем по-добър CSS код
Ръководство за стил на Sass: Урок за Sass за това как да напишем по-добър CSS код
Принцип на единната отговорност: Рецепта за велик кодекс
Принцип на единната отговорност: Рецепта за велик кодекс
Plant Power: Поглед върху отвъд месото и неговите конкуренти
Plant Power: Поглед върху отвъд месото и неговите конкуренти
Директор на скрининг на таланти
Директор на скрининг на таланти
Как да провеждаме тестове за използваемост в шест стъпки
Как да провеждаме тестове за използваемост в шест стъпки
Популярни Публикации
  • scala (език за програмиране)
  • производителност на node js срещу java
  • реагирайте на изобразяване от страна на сървъра срещу страна на клиента
  • колко дрона са продадени през 2017 г
  • принципите на дизайна в дефиниция на изкуството
Категории
  • Възходът На Дистанционното
  • Хора И Екипи
  • Инструменти И Уроци
  • Технология
  • © 2022 | Всички Права Запазени

    portaldacalheta.pt