我一直在努力寻找构建表格的最佳方式。它打算拥有很多很多 GB 的数据(我没有得到更详细的估计)。该表将是声明数据(此处为示例),其中分区键为 resourceType,排序键为 id(尽管这些可能会更改)。最终用户应该能够通过多个属性(机构、提供商、收款人等,总计约 15 个)进行搜索。
我一直在尝试组合全局和本地索引,以便在后端实现此功能。构造表格以允许用户根据这些属性中的一个或多个基本上以任意组合搜索数据的最佳方法是什么?
我一直在努力寻找构建表格的最佳方式。它打算拥有很多很多 GB 的数据(我没有得到更详细的估计)。该表将是声明数据(此处为示例),其中分区键为 resourceType,排序键为 id(尽管这些可能会更改)。最终用户应该能够通过多个属性(机构、提供商、收款人等,总计约 15 个)进行搜索。
我一直在尝试组合全局和本地索引,以便在后端实现此功能。构造表格以允许用户根据这些属性中的一个或多个基本上以任意组合搜索数据的最佳方法是什么?
如果您将resourceType
其用作分区键,您实际上是在抛弃 DynamoDB 提供的开箱即用的水平扩展功能。
对数据进行分区的原因是您将其分布在许多节点上,以便能够在不影响性能的情况下进行扩展。
听起来您希望将所有索赔文件放入一个分区中,以便您可以通过任意属性进行“搜索”。
您最好将 DynamoDB 表与 ElasticSearch 之类的东西结合起来,以获得快速、任意的搜索功能。
请记住,DynamoDB 在单个分区中只能容纳大约 10GB 的数据,并且单个分区被限制为每秒最多 3000 次读取和每秒最多 1000 次写入(读取 + 3 * 写入 <= 3000)。
最后,您可以考虑将索赔文件直接存储到 ElasticSearch 中。