Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/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 使用NoSQL(DynamoDB)进行数据建模_Amazon Dynamodb_Data Modeling_Nosql - Fatal编程技术网

Amazon dynamodb 使用NoSQL(DynamoDB)进行数据建模

Amazon dynamodb 使用NoSQL(DynamoDB)进行数据建模,amazon-dynamodb,data-modeling,nosql,Amazon Dynamodb,Data Modeling,Nosql,我有SQL的背景,了解NoSQL的高级概念,但在翻译一些基本的使用场景时仍然有困难。我希望有人能帮忙 我的应用程序只是记录一天中每一秒的位置、时间戳和温度。因此,我们最终有3个基本列: 1) 位置 2) 时间戳 3) 温度 (所有字段都是数字,我将时间戳存储为历元,以便于范围查询) 我使用位置作为主键,时间戳作为sortkey,temp作为属性来设置dynamodb。这将导致位置和时间戳上的复合键,允许每个位置具有自己的唯一时间戳,但不允许任何单个位置具有多个相同的时间戳 现在是现实世界的查询:

我有SQL的背景,了解NoSQL的高级概念,但在翻译一些基本的使用场景时仍然有困难。我希望有人能帮忙

我的应用程序只是记录一天中每一秒的位置、时间戳和温度。因此,我们最终有3个基本列:

1) 位置 2) 时间戳 3) 温度

(所有字段都是数字,我将时间戳存储为历元,以便于范围查询)

我使用位置作为主键,时间戳作为sortkey,temp作为属性来设置dynamodb。这将导致位置和时间戳上的复合键,允许每个位置具有自己的唯一时间戳,但不允许任何单个位置具有多个相同的时间戳

现在是现实世界的查询:

  • 查询每个站点的时间范围(工作正常)
  • 查询任何特定时间范围返回所有位置的所有临时值(不起作用)
  • 那么你如何解释第二种情况呢?这是我挂断电话的原因。。。这是我们进入二级索引之类的东西吗?对于你们中比我聪明的人,你会如何处理

    提前感谢您的帮助!
    -D

    您无法查询dynamodb中的值范围。您可以查询属于某个值(散列键)的值范围(范围键)

    不管这是表键、本地二级索引键还是全局二级索引(二级索引为您提供了另一个查询选项…)

    让我们回到您的场景:

    如果时间戳以秒为单位,并且您希望获得2个时间戳之间的所有记录,则可以添加另一个字段“min_timestamp”。 此字段可以是全局辅助哈希键,时间戳将是全局辅助范围键

    现在您可以获得在某一分钟内记录的所有记录。 如果需要分钟范围,则需要执行X查询(如果X是分钟范围)


    您还可以添加另一个字段“hour\u timestamp”(该散列键包含某个小时内的所有记录),然后继续…-但是这种方法是非常危险的-您将在同一时间点用相同的哈希键更新许多记录,并且您可能会得到许多吞吐量错误

    查询一个时间范围并包含所有位置(不起作用)-可以是任何时间范围?那么,如果我们想使用时间戳作为范围查找的属性并返回所有位置,那么分区键和排序键将使用什么?此外,我不打算在时间戳中拆分单元,因为它们已经可以在历元中进行说明。因此,如果我想查找今天上午8点到9点之间的值,我可以查询1460534400和1460538000之间的属性值。上面的注释中的更正。。。我不想在时间戳中突破单位,因为它们已经可以在历元中解释。因此,如果我想查找今天上午8点到上午9点之间的值,我可以查询1460534400和1460538000之间的属性值。@user2259963对不起,我不明白你的问题,你能更清楚一点吗?