Поиск записей по значению или условному значению в Nosql со 100 миллионами записей

Мы ищем базу данных NoSQL, в которой мы можем хранить более 100 миллионов записей со многими полями в Value, такими как наборы в Redis.

И база данных должна быть доступной для поиска по значению. Мы проверили Redis, но он не поддерживает ни одной опции поиска по значению. потому что у нас есть миллионы записей, и мы обновляем некоторые поля записей, а затем берем кучу записей, которые не обновлялись в определенное время.

Итак, запустите запрос ко всем записям, а затем проверьте, какие записи не обновляются с определенного времени, и это займет больше времени. Потому что в этих решениях мы обновляем 100-200 записей в минуту, а затем берем групповую запись на основе значения.

Итак, Redis здесь работать не будет. У нас есть возможность сохранить в MongoDB, но мы ищем базу данных ключ-значение, которая поддерживает функции поиска по значению.

{ 
    "_id" : ObjectId("5ac72e522188c962d024d0cd"), 
    "itemId" : 11.0, 
    "url" : "http://www.testurl.com", 
    "failed" : 0.0, 
    "proxyProvider" : "Test", 
    "isLocked" : false, 
    "syncDurationInMinute" : 60.0, 
    "lastUpdatedTimeUTC" : "", 
    "nextUpdateTimeUTC" : "", 
    "targetCountry" : "US", 
    "requestContentType" : "JSON", 
    "group" : "US"
}

Вторичный индекс и фильтр предикатов (aerospike.com/docs/guide/predicate.html) доступны в Aerospike и могут быть полезны для вашего варианта использования.

Meher 16.04.2018 23:45

В Aerospike с каждой записью связаны метаданные времени последнего обновления, которые можно использовать для поиска с использованием фильтров предикатов, соответствующих вашему варианту использования. Вы также можете выполнять поиск на основе числовых или строковых значений в корзине с использованием вторичных индексов.

pgupta 17.04.2018 03:20
Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
1
2
89
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В Aerospike вы можете использовать фильтрация предикатов для поиска записей, которые не обновлялись с определенного момента времени, и возвращать только метаданные этой записи, которая включает дайджест записи (ее уникальный идентификатор). Вы можете обработать совпавшие дайджесты и выполнить все необходимые обновления. Этот тип фильтра предикатов работает очень быстро, потому что ему нужно только смотреть на запись первичный индекс, которая хранится в памяти. См. Примеры в репозитории Java-клиента.

Вам не нужно использовать здесь вторичный индекс, потому что вы хотите просканировать все записи в пространстве имен (или наборе этого пространства имен) и просто проверить часть метаданных «время последнего обновления» каждой записи. Поскольку вы будете возвращать только дайджест записи (уникальный идентификатор), а не какие-либо ее фактические данные, в этом сканировании никогда не потребуется читать что-либо с SSD. Это будет очень быстро и легко для результатов (опять же, обратно отправляются только метаданные). В клиенте вы перебираете набор результатов, создаете список идентификаторов, а затем действуете с ними с последующей записью.

Другие вопросы по теме