911 Calls est un workshop permettant de manipuler le même jeu de données dans plusieurs bases NoSQL différentes.
911-calls par Chris WOODROW, Sébastien PRUNIER et Benjamin CAVY est distribué sous les termes de la licence Creative Commons - Attribution - NonCommercial - ShareAlike.
Nous considérons que vous avez déjà réalisé les workshops suivants :
Vous allez également avoir besoin de Node.js. Si ce n'est pas déjà fait, installez node
et npm
sur votre machine.
Vérifiez les versions installées de node
(minimum v8.x
) et npm
(minimum v5.x
) :
node -v
v12.13.0
npm -v
7.6.3
Le jeu de données utilisé pour ce workshop est une liste d'appels au numéro d'urgence 911 dans le Comté de Montgomery en Pennsylvanie.
Le fichier CSV des appels est disponible sur le site Kaggle : https://www.kaggle.com/mchirico/montcoalert. La version utilisée ici est la version 30 (https://www.kaggle.com/mchirico/montcoalert/version/30) et une copie des données est disponible à la racine du repository (911.csv
).
Extrait du jeu de données :
lat | lng | desc | zip | title | timeStamp | twp | addr | e |
---|---|---|---|---|---|---|---|---|
40.2978759 | -75.5812935 | REINDEER CT & DEAD END; NEW HANOVER; Station 332; 2015-12-10 @ 17:10:52; | 19525 | EMS: BACK PAINS/INJURY | 2015-12-10 17:10:52 | NEW HANOVER | REINDEER CT & DEAD END | 1 |
40.2580614 | -75.2646799 | BRIAR PATH & WHITEMARSH LN; HATFIELD TOWNSHIP; Station 345; 2015-12-10 @ 17:29:21; | 19446 | EMS: DIABETIC EMERGENCY | 2015-12-10 17:29:21 | HATFIELD TOWNSHIP | BRIAR PATH & WHITEMARSH LN | 1 |
40.1211818 | -75.3519752 | HAWS AVE; NORRISTOWN; 2015-12-10 @ 14:39:21-Station:STA27; | 19401 | Fire: GAS-ODOR/LEAK | 2015-12-10 14:39:21 | NORRISTOWN | HAWS AVE | 1 |
Analyse de la première ligne :
Colonne | Valeur | Description |
---|---|---|
lat | 40.2978759 | Latitude |
lng | -75.5812935 | Longitude |
desc | REINDEER CT & DEAD END; (...) 2015-12-10 @ 17:10:52; | Description |
zip | 19525 | Code postal |
title | EMS: BACK PAINS/INJURY | Titre |
timeStamp | 2015-12-10 17:10:52 | Date et heure |
twp | NEW HANOVER | Quartier |
addr | REINDEER CT & DEAD END | Adresse |
e | 1 | ? (inutile, toujours à 1) |
La donnée titre
est particulière, elle débute toujours par un identifiant permettant de catégoriser l'appel. Trois valeurs sont possibles :
EMS
: appel lié à un problème médical (Emergency Medical Services).Fire
: appel lié à un incendie.Traffic
: appel lié à un problème de circulation (accident, panne...)
L'objectif est d'importer les données dans ElasticSearch et dans MongoDB et de construire un certain nombre de requêtes pour répondre à différents besoins listés ci-après.
Le résultat attendu est :
EMS | Fire | Traffic |
---|---|---|
75589 | 23056 | 54549 |
Le résultat attendu est :
01/2016 | 10/2016 | 12/2016 |
---|---|---|
13096 | 12502 | 12162 |
Le résultat attendu est :
POTTSTOWN | NORRISTOWN | UPPER MORELAND |
---|---|---|
203 | 180 | 110 |
Coordonnées GPS du quartier de Lansdale, PA, USA :
- Latitude : 40.241493
- Longitude : -75.283783
Le résultat attendu est 717.
Pour vous aider, vous pouvez jeter un oeil à $near et geo_distance