В настоящее время я работаю с базой данных MongoDB, в которую я загрузил ~ 30 миллионов записей.
Мне нужно извлечь данные из базы данных, отфильтровать во время запроса, а затем преобразовать их в DataFrame pandas.Затем данные используются в веб-приложении для создания графиков.
Я попытался выполнить несколько запросов:
df = pd.DataFrame(list(db["demographics.sex"].find({"value": "male"})))
Это возвращает значения 1,25 млн. И занимает около 11 секунд.
Я пытался
data_list = list(db["demographics.sex"].find({"value": "male"}))
Это занимает около 8 секунд, поэтому этот шаг уже довольно трудоемкий.
Использование только запроса:
cursor = db["demographics.sex"].find({"value": "male"})
Занимает 0-1 секунду.
Таким образом, наиболее трудоемкой частью кажется не выполнение запроса и фильтра, а преобразование в DataFrame.
Есть ли какой-нибудь метод, который делает mongodb -> pandasdf более эффективным по времени?
Мне также было бы интересно, если преобразование в панд особенно неэффективно?Существует ли намного лучший способ передачи данных в веб-приложение с питанием от колб?