Size: a a a

2020 April 07

БС

Байт Словович in rannts
Нарот, а что сейчас принято использовать в качестве embeded db. Раньше вот был sqlite, но у него есть недостаток с одновременной записью. Плюс не хочется sqlalchemy тащить в небольшой проект, да и с миграциями мучаться не хочется. В общем хочется что то легковесное, которое легко может сериализовать питоновские объекты. Каких то вторичных индексов, join и прочего не требуется.
redis слишком простой, чуть более сложные структуры тяжело делать.
Есть что нить на подобии урезанной монги?
Я в одном пет проекте использую postgresql и redis. И все это на малинке. Вот думаю нахера я свои highload backend замашки в мелкий проект в нёс. А еще и celery до кучи.. Хотя мне бы обычных тредов хватило.
Если не найду, то всё в yaml/json чиках буду сохранять..
источник

БС

Байт Словович in rannts
и да, гуглить умею. Хотелось бы услышать реальный опыт.
источник

NK

Nick Kugaevsky in rannts
Байт Словович
Нарот, а что сейчас принято использовать в качестве embeded db. Раньше вот был sqlite, но у него есть недостаток с одновременной записью. Плюс не хочется sqlalchemy тащить в небольшой проект, да и с миграциями мучаться не хочется. В общем хочется что то легковесное, которое легко может сериализовать питоновские объекты. Каких то вторичных индексов, join и прочего не требуется.
redis слишком простой, чуть более сложные структуры тяжело делать.
Есть что нить на подобии урезанной монги?
Я в одном пет проекте использую postgresql и redis. И все это на малинке. Вот думаю нахера я свои highload backend замашки в мелкий проект в нёс. А еще и celery до кучи.. Хотя мне бы обычных тредов хватило.
Если не найду, то всё в yaml/json чиках буду сохранять..
Я просто обычный ямл использовал частенько для таких целей.
источник

NK

Nick Kugaevsky in rannts
Но давно уже не оглядывался в поисках какой-то альтернативы.
источник

SA

Sergey Arkhipov in rannts
Playhouse, extensions to Peewee — peewee 3.13.2 documentation
http://docs.peewee-orm.com/en/latest/peewee/playhouse.html#kv
источник

SA

Sergey Arkhipov in rannts
Есть ещё обычный dbm, если хватает интерфейса словаря
источник

SA

Sergey Arkhipov in rannts
Кстати, есть ещё shelve, прямо стандартной библиотеке
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Байт Словович
Нарот, а что сейчас принято использовать в качестве embeded db. Раньше вот был sqlite, но у него есть недостаток с одновременной записью. Плюс не хочется sqlalchemy тащить в небольшой проект, да и с миграциями мучаться не хочется. В общем хочется что то легковесное, которое легко может сериализовать питоновские объекты. Каких то вторичных индексов, join и прочего не требуется.
redis слишком простой, чуть более сложные структуры тяжело делать.
Есть что нить на подобии урезанной монги?
Я в одном пет проекте использую postgresql и redis. И все это на малинке. Вот думаю нахера я свои highload backend замашки в мелкий проект в нёс. А еще и celery до кучи.. Хотя мне бы обычных тредов хватило.
Если не найду, то всё в yaml/json чиках буду сохранять..
ZODB - это прям то что ты хочешь.
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Плюс есть транзакции, и даже Undo можно включить
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Хотя... тебе надо из нескольких процессов к одной базе цепляться? Если да, то тут оно тоже без "демонов" не запустится. Для ZODB есть ZEO - это как бы такой "аггрегатор", который единолично работает с базой, а клиенты уже цепляются к ZEO через сокет.
источник

БС

Байт Словович in rannts
shelve — первый раз слышу, но судя по доке, это просто словарь который пиклится и сохраняется в файл. То есть очень простая структура.
dbm это только кейвалью хранилище? Мне бы тоже посложнее что нибудь.
Peewee kw — это сериализтор в словарики. Вроде тоже не очень подходит. Но надо смотреть
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Я думаю любое решение с клиентами в нескольких процессах, потребуют запуск отдельного пул-демона для базы
источник

БС

Байт Словович in rannts
Kirill (Cykooz) Kuzminykh
ZODB - это прям то что ты хочешь.
а ты с ним работал? Так то вроде подходит
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Да, это вообще огонь для питона - там в буквальном смысле сохраняются питонячие объекты
источник

БС

Байт Словович in rannts
Kirill (Cykooz) Kuzminykh
Хотя... тебе надо из нескольких процессов к одной базе цепляться? Если да, то тут оно тоже без "демонов" не запустится. Для ZODB есть ZEO - это как бы такой "аггрегатор", который единолично работает с базой, а клиенты уже цепляются к ZEO через сокет.
нет, процесс один будет. Но тредов может быть много
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
С тредами вроде там нет проблем.
источник

БС

Байт Словович in rannts
есть еще tinydb. Тоже вроде подходит, но надо детально смотреть
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
C ZODB тебе не нужна ни какая сериализация, если данные которые ты хочешь сохранять подходят для pickle (собственно он и используется в ZODB для сериализации)
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Если сильно обобщить, то ты с ZODB работаешь как с питонячим словариком, в котором лежат объекты
источник