Ce dépôt contient la mise en place d'une base NoSQL MongoDB pour des données Airbnb (Paris/Lyon), avec des scripts PowerShell pour replica set, cluster shardé et vérification.
Dépôt GitHub : https://github.com/PascalDuval/AirbnbNoSQL
Cette étude vise à analyser l'offre de logements Airbnb à Paris dans la perspective d'un rapport sur l'effet des Jeux Olympiques 2024 sur le marché du logement.
Le périmètre fonctionnel couvre :
- La restauration d'une base NoSQL MongoDB à partir de données Airbnb (CSV/JSON), puis l'inspection des documents.
- L'analyse de la structure des données (schéma flexible, types hétérogènes, qualité des champs).
- La production de requêtes analytiques métier pour mesurer :
- la disponibilité et les types de logements,
- la part de locations entières,
- les hôtes multi-annonces et super-hôtes,
- la distribution géographique des annonces.
- La justification du choix MongoDB/NoSQL pour des données semi-structurées et évolutives issues de scraping.
- Les aspects d'exploitation: sauvegarde/restauration, supervision, et contrôle d'accès.
Référence du périmètre :
documentation/Duval_Pascal_presentation2_projet7-NoSQL_26122025.pdf
data/
raw/ # données sources CSV/JSON
exports/ # exports depuis MongoDB
schemas/ # schéma JSON et pipeline diagnostic
notebooks/ # notebooks d'analyse
scripts/
powershell/ # scripts PS1 d'infra MongoDB (numérotés)
mongo/ # scripts JS exécutés dans mongosh
tests/ # documentation de tests séquentiels
documentation/ # documentation officielle (dont périmètre PDF)
docus/ # archives / fichiers non essentiels
Le document de périmètre est dans :
documentation/Duval_Pascal_presentation2_projet7-NoSQL_26122025.pdf
git clone https://github.com/PascalDuval/AirbnbNoSQL.git
Set-Location .\AirbnbNoSQLVérifier l'état :
git status -sb- Windows 10/11
- MongoDB Community Server (Desktop Windows) installé
- MongoDB Compass (Desktop) installé
- mongosh installé
- PowerShell autorisé à exécuter les scripts
Voir le guide détaillé :
documentation/MONGODB_WINDOWS_INSTALLATION.md
Interpréteur recommandé :
C:/chemin/vers/envs/projet-python/python.exe
Dans VS Code:
- Ouvrir un notebook dans
notebooks/. - Sélectionner le kernel
projet-python(ou l'interpréteur ci-dessus). - Installer les paquets avec
%pipdans le notebook (éviter!pip).
Exemple dans une cellule notebook :
%pip install pandas pymongo polars matplotlibGuide pas à pas :
documentation/JUPYTER_KERNEL_SETUP.md
Les scripts sont numérotés pour un enchaînement séquentiel clair.
scripts/powershell/01_start-mongo-replica.ps1scripts/powershell/02_test-replication-manuel.ps1
scripts/powershell/03_start-sharded-cluster.ps1scripts/powershell/04_init-sharded-cluster.ps1scripts/mongo/05_shard-move-chunks.js
Guide complet d'exécution et rôle de chaque script :
documentation/SCRIPTS_PS1_GUIDE.md
Depuis la racine du dépôt :
Set-Location .\scripts\powershell
PowerShell -ExecutionPolicy Bypass -File .\01_start-mongo-replica.ps1
PowerShell -ExecutionPolicy Bypass -File .\02_test-replication-manuel.ps1Pour cluster shardé :
Set-Location .\scripts\powershell
PowerShell -ExecutionPolicy Bypass -File .\03_start-sharded-cluster.ps1
PowerShell -ExecutionPolicy Bypass -File .\04_init-sharded-cluster.ps1Puis dans mongosh (connecté sur port 27000) :
load("./scripts/mongo/05_shard-move-chunks.js")- Sources:
data/raw - Exports MongoDB:
data/exports - Schéma/pipeline :
data/schemas - Archives/inutiles non versionnées :
docus/
- Les scripts utilisent des chemins absolus locaux (ex :
C:\Program Files\MongoDB\Server\8.0\bin). Adapter ces chemins si nécessaire. - Les ports utilisés sont principalement 27000, 27017, 27018, 27019, 26001, 26002, 26003.
Push standard (déjà configuré localement) :
git add .
git commit -m "Message explicite"
git push -u origin mainImportant : les gros fichiers de data/ passent par Git LFS.