问题标签 [amazon-dynamodb-index]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - AWS DynamoDb:按需索引的定价
我需要secondary index
在我的DynamoDb
桌子上创建一个。对于此表,我已将读/写容量模式设置为On-demand
.
要根据表中的特定列查询数据,我想创建一个索引。(此列是排序键,因此我将无法仅在此列上执行查询)
当我index
通过 DynamoDB 控制台创建时,默认情况下此索引的读取容量为"on-demand"
.
我想确认该指数的定价方式。
我指的是这个页面 - https://aws.amazon.com/dynamodb/pricing/
它会基于此索引上的读写操作数吗?我假设不会有固定成本(如预置容量)。
nosql - 如何将属性标记为 DynamoDBRangeKey 和 DynamoDBIndexHashKey?
我有一个也是 GSI 的范围键字段。有人知道如何用 DynamoDBMapper 注释这个属性吗?
仅供参考,我尝试将@DynamoDBRangeKey 和@DynamoDBIndexHashKey 注释都放在下面,它在查询数据时给出了“不存在范围键值”错误。
java - 如何使用 AWS Java SDK 按降序从 DynamoDb 获取项目?
我在 AWS DynamoDB 中有一个名为 accountantHistoric 的表。它有一个主分区键 (id) 和一个主排序键 (tenant_id)。我还创建了另一个索引,称为“ExpirationDate”。该索引的排序键是“expirationDate”(字符串)属性。我想要的是:获取基于storeId的itens(该字段不是键)和基于“expirationDate”(从最新到最旧)降序排列的tenant_id。我也在做分页。
我正在尝试使用下面的代码,但它没有按降序返回。
我必须改变什么?
谢谢你们!
amazon-dynamodb - 使用硬编码散列键但使用不同范围键输入的行
我正在尝试创建一个汽车预订应用程序。用户可以预订位于许多办公室附近的汽车。
想知道我是否可以将所有预订放入一个硬编码的哈希键“预订”中,但具有唯一的范围键。
我想参考所有预订,以便“超级管理员”可以进入并查看所有内容。预订需要存储 10 年,所以我想我最终会在相同的 hashkey 下拥有大约 5000 万条记录,但具有不同的唯一 Range Key。搜索需要基于三个不同的日期标准,本地二级索引 1-3。
思考这样的事情(仅包括特定的“实体”)
这是应该怎么做的吗?这会导致热点/热点分区吗?感谢任何提示。
c# - QueryAsync DynamoDB with Index (Partition Key and Short Key) .Net Core
使用DynamoDB
. 他们有ScanAsync
和QueryAsync
。我使用没有问题,ScanAsync
但我读到 Query 的性能更好,所以我想QueryAsync
改用。我使用分区和快捷键设置索引。但我只能找到使用分区键查询的方法——不能同时使用两者。
有人可以帮我吗?
例如,我有一个名为“Slot”的表,其中包含:Id、StaffId、WorkDate ...我创建的索引是 StaffId 是分区键,WorkDate 是短键,索引名为“StaffId-WorkDate-index”
这是我能找到但只能用于“StaffId-index”的唯一方法:
我希望我可以使用“StaffId-WorkDate-index”查询。谢谢enter code here
amazon-web-services - 如何根据列表类型属性从 DynamoDB 表中获取记录,无需扫描操作
我有以下情况,类似于这个 DynamoDB 表定义:
除了定义的属性之外的每条记录都包含附加属性、具有少量属性的地图类型。
目前,我面临一种情况,我需要根据此映射中的一个属性检索记录,该属性是列表类型(准确地说,我需要查找在此列表中具有某些值的记录)。
我需要一个如何解决这个问题的建议,到目前为止,我已经阅读了有关全局二级索引的信息,但我不确定我的情况是否适用于它们,因为我需要基于列表类型进行过滤的属性。
我正在使用 C# 语言来获取记录,但我的问题很可能需要更改表定义。可能值得一提的是,我试图避免全表扫描操作。
更新:
该列表内的数据可以理解为“标签”。这意味着该表中的多个文档可能具有相同的标签。
我有一种情况,我必须过滤掉所有具有此特定标签的文档作为此列表中的元素之一
amazon-dynamodb - 如何使用 Amazon DynamoDB 对 1 对 N 关系进行建模以满足单次读取和写入?
我正在尝试从标准 RDBMS 背景中学习正确的 DynamoDB 建模。
我试图非规范化的关系数据库如下:
双因素细节
- 标识 (pk)
- 地位
- 电话号码 ID (fk)
电话号码
- 标识 (pk)
- 电话号码
- 类型
- 授权尝试
日志
- 标识 (pk)
- TwoFactorDetailId (fk)
- 事件类型
- 创建时间
我的单表架构如下:
https://i.stack.imgur.com/8p3WY.png
如您所见,许多TwoFactorDetail实体可以使用相同的PhoneNumber 。
考虑这两种读/写模式:
- 读取TwoFactorDetail元数据,包括电话号码、电话号码类型和 TwoFactorDetail.Id 尝试
- 通过电话号码更新PhoneNumber尝试
正如您在模型中看到的那样,我使用一种已知方法来满足读取模式,其中链接到TwoFactorDetail的PhoneNumber实体成为该分区中的一个项目。这意味着我可以使用以下条件读取特定TwoFactorDetail.Id的所有详细信息,只需往返一次到数据库: PK = "DET#12345" AND (SK = "DET" OR SK Begins with "PHO")
现在我的问题是如何使PhoneNumber元数据在分区之间保持一致。
IE。因为电话号码可以在许多两个因素详细信息实体之间共享,并且我想在每个分区中复制这些数据以方便阅读,所以我不确定如何以智能方式更新与电话号码匹配的所有项目,以便我使用 less请求的数量。
amazon-web-services - AWS DynamoDB 查询:查找匹配记录的计数
我有一个 DynamoDB 表。我在“Id”字段上有一个索引。
我还有其他字段 - 状态、时间戳等,但我没有这些其他字段的索引。
状态可以是“在线”、“离线”、“进行中”等。
我想根据“status”和“Id”字段获取记录数。
用户将传递 Id 字段,查询需要根据状态字段返回计数。例如
“在线”:20
“离线”:30
“进行中”:40
查询工作正常。
据我了解,DynamoDb 查询输出的最大大小为 1 MB。此限制在将任何 FilterExpression 应用于结果之前应用。
由于表中的记录数很大(大约 100k),我需要通过传递“独占开始键”参数一次又一次地执行查询。
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.Pagination
事实上,我需要在循环中运行多个查询(每个状态值一个),以根据“状态”字段计算计数。
有没有有效的方法来检索这些计数?
我也在考虑将索引扩展到状态字段。因此它将消除应用过滤器表达式的需要。
python - AWS 更新项目错误 - UpdateItem 操作:提供的关键元素与架构不匹配
我正在尝试更新 AWS 中具有两个键的 dynamodb 表。一列“col1”是哈希键,列“col2”是范围键。它没有 GSI。
除了 col1 和 col2 之外,还有两列 col3 和 col4 不是索引但它们有一个值。
所有 4 列都是 String 类型,包括索引。
我正在尝试使用以下代码创建一个新列 col5,我收到此错误消息“调用 UpdateItem 操作时发生错误(ValidationException):提供的关键元素与架构不匹配”