跳转到主要内容

Amazon DynamoDB对象映射器

项目描述

Dynamodb-mapper – 基于 boto 的 DynamoDB 对象映射器。

展示

DynamoDB 是 Amazon 作为其 AWS 产品的一部分提供的最小化 NoSQL 引擎。

DynamoDB 允许您存储由 Unicode 字符串或数字以及 Unicode 字符串和数字集合组成的文档。每个表必须定义一个哈希键,可以定义一个范围键。所有其他字段都是可选的。

Dynamodb-mapper 在 DynamoDB 上提供一层微小的抽象层,以克服一些限制,而不会牺牲性能。它深受成熟的 MoongoKit 项目 启发。

需求

  • Boto = 2.6.0

  • AWS 账户

亮点

  • 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账户进行

Dynamodb-mapper

Onctuous

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

dynamodb-mapper-1.8.1.tar.gz (26.1 kB 查看哈希值)

上传时间

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面