Найти - Пользователи
Полная версия: Pickle (?) для "экстра" полей
Начало » Базы данных » Pickle (?) для "экстра" полей
1
Lolka
Есть громадный экселевский файл с кучей листов (в общей сложности ~ полмиллиона записей)
Есть ряд общих полей, т.е. таких, которые однозначно есть на каждом листе. И еще дополнительно на каждом листе есть свои, “уникальные” для листа поля. Надо все это чудо уложить в sql'ьную БД, предположительно postgresql.
Есть ли смысл, грубо говоря, создать одну таблицу с общими полями и еще одно текстовое поле, в которое складывать сериализированный словарь с “уникальными полями”?
Насколько это вообще бестолковая мысль?) Поиск выполняться будет, но, в большинстве случаев, по “общим” полям, а вывод записей будет всегда постраничный. Насколько будет ресурсоемко решение с сериализацией, и, может быть, есть еще варианты?

update: нашел такое для Джанги Pickled Object Field, тем не менее, хотелось бы слышать комментарии.
bw
Я частенько так поступаю. В SQLAlchemy есть специальный тип колонки - PickleType. При присваивании полю этого типа некоторого объекта, объект автоматически сериализуется, при получении значения поля, происходит десериализация объекта.

..bw
Lolka
И фильтрация по такому полю работает?
И пишет
http://pylonsbook.com/alpha1/the_model_and_sqlalchemy
In addition to the types listed above there is a PickleType which is based on SQLAlchemy's Binary type. PickleType uses Python's pickle.dumps() to “pickle” objects being saved to the database and it uses pickle.loads() to unpickle objects being retrieved. It therefore allows you to store any pickleable Python object as a serialised binary field.
и
http://www.sqlalchemy.org/docs/05/types.html#types_standard_binary
Binary
The Binary type generates BLOB or BYTEA when tables are created, and also converts incoming values using the Binary callable provided by each DBAPI.
Хмм… в общем, буду читать, спасибо :)
bw
Ни СУБД, ни SQLAlchemy, разумеется, не знают о содержимом такого поля (знаешь только ты и только после десериализации, она происходит автоматически), соответсвенно никакого адекватного запроса по этому полю (например, если сериализуется словарь, то выбрать только те записи в словаре которых присутствует некий ключ) сделать не получится. Я даже не пробовал, просто сделал логичный вывод. Да и особенной потребности не возникало пока.

..bw
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB