Amazon web services DynamoDB-我需要多个GSI吗?

Amazon web services DynamoDB-我需要多个GSI吗?,amazon-web-services,amazon-dynamodb,Amazon Web Services,Amazon Dynamodb,我的应用程序有一个单表设计。但是,表中的某些行包含重要信息,我计划使用这些信息查询不同类型的数据。让我解释一下。我的应用程序处理用户触发的警报。当警报被触发时,我会记录很多关于警报的信息。我的目标是创建GSIs,这样我就可以检索和排序有关触发的警报的所有信息。让我给你举一个我表格中的一行的例子 主键 SK GSI1PK GSI1SK GSI2PK GSI2SK GSI3PK GSI3SK GSI4PK GSI4SK GSI5PK GSI5SK 其他属性 收货 阿尔#TR#2020-08-19T2

我的应用程序有一个单表设计。但是,表中的某些行包含重要信息,我计划使用这些信息查询不同类型的数据。让我解释一下。我的应用程序处理用户触发的警报。当警报被触发时,我会记录很多关于警报的信息。我的目标是创建GSIs,这样我就可以检索和排序有关触发的警报的所有信息。让我给你举一个我表格中的一行的例子

主键 SK GSI1PK GSI1SK GSI2PK GSI2SK GSI3PK GSI3SK GSI4PK GSI4SK GSI5PK GSI5SK 其他属性 收货 阿尔#TR#2020-08-19T23:37:41.513Z 阿尔#TR 2020-08-19T23:37:41.513Z 艾尔·特罗 大厦1楼1楼办公室2020-08-19T23:37:41.513Z user@example.com 2020-08-19T23:37:41.513Z 1234567 2020-08-19T23:37:41.513Z 怎么做 PC#KS 其他值在其他列中
我是西雅图DynamoDB团队的成员,我的一位同事对此做出了回应:

“每当您需要以不同方式对相同的实体进行分组或排序时,您都需要为该访问模式创建一个新的GSI。当您在同一个表中存储了多个实体类型时,您可以重用GSI(也称为GSI重载)但在您的案例中,所有的访问模式都是关于对报警实体进行分组和排序的,因此每个实体都需要不同的GSI

“然而,GSIs的存在是为了加快或降低读取请求的成本,其代价是更高的写入费用(以保持GSIs的更新)。这在具有高读写比且响应必须快速返回的访问模式中是有意义的。但是对于不经常执行的读取访问模式,并且没有低延迟要求,与使用GSI的成本相比,简单地执行扫描操作可能更便宜。例如,对于每天或每周运行一次的批处理作业,每天或每周扫描一次表可能更便宜。”