4 个版本 (2 个重大变更)
0.3.0 | 2023 年 12 月 7 日 |
---|---|
0.2.1 | 2023 年 11 月 15 日 |
0.2.0 | 2023 年 9 月 22 日 |
0.1.0 | 2023 年 6 月 1 日 |
#489 在 数据库接口 中
640 每月下载量
用于 4 crate
185KB
4.5K SLoC
Modyne
Modyne 是一个针对 AWS DynamoDB 单表设计的意见库。
Motive
Modyne 遵循 Alex DeBrie 的《DynamoDB 书籍》和 DynamoDB Guide 伴随网站 中阐述的有效单表设计原则。这种设计利用了 AWS DynamoDB 相对简单的架构,其中分区包含所有给定 分区键 的项目,并按 排序键 排序。
由于这种架构,DynamoDB 通过 查询 操作奖励对单个分区中项目范围的访问。可以通过 全局二级索引 启用额外的访问模式,并可以使用稀疏索引来启用高效的 扫描 操作。
利用单表设计,可以将多个不同的实体类型混合到单个 DynamoDB 表中,并且多个实体类型可以共存于单个分区中。通常不使用项目的原始属性作为键。相反,从这些原始属性生成合成键,以支持在查询和扫描操作中有效地使用分区和索引。
概念
在 modyne 中,crate 的消费者将在代码中定义各种实体,提供 Serde 序列化和反序列化的实现,并提供 Entity
特质的实现。这个特质是 modyne 的核心。它定义了实体的名称、对实体重要的属性以及如何为实体生成主键和任何二级索引键。
本包中的下一个重要概念是 QueryInput
和 ProjectionSet
。查询输入使得定义键表达式、过滤表达式以及需要从查询中读取的投影集所需属性变得简单。对于 QueryInput
,存在一个对应的扫描操作:ScanInput
。
在这些概念之外,modyne 为与这些 DynamoDB 实体交互提供了更高级别的流畅接口,有助于引导使用,避免无意中的错误。该包还提供了用于执行批量读取和写入操作的流畅接口,这在将非规范化数据与单表设计同步时有时是必需的。
要更全面地了解此包中的功能,请参阅 docs.rs 上的文档。
†:通过启用 once_cell
功能,可以将此包的 MSRV 降低到 1.68.0。
依赖项
~21MB
~367K SLoC