Autumn-winter 2016
Prihodko Serhiy, KP-42
Завдання роботи полягає у наступному:
- Розробити схему бази даних на основі предметної галузі з ЛР№2-Ч1 у спосіб, що застосовується в СУБД MongoDB.
- Розробити модуль роботи з базою даних на основі пакету PyMongo.
- Реалізувати дві операції на вибір із використанням паралельної обробки даних Map/Reduce.
- Реалізувати обчислення та виведення результату складного агрегативного запиту до бази даних з використанням функції aggregate() сервера MongoDB.
Тексти функції Map/Reduce :
mapper = Code("""
function(){
emit(this.aircraft._id, 1);
}
""")reducer = Code("""
function(key, values){
return values.length;
}
""")та aggregate():
raw = db.instance.Flight.aggregate([
{'$match': {'cancelled': True }},
{'$group': {'_id': '$source', 'count': {'$sum': 1}}},
{'$sort': {'count': -1}}
])Lab3 Розробка засобів кешування з використанням redis
Завдання роботи полягає у наступному:
- Встановити сервер redis.
- Розробити модуль кешування на основі пакету redis-py.
- Підготувати тестові дані (50-100тис. документів MongoDB).
- Реалізувати збереження результатів пошуку в базі даних redis (створити кеш).
- Реалізувати функцію отримання результатів пошуку з кешу, у випадку, коли основна база даних не оновлювалась до створення кешу.
Функціональні вимоги:
- Згенерувати набір даних бази даних MongoDB у кількості 50-100 тис. документів згідно із предметною галуззю.
- Забезпечити створення кешу та підтримку його у актуальному стані за допомогою сервера redis. Ключем кешу вибрати параметри пошуку, обрані користувачем.
- Перевірити швидкість отримання результатів пошуку з використанням кешу та без нього.
Screenshots:



