portaldacalheta.pt
  • Principal
  • Design De Marque
  • Personnes Et Équipes Produit
  • Innovation
  • Kpi Et Analyses
Science Des Données Et Bases De Données

Business Intelligence Platform: didacticiel sur l'utilisation du pipeline d'agrégation MongoDB



En utilisant données pour répondre à des questions intéressantes c’est ce que les chercheurs s’efforcent de faire dans le monde actuel axé sur les données. Compte tenu d'énormes volumes de données, le défi de leur traitement et de leur analyse est de taille; en particulier pour les statisticiens ou les analystes de données qui n'ont pas le temps d'investir dans l'apprentissage des plateformes ou des technologies de Business Intelligence fournies par les bases de données Hadoop eco-system, Spark ou NoSQL qui les aideraient à analyser des téraoctets de données en quelques minutes.

La norme actuelle est que les chercheurs ou les statisticiens construisent leurs modèles sur des sous-ensembles de données dans des packages d'analyse tels que R , MATLAB , ou Octave , puis transmettez les formules et les étapes de traitement des données aux équipes informatiques qui créent ensuite des solutions d'analyse de la production.



Un problème avec cette approche est que si le chercheur réalise quelque chose de nouveau après avoir exécuté son modèle sur toutes les données en production, le processus doit être répété à nouveau.



Et si le chercheur pouvait travailler avec un Développeur MongoDB et exécuter son analyse sur toutes les données de production et l'utiliser comme son jeu de données exploratoire, sans avoir à apprendre une nouvelle technologie ou des langages de programmation complexes, ou même SQL?



mongodb et intelligence d

Si nous utilisons Pipeline d'agrégation de MongoDB et SIGNIFIER effectivement, nous pouvons y parvenir dans un délai raisonnablement court. À travers cet article et le code disponible ici dans ce référentiel GitHub , nous aimerions montrer à quel point il est facile d'y parvenir.



La plupart des outils de Business Intelligence disponibles sur le marché permettent aux chercheurs d'importer des ensembles de données depuis NoSQL et d'autres technologies Big Data dans l'outil, puis les transformations et l'analyse sont effectuées à l'intérieur de l'outil. Mais dans ce tutoriel de Business Intelligence, nous utilisons la puissance de MongoDB Aggregation Pipeline sans extraire les données de MongoDB, et le chercheur utilise une interface simple pour effectuer toutes sortes de transformations sur un système de production Big Data.

Pipeline d'agrégation MongoDB pour la Business Intelligence

En termes simples, le pipeline d'agrégation de MongoDB est un cadre permettant d'effectuer une série de transformations de données sur un ensemble de données. La première étape prend l’ensemble de la collection de documents en entrée, puis chaque étape suivante prend le jeu de résultats de la transformation précédente en entrée et produit une sortie transformée.



Il existe 10 types de transformations qui peuvent être utilisées dans un pipeline d'agrégation:

  • $ geoNear: affiche les documents dans l'ordre du plus proche au plus éloigné d'un point spécifié



  • $ match: filtre les enregistrements d'entrée définis par une expression donnée

  • $ project: crée un jeu de résultats avec un sous-ensemble de champs d'entrée ou de champs calculés



  • $ redact: restreint le contenu des documents en fonction des informations du document

  • $ unwind: prend un champ de tableau avec n éléments d'un document et retourne n documents avec chaque élément ajouté à chaque document en tant que champ remplaçant ce tableau



  • $ group: regroupe par une ou plusieurs colonnes et effectue des agrégations sur d'autres colonnes

    quel est le rôle d'un directeur financier
  • $ limit: sélectionne les n premiers documents des ensembles d'entrée (utile pour les calculs de centiles, etc.)

  • $ skip: ignore les n premiers documents du jeu d'entrées

  • $ sort: trie tous les documents d'entrée selon l'objet donné

  • $ out: prend tous les documents retournés de l'étape précédente et les écrit dans une collection

À l'exception du premier et du dernier de la liste ci-dessus, il n'y a pas de règles sur l'ordre dans lequel ces transformations peuvent être appliquées. $ out ne doit être utilisé qu'une seule fois, et à la fin, si nous voulons écrire le résultat du pipeline d'agrégation dans une collection nouvelle ou existante. $ geoNear ne peut être utilisé que comme première étape d'un pipeline.

Afin de rendre les choses plus faciles à comprendre, passons en revue deux ensembles de données et deux questions pertinentes pour ces ensembles de données.

Différence de salaires par désignation

Afin d'expliquer la puissance du pipeline d'agrégation de MongoDB, nous avons téléchargé un ensemble de données contenant des informations sur les salaires du personnel enseignant des universités pour l'ensemble des États-Unis. Ces données sont disponibles sur nces.ed.gov . Nous avons des données de 7598 institutions avec les champs suivants:

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 }

Avec ces données, nous voulons savoir (en moyenne) quelle est la différence entre les salaires des professeurs associés et des professeurs par État. Ensuite, un professeur agrégé peut se rendre compte dans quel état il est valorisé plus près d'un professeur en termes de salaire.

Pour répondre à cette question, un chercheur doit d'abord éliminer les mauvaises données de la collection, car il y a quelques lignes / documents dans notre ensemble de données où le salaire moyen est une chaîne nulle ou vide. Pour accomplir ce nettoyage du jeu de données, nous ajouterons l'étape suivante:

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

Cela filtrera toutes les entités qui ont des valeurs de chaîne dans ces deux champs. Dans MongoDB, chaque type est représenté par un numéro unique - pour les chaînes, le numéro de type est 2.

Cet ensemble de données est un bon exemple car dans l'analyse de données du monde réel, les ingénieurs doivent souvent également gérer le nettoyage des données.

Maintenant que nous avons des données stables, nous pouvons passer à l'étape suivante où nous ferons la moyenne des salaires par État:

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

Nous avons juste besoin d'exécuter une projection de l'ensemble de résultats ci-dessus et d'obtenir la différence dans les salaires moyens des États, comme indiqué ci-dessous à l'étape 3 de notre pipeline:

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

Cela devrait nous donner la différence de salaire moyenne au niveau de l'État entre les professeurs et les professeurs associés à partir d'un ensemble de données de 7519 établissements d'enseignement partout aux États-Unis. Pour rendre l'interprétation de ces informations encore plus pratique, faisons un tri simple afin de savoir quel état a le moins de différence en ajoutant une étape $ sort:

{$sort: { SalaryDifference: 1}}

À partir de cet ensemble de données, il est évident que l'Idaho, le Kansas et la Virginie-Occidentale sont trois États où la différence de salaire entre les professeurs associés et les professeurs est la moins élevée par rapport à tous les autres États.

Le pipeline d'agrégation complet généré pour cela est illustré ci-dessous:

langage de programmation c++
[ {$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}} ]

L'ensemble de données résultant qui apparaît ressemble à ceci. Les chercheurs peuvent également exporter ces résultats au format CSV afin d'en rendre compte à l'aide de packages de visualisation tels que Tableau ou via de simples graphiques Microsoft Excel.

Exemple de jeu de données mongodb

Salaire moyen par type d'emploi

Un autre exemple que nous explorerons dans cet article concerne un ensemble de données obtenu à partir de www.data.gov . Compte tenu des informations sur la paie de toutes les organisations gouvernementales des États et des collectivités locales aux États-Unis d'Amérique, nous aimerions connaître le salaire moyen des employés à temps plein et à temps partiel de la «Financial Administration» dans chaque État.

L'ensemble de données a été importé, résultant en 1975 documents où chaque document suit ce schéma:

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

La réponse à cette question peut aider un employé de l'Administration financière à choisir le meilleur état vers lequel déménager. Avec notre outil basé sur le pipeline d'agrégateur MongoDB, cela peut être fait assez facilement:

Dans la première étape, filtrez sur la colonne GovernmentFunction pour ignorer toutes les entités non 'Administration financière':

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

Dans la prochaine étape du didacticiel, nous regrouperons les entités par état et calculerons les salaires moyens à temps plein et à temps partiel dans chaque état:

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

Enfin, nous trierons les résultats des États les plus payants aux États les moins payants:

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

Cela devrait permettre à l'outil de générer le pipeline d'agrégation suivant:

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

L'exécution du pipeline d'agrégation devrait produire des résultats comme celui-ci:

pipeline d

Blocs de construction

Pour créer cette application de Business Intelligence, nous avons utilisé SIGNIFIER , qui est une combinaison de MongoDB , ExpressJS , AngularJS , et NodeJS .

Intelligence économique MEAN

Comme vous le savez peut-être déjà, MongoDB est une base de données de documents sans schéma. Même si chaque document qu'il stocke est limité à 16 Mo, sa flexibilité et ses performances ainsi que le cadre de pipeline d'agrégation qu'il fournit font de MongoDB un ajustement parfait pour cet outil. Démarrer avec MongoDB est très simple, grâce à son documentation complète .

Node.js, un autre composant intégral du MEAN, fournit l'environnement Javascript côté serveur basé sur les événements. Node.js exécute Javascript à l'aide du moteur V8 de Google Chrome. Les promesses d'évolutivité de Node.js sont ce qui motive de nombreuses organisations vers cela.

Express.js est le framework d'application Web le plus populaire pour Node.js. Il facilite la création d'API ou de tout autre type de couche métier côté serveur pour les applications Web. Il est très rapide en raison de sa nature minimaliste, mais est également assez flexible.

AngularJS, créé et maintenu par un certain nombre d'ingénieurs Google, est en train de devenir rapidement l'un des frameworks Javascript frontaux les plus populaires disponibles à notre disposition.

Il y a deux raisons pour lesquelles MEAN est si populaire et notre choix pour le développement d'applications chez techXplorers:

  • L'ensemble de compétences est simple. Un ingénieur qui comprend JavaScript est bon pour toutes les couches.

  • La communication entre le front-end et les couches de base de données se fait via des objets JSON, ce qui nous fait gagner un temps considérable en conception et en développement à différentes couches.

Conclusion

Dans ce didacticiel sur le pipeline d'agrégation MongoDB, nous avons démontré un moyen rentable de donner aux chercheurs un outil leur permettant d'utiliser les données de production comme jeux de données exploratoires et exécutez différents ensembles de transformations pour analyser et construire des modèles.

Nous avons pu développer et déployer cette application de bout en bout en seulement 3 jours. Cette applicaton a été développée par une équipe de 4 ingénieurs expérimentés (2 aux USA et 2 en Inde) et un designer et expert UX indépendant nous aidant avec quelques réflexions sur la conception d'interface. À un moment donné dans le futur, je prendrai le temps d'expliquer comment ce niveau de collaboration fonctionne pour créer des produits impressionnants en un temps incroyablement court.

Nous espérons que vous tirerez parti du pipeline d’agrégation de MongoDB et que vous mettiez le pouvoir entre les mains de vos chercheurs qui peuvent changer le monde grâce à leurs analyses et leurs connaissances intelligentes.

Cette application est en direct pour être jouée avec Ici .

Les 8 erreurs les plus courantes commises par les développeurs Ember.js

Interface Web

Les 8 erreurs les plus courantes commises par les développeurs Ember.js
Comment établir un budget qui dure toute l'année

Comment établir un budget qui dure toute l'année

Processus Financiers

Articles Populaires
Ingénieur senior full-stack, équipe post-embauche des talents
Ingénieur senior full-stack, équipe post-embauche des talents
En souvenir de Matthew Osborne
En souvenir de Matthew Osborne
Comment créer un pipeline de déploiement initial efficace
Comment créer un pipeline de déploiement initial efficace
L'impact du Brexit sur le secteur des services financiers
L'impact du Brexit sur le secteur des services financiers
Comment préparer un modèle de tableau des flux de trésorerie qui s'équilibre réellement
Comment préparer un modèle de tableau des flux de trésorerie qui s'équilibre réellement
 
Conquérir la recherche de chaînes avec l'algorithme Aho-Corasick
Conquérir la recherche de chaînes avec l'algorithme Aho-Corasick
Estimation des coûts logiciels dans la gestion de projet agile
Estimation des coûts logiciels dans la gestion de projet agile
5 qualités indispensables des meilleurs chefs de projet
5 qualités indispensables des meilleurs chefs de projet
Comment recréer gratuitement les ressources d'un terminal Bloomberg
Comment recréer gratuitement les ressources d'un terminal Bloomberg
Noyaux d'arbres: quantification de la similitude entre les données structurées en arborescence
Noyaux d'arbres: quantification de la similitude entre les données structurées en arborescence
Articles Populaires
  • comparaison de s corp c corp llc
  • tailles d'écran standard pour un design réactif
  • démo d'exemples angularjs pour les débutants
  • différence entre c corp et s corp
  • à quoi sert nodejs
  • flux git vs flux github
Catégories
  • Design De Marque
  • Personnes Et Équipes Produit
  • Innovation
  • Kpi Et Analyses
  • © 2022 | Tous Les Droits Sont Réservés

    portaldacalheta.pt