当前位置: 首页 > 知识库问答 >
问题:

DynamoDB中timstamp的数据类型[重复]

左丘元徽
2023-03-14

我想创建一个使用时间戳作为范围键的表,以便轻松地按日期对数据进行排序。

纪元格式似乎是最容易使用的-

在javascript中,我使用的是新日期()。获取UTC时间。

我的问题是在DynamoDB中保存日期的更好的数据类型是什么,字符串还是数字?

在这里和这里找到了一些AWS的参考资料,它们说可以使用数字作为时间戳的类型,因为它是所有数字的类型,包括长的。

当我按日期查询时会有什么不同吗?我正在寻找最佳实践。

共有1个答案

戚飞雨
2023-03-14

正如您指出的,刺痛和数字都可以用作排序键。

@ConcepteQuest在一个单独的线程中确认范围查询受字符串支持。

.

至于哪一个更好,我相信您应该更多地考虑您的用例。如果数据将被其他AWS服务(如Elastic Search或Cloud Watch)使用,那么将其存储在这些服务可以直接使用的表单中会很有用。即ISO 8601字符串

2016-02-15

2015-12-21T17:42:34Z

20150311T122706Z

.

如果数据将被其他图形或分析库使用,那么将其设置为数字格式可能更有意义,这样就可以直接使用,而无需进一步转换。

简言之,最佳实践取决于下游的情况。通常,最好将数据类型更改限制在尽可能少的范围内。

 类似资料:
  • 根据这个文档,DynamoDB支持map(M)和list(L)类型,但是当我试图创建一个具有(L)类型的表时,我得到一个错误: ValidationException(客户端):检测到1个验证错误:attributeDefinitions处的值“L”。2.member.attributeType未能满足约束:成员必须满足枚举值集:[B,N,S] 将属性添加到表信息后发生此情况: 我的目标是为存储一

  • 我们有一个DynamoDb表,其中一个列名“createdAt”有时创建为S(String)数据类型,有时创建为N(Number)数据类型。 在我的代码中,如果我定义为String,当我想获取数据时它会失败,它是数字: 如果我定义为Number,当我想获取数据并且它是表中的字符串时失败: 你们有没有人以前也有过同样的问题?应该有办法解决它对吗?并且不能只选择一种数据类型:(

  • 我是DynamoDB的新手。我希望创建一个使用DeviceID作为哈希键、Timestamp作为范围键和一些数据的表。 在SQL中,我们可以为Timestamp使用datetime类型,但在DynamoDB中没有。 对于所选的数据类型,我应该使用什么样的时间戳格式?ISO格式(例如:2016-11-11T17:21:07.5272333Z)或纪元时间(例如:1478943038816)? 我需要在

  • 我如何建模DynamoDB表来构建一个标签系统,其中产品可以分配多个标签,我们应该能够过滤具有特定标签或标签集合的产品集,并获得分配给给定产品的所有标签? 我考虑过要一张桌子,上面有: HASH密钥:deviceId 范围键:标记 这允许查询设备的所有标签。 那么我需要一个GSI: 哈希键:标记 范围键:deviceId 过滤具有给定标签的所有设备。但这不会让我在不涉及对GSI的多个查询和在应用程

  • 问题内容: 所以我的问题是,我在Android(Java)上编写了一个函数,该函数需要两个Double,两个Int和一个Calendar对象。我相信提供的允许它在单独的线程中运行的类AsyncTask仅接受一种类型的Object(但允许多种)作为参数,因此我认为我可以将其放入List或LinkedList或其他内容中。 是否存在允许多个数据类型()的类型,还是我必须创建自己的对象类?我是一个新手程

  • 我创建了这样一个熊猫系列: