Какова лучшая стратегия для выгрузки очень больших python словарей в базу данных? - PullRequest
1 голос
/ 11 апреля 2020

Я пишу что-то, что по существу уточняет и сообщает о различных строках из огромного python словаря (исходный файл для словаря XML длиной более миллиона строк).

Я нашел mongodb вчера и был рад видеть, что он легко принимает python словарей, как вам угодно ... пока он не отказался от моего, потому что объект dict превышает ограничение размера BSON в 16 МБ.

Я посмотрел на GridFS для se c, но он не примет объект python, у которого нет атрибута .read.

Со временем эта программа получит многие из этих мега-словарей; Я хотел бы записать каждый из них в базу данных, чтобы в какой-то момент я мог сравнить значения между ними.

Какой лучший способ справиться с этим? Я ужасно новичок во всем этом, но со мной все в порядке :) Кажется, что подход No SQL лучше; их структура общеизвестна, но может изменяться без уведомления. Схемы были бы кошмаром sh здесь.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Итак, я решил, что эта проблема - скорее проблема проектирования данных, чем ситуация python. Я пытаюсь загрузить много неструктурированных данных в базу данных, когда мне, вероятно, нужно только 10%. Я решил сохранить уточненный словарь xml в качестве рассола на общей файловой системе для холодного хранения и использовать mon go для хранения уточненных запросов, которые я хочу получить из словаря.

Это уменьшит их размер с 22МБ до 100К.

Спасибо, что поговорили со мной об этом:)

0 голосов
/ 11 апреля 2020

Рассматривали ли вы использование Pandas? Да Pandas изначально не принимает xmls, но если вы используете ElementTree из xml (стандартная библиотека), вы сможете прочитать его во фрейм данных Pandas и делать с ним все, что вам нужно, включая уточнение строк и добавление дополнительных данных. к фрейму данных, как вы его получили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...