amazon dynamodb的对象映射器
dynamodb-mapper的Python项目详细描述
dynamodb映射器–基于boto的dynamodb对象映射器。
演示文稿
DynamoDB是一个极简的nosql引擎 亚马逊作为其AWS产品的一部分提供。
dynamodb允许您存储由unicode字符串或数字组成的文档 以及一组Unicode字符串和数字。每个表必须定义一个散列 键,可以定义范围键。所有其他字段都是可选的。
dynamodb映射器在dynamodb上引入一个小的抽象层来克服一些 没有任何性能妥协的限制。它的灵感来自 成熟的MoongoKit project
要求
- Boto = 2.6.0
- AWS account
亮点
- python<;–>;dynamodb类型映射
- 使用Onctuous(1.8.0中的新功能)进行深层模式定义和验证
- 多目标事务(1.6.0中的新功能)
- 子交易(1.6.2新增)
- 迁移引擎(1.7.0中的新功能)
- 智能冲突检测(1.7.0中的新功能)
- scan、query和get_batch
- 默认值
- 自动增量哈希键
- 框架不可知
示例用法
我们假设您已经正确设置了boto凭据或使用了ddbmock。
快速安装
$ pip install dynamodb-mapper
如果您还没有配置boto,您可以简单地
$ export AWS_ACCESS_KEY_ID=<your id key here> $ export AWS_SECRET_ACCESS_KEY=<your secret key here>
第一种型号
from dynamodb_mapper.model import DynamoDBModel class DoomMap(DynamoDBModel): __table__ = u"doom_map" __hash_key__ = u"episode" __range_key__ = u"map" __schema__ = { u"episode": int, u"map": int, u"name": unicode, u"cheats": set, } __defaults__ = { "cheats": set([u"Konami"]), }
初始表创建
from dynamodb_mapper.model import ConnectionBorg conn = ConnectionBorg() conn.create_table(DoomMap, 10, 10, wait_for_active=True)
模型使用
e1m1 = DoomMap() e1m1.episode = 1 e1m1.map = 1 e1m1.name = u"Hangar" e1m1.cheats = set([u"idkfa", u"iddqd", u"idclip"]) e1m1.save() # Later on, retrieve that same object from the DB... e1m1 = DoomMap.get(1, 1) # query all maps of episode 1 e1_maps = DoomMap.query(hash_key=1) # query all maps of episode 1 with 'map' hash_key > 5 from boto.dynamodb.condition import GT e1_maps_after_5 = DoomMap.query( hash_key=1, range_key_condition=GT(5))
贡献
想要贡献,报告一个但是请求一个功能?发展还在继续 在Ludia的Bitbucket帐户: