Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon dynamodb 用于日期范围查询的Dynamodb_Amazon Dynamodb_Dynamodb Queries - Fatal编程技术网

Amazon dynamodb 用于日期范围查询的Dynamodb

Amazon dynamodb 用于日期范围查询的Dynamodb,amazon-dynamodb,dynamodb-queries,Amazon Dynamodb,Dynamodb Queries,我正在创建一个应用程序,用于存储在某个时间段内订阅的所有人员信息。我在dynamodb表中存储的数据是: 拟人 生 结束日期 现在,我想编写如下查询 获取在某段时间内(日期1和日期2之间)处于活动状态的所有人员 获取在特定日期处于活动状态的所有人员 因为我使用的是dynamodb表,所以我认为最好的方法是在begin和enddate上使用全局哈希键,并存储begin和enddate的时间戳 这有意义吗?或者在Dynamodb中有更好的方法来实现这一点吗?您的设计似乎是正确的。 您需要2个GSI:

我正在创建一个应用程序,用于存储在某个时间段内订阅的所有人员信息。我在dynamodb表中存储的数据是:

  • 拟人
  • 结束日期
  • 现在,我想编写如下查询

  • 获取在某段时间内(日期1和日期2之间)处于活动状态的所有人员
  • 获取在特定日期处于活动状态的所有人员
  • 因为我使用的是dynamodb表,所以我认为最好的方法是在begin和enddate上使用全局哈希键,并存储begin和enddate的时间戳


    这有意义吗?或者在Dynamodb中有更好的方法来实现这一点吗?

    您的设计似乎是正确的。
    您需要2个GSI:

  • 开始时使用散列键,结束时使用范围键
  • 结束时的散列键和开始时的范围键
  • 对于查询1,您需要使用

  • 在date1和date2之间开始(使用GSI1)
  • 在日期1和日期2之间结束(使用GSI2)
  • 在日期1(GSI1)之前开始,在日期2(GSI2)之后结束,并与列表相交

  • 查询2仅当开始日期为日期的第一秒,结束日期为日期的最后一秒时,才与查询1相同。

    对于查询1,您是在寻找完全包含在搜索周期中的活动持续时间,还是寻找与搜索周期完全重叠的活动持续时间?对于第一个,我正在寻找重叠的。一个人可以有多个开始和结束日期吗?还有,你的日期有多精确?它们只是日期,还是完整的时间戳?完整的时间戳。直到秒级。如果您需要示例,请让我知道我有兴趣了解更多有关此工作原理的信息。。。啊,我现在明白了。不过,第三步将非常昂贵