Я делаю некоторые манипуляции с данными, которые были бы намного проще, если бы я мог вставлять кучу словарей в базу данных в памяти, а затем запускать с ним просто запросы.
Например, что-то вроде:
people = db([
{"name": "Joe", "age": 16},
{"name": "Jane", "favourite_color": "red"},
])
over_16 = db.filter(age__gt=16)
with_favorite_colors = db.filter(favorite_color__exists=True)
Есть три смешающих фактора:
- Некоторые из значений будут объектами Python, и сериализация их не может быть и речи (слишком медленно, ломает личность). Конечно, я мог бы обойти это (например, сохраняя все элементы в большом списке, а затем сериализуя свои индексы в этом списке... Но это может привести к честной игре).
- Будут тысячи данных, и я буду выполнять операции с избыточным весом (например, обходы графиков) против них, поэтому он должен иметь возможность выполнять эффективные (то есть индексированные) запросы.
- Как и в примере, данные неструктурированы, поэтому системы, требующие предопределения схемы, будут сложными.
Итак, существует ли такая вещь? Или мне нужно что-то смешать?