В памяти БД, поддерживающей группировку
У меня есть около миллиона записей, которые я хочу сохранить в памяти и выполнить группировку, фильтрацию, сортировку и т. Д.
Я узнал о NEDb, но он не поддерживает группировку. Есть ли какая-либо другая быстрая и масштабируемая в памяти база данных, которая обеспечивает все операции?
1 ответ
Для фильтрации и сортировки по значениям ключа должно хватить любого хранилища значений ключа (redis, leveldb, berkeleydb, ... их много). Группировка - это агрегатная операция, которая, как уже отмечалось, является основой реляционных баз данных. Кроме того, поскольку данные непрозрачны в паре ключ-значение, они могут быть произвольно сложными. Некоторые хранилища значений ключей также поддерживают вторичные индексы, поэтому вы можете фильтровать / сортировать по другим атрибутам.
eXtremeDB (продукт моей компании) имеет нативный (не SQL) интерфейс, но является структурированной базой данных (то есть имеет язык схемы). Язык схемы очень похож на C++ (или вы можете использовать C# или Java для языка схемы), поэтому вы можете создавать произвольно сложные объекты (или даже использовать язык схемы для определения пары ключ-значение). Вы можете индексировать любое поле, поле вложенной структуры, вектор или любую комбинацию. Так что он также может обрабатывать фильтрацию / сортировку. Если ваши данные являются данными временного ряда, то есть также библиотека функций для различных операций группировки (среднее, среднее по окну, среднее по сетке и многие другие). Если это не данные временных рядов, то, подобно базам данных пары ключ-значение, вам придется выполнить операцию группировки самостоятельно. Это не сложно с поддержкой доступной фильтрации / сортировки.