Выбор между полкой и sqlite для действительно большого словаря (Python)

У меня есть большой словарь векторов Python (150 тысяч векторов , по 10 тыс. измерений в каждом) чисел с плавающей запятой, которые нельзя загрузить в память, поэтому мне приходится использовать один из двух методов сохранения этого на диске и извлечения определенных векторов, когда это необходимо. Векторы будут созданы и сохранены один раз, но могут быть прочитаны много (тысячи) раз, поэтому очень важно иметь эффективное чтение.После некоторых тестов с модулем полки я склонен полагать, что sqlite будет лучшим вариантом для такого рода задач, но прежде чем я начну писать код, я хотел бы услышать еще несколько мнений по этому поводу... Например, есть ли какие-либо другие варианты, кроме тех двух, о которых я не знаю?

Теперь, если мы согласны с тем, что sqlite является лучшим вариантом, другой вопрос касается точной формы таблицы. Я думаю об использовании мелкозернистой структуры со строками формы vector_key, element_no, valueдля эффективного разбиения на страницы вместо хранения всех 10 000 элементов вектора в одной записи. Я был бы очень признателен за любые предложения по этому вопросу.

11
задан dkar 5 June 2012 в 11:22
поделиться